版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 脚本优化脚本优化-关联关联主要内容 一、关联原理一、关联原理 二、自动关联二、自动关联 三、手动关联三、手动关联 四、使用四、使用WinDiff手动关联手动关联 五、一边录制一边关联五、一边录制一边关联 六、关联函数六、关联函数Web_reg_save_param详解详解2022-6-2522022-6-253一、关联原理 为什么要使用关联?为什么要使用关联? 当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。 当执行脚本时,可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初真的浏览器所说过的话,再
2、对网站向服器重新说一遍,企图骗过服务器,让服务器把网站内容传送给VuGen 记录在脚本中要跟服务器所说的话,完全与当初录制时所说的一样。这样的作法在遇到有些服务器时还是会失效的。这时就需要关联的做法骗过服务器一、关联原理 什么是关联?什么是关联? 所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。 例如:我们去做飞机,登机之前要检票(机票信息相对固定),通过可以登机。过了几天拿着同一机票再去登机,自然不能登机(机票信息已过期)。那怎样才能顺利登机?可以伪造机票信息这里我们通过收集别人返回的信息(机票)
3、伪造机票,从而满足登机的验证策略。在脚本中也有类似的情况 2022-6-254一、关联原理 举例:登陆系统举例:登陆系统-录制录制 常见系统中的登陆功能,在登陆后服务器会返回SessionID,登陆后的操作都需要提交该ID确认身份。使用VuGen录制时,将会记录服务器返回的SessionID并原封不动的在下个请求中发给服务器 2022-6-255一、关联原理 举例:登陆系统举例:登陆系统-回放回放 待到回放时,服务器会在接收到用户名和密码后返回一个新的SessionID,而脚本依然发送旧的SessionID给服务器,最终因SessionID错误,导致脚本回放失败。 2022-6-256二、自动
4、关联 自动关联原理:自动关联原理: 自动关联是VuGen提供的自动扫描关联处理策略,它的原理是对同一个脚本运行和录制时的服务器的返回进行比较,来自动查找变化部分,并且提示是否生成关联。2022-6-257二、自动关联 自动关联举例: 举例:用LoadRunner自带的Web Tours网站,录制一个登陆的过程然后再回放。编译时没有错,运行时会报错,通过Test Result看到错误信息2022-6-258二、自动关联 问题就出在脚本中 Web_submit_data()函数web_submit_data(login.pl, 。ITEMDATA, Name=userSession, Value=
5、105473.508302957ftcfcQDpfiDDDDDDDcffVpHzVf, ENDITEM, Name=username, Value=wfj, ENDITEM, Name=password, Value=111111, ENDITEM, Name=JSFormSubmit, Value=off, ENDITEM, Name=login.x, Value=64, ENDITEM, Name=login.y, Value=10, ENDITEM, LAST);2022-6-259二、自动关联 单击Vuser菜单中Scan Script for Correlations选项(使用自动关
6、联前,脚本需运行一次)运行后会看到以下内容,VuGen已识别出脚本中动态内容2022-6-2510二、自动关联 单击Correlate按钮后,便生成了一个关联。关联前后的内容以及所属的Action也被列了出来。2022-6-2511二、自动关联 此时切换到Script模式看看脚本发生了什么变化web_submit_data(login.pl, 。ITEMDATA, Name=userSession, Value=WCSParam_Diff1, ENDITEM, Name=username, Value=wfj, ENDITEM, Name=password, Value=111111, END
7、ITEM, Name=JSFormSubmit, Value=off, ENDITEM, Name=login.x, Value=64, ENDITEM, Name=login.y, Value=10, ENDITEM, LAST);2022-6-2512 三、三、 手工关联的手工关联的步骤步骤l设置设置“Runtime Setting”中的日志选项中的日志选项“Data return by server”,回放脚本,分析脚本运行失败的原因是否是因为关回放脚本,分析脚本运行失败的原因是否是因为关联造成的。联造成的。l在脚本中分析确定需要关联的动态内容。在脚本中分析确定需要关联的动态内容。l 确
8、定要关联的动态内容的确定要关联的动态内容的“左边界左边界”、 “右边界右边界”和发生和发生次数次数l 在脚本适当的位置插入在脚本适当的位置插入“web_reg_save_param”关联函关联函数数l在脚本中动态内容出现的地方,使用参数替换在脚本中动态内容出现的地方,使用参数替换“写死写死”的动的动态内容。态内容。l重新运行脚本,确保关联后的脚本能够运行成功。重新运行脚本,确保关联后的脚本能够运行成功。 三、三、 手工关联手工关联该选项可以把从该选项可以把从web服务器返回的服务器返回的数据显示在执行日数据显示在执行日志里面,你可以在志里面,你可以在里面分析确定动态里面分析确定动态内容的左右边
9、界内容的左右边界第一步第一步:设置运行时刻设置运行时刻三、手工关联三、手工关联问题问题: 为什么该步骤会出错?为什么该步骤会出错? 1. 确定哪一步出错了确定哪一步出错了2. 在执行日志里面去查找分析在执行日志里面去查找分析.回放的时候表明某一步发生错误回放的时候表明某一步发生错误三、手工关联三、手工关联执行日志会显示找不到请求。执行日志会显示找不到请求。 浏览器中被红色选中的行显示删除操作的的确认信息没有得到反馈。浏览器中被红色选中的行显示删除操作的的确认信息没有得到反馈。执行日志清楚地显示出出错原因执行日志清楚地显示出出错原因三、手工关联三、手工关联 这些值表示鼠标在屏幕中的位置这些值表示
10、鼠标在屏幕中的位置 这些值在脚本中会被使用,但不需要关联这些值在脚本中会被使用,但不需要关联 延迟时间也在脚本中会被使用,但不需要关联延迟时间也在脚本中会被使用,但不需要关联Name=buyFlights.x, Value=52, ENDITEM, Name=buyFlights.x, Value=23, ENDITEM,Name=buyFlights.y, Value=15, ENDITEM, Name=buyFlights.y, Value=17, ENDITEM,lr_think_time( 2 );lr_think_time( 1 );lr_think_time( 7 );lr_thi
11、nk_time( 11 );Name=flight_210, Value=on, ENDITEM,Name=flight_206, Value=on, ENDITEM,Name=removeSelected.x, Value=101, ENDITEM, Name=removeSelected.x, Value=80, ENDITEM,Name=removeSelected.y, Value=13, ENDITEM,Name=removeSelected.y, Value=10, ENDITEM,lr_think_time( 1 );12345航班号是动态的,需要关联航班号是动态的,需要关联三、
12、手工关联三、手工关联第一个特征:该动态内容一定是首先是从服务器端产生并返回到客户端的。第一个特征:该动态内容一定是首先是从服务器端产生并返回到客户端的。第二个特征:该客户端在得到该动态内容后一定把它重新发送到服务器端。第二个特征:该客户端在得到该动态内容后一定把它重新发送到服务器端。动态内容动态内容需要关联的动态内容的两个特征:需要关联的动态内容的两个特征:三、手工关联三、手工关联LB: type=checkbox name=RB: 左边界左边界Left Boundary右边界右边界Right Boundary6第三步:第三步:确定需要关联的动态内容的左右边界 三、手工关联三、手工关联(par
13、am_name, *, LAST);用户定义的参数名称表明后面没有参数可选项,表明动态内容出现的次数动态内容的左右边界LB=, RB=, ORD=, *可以参阅LoadRunner的帮助文件,里面有详尽的描述web_reg_save_param 具有如下参数具有如下参数: 三、手工关联三、手工关联web_reg_save_param (param_name,LB=,RB=,ORD=,LAST);del_itinerarytype = “checkbox” name=“7第四步:增加第四步:增加web_reg_save_param函数函数 三、手工关联三、手工关联第五步:用参数替换脚本中的动态内
14、容第五步:用参数替换脚本中的动态内容三、手工关联三、手工关联第六步:回放脚本,验证关联正确第六步:回放脚本,验证关联正确四、使用WinDiff手动关联 手动关联的主要步骤: 第一步:录制测试脚本,录制二遍 第二步:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联 第三步:确定插入关联的位置 第四步:在View Script中使用web_reg_save_param函数手动建立关联 第五步:将脚本中有用到关联的数据,用参数代替 第六步:验证关联的正确性2022-6-2524四、使用WinDiff手动关联 手动关联详细介绍: 第一步:这一步就不用多说了,相同的操作,录制两份,分别保存
15、 第二步:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联 1、在第二份脚本中,点选VuGen的【Tools】【 ComparewithVuser】,并选择第一份脚本 2、接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。 3、查看二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。2022-6-2525四、使用WinDiff手动关联 手动关联详细介绍: 4、接着要在Recording Log或是Generation Log中找这个值。按下Ctrl+F,开启【Find】窗口,贴上刚刚复制的脚本,找出在Recording Log第一次出
16、现的位置。 5、现在已经找到录制二次都不一样,而且是由服务器所产生的动态数据了,而此数据极有可能需要做关联 第三步:确定插入关联的位置。重新执行一遍脚本,而且这次会开启所有的Log。 1、在VuGen中点选【Vuser】【Run-Time Settings】。 2、点选【General】【Log】。 2022-6-2526四、使用WinDiff手动关联 手动关联详细介绍: 3、勾选【Enable logging】、 【Always sends messages】、【Extended log】,以及【Extended log】下的所有选项。 4、按下【OK】就可以执行脚本了。 5、执行完脚本之后
17、,在Replay Log 中搜寻刚刚复制的字符串。找到字符串后,在字符串前面会有vuser_init.c(18): ,这个18就是到时候要插入web_reg_save_param函数的位置,也就是要插入到脚本的第18行。也可以在 Replay Log右键选择jump to source line跳到脚本中的位置。 2022-6-2527四、使用WinDiff手动关联 手动关联详细介绍: 第四步:在View Script中使用web_reg_save_param函数手动建立关联 1、在找到的代码行的上方点击鼠标右键,选择【insert】【New step】 2、在【Add Step】 窗口的【F
18、ind Function】中输入Web_reg_save_param 函数并选中后点击【OK】 3、Parameter Name处输入参数名称,建议有意义的名字。 4、在【Left Boundary】中输入左边界字符串 5、在【Right Boundary】中输入右边界字符串 6、点击【OK】按钮2022-6-2528四、使用WinDiff手动关联 手动关联详细介绍: 第五步:将脚本中有用到关联的数据,用参数代替 1、当使用web_reg_save_param建立参数后,接下来就是用“之前定义的参数名”参数去取代脚本中写死的(hard-coded)资料。 第六步:验证关联的正确性 1、执行脚本
19、,是否能成功运行,假如还是有问题,就要检查看看是否还需要再做另一个关联。 2022-6-2529 五、一边录制一边关联 一边录制一边关联: 接着来看最后一种关联方式,上面的关联都需要进行一定的操作,那么为什么录制某些系统,会得到一些自动的关联函数呢?这就是系统默认提供的自动关联设置,打开录制选项。【Tools】【recording options】【Correlation】2022-6-2530五、一边录制一边关联 一边录制一边关联: 2022-6-2531 五、一边录制一边关联 一边录制一边关联: 点击 New Application,创建一个新的应用 在之前的应用上点击New Rule 新
20、建一个规则 为该规则填写左右边界后点击保存 现在新建一个脚本,重新录制一次Web Tours登录的操作,录制结束查看一下脚本,可以发现系统已经自动按照规则生成了关联函数,运行脚本直接通过。2022-6-2532 六、Web_reg_save_param详解 关联函数关联函数Web_reg_save_param详解详解 打开Add Step添加步骤选择Web_reg_save_para 打开关联设置窗口,如下所示:打开关联设置窗口,如下所示:2022-6-2533 六、Web_reg_save_param详解 关联函数关联函数Web_reg_save_param详解详解 Parameter Na
21、me :此处设置存放参数的名称,关联出来的内容将会存放在该参数中,这里受到Instance选项的影响。例如: Parameter Name 为Temp,当对应的Instance选项是 任意一个数字的时候,只会关联一个匹配的记录,关联值存放在Temp中。当Instance是ALL的时候,关联成功后的值将会依次存放在“Temp_数字”这样的参数数组中,并且会添加一个temp_ count的参数存放关联出来的记录条数。 Left Boundary:此处设置左边界,这里用来填写关联对于数据处理的左匹配内容规则。此处是一个字符串。注意:转义字符为2022-6-2534 六、Web_reg_save_param详解 关联函数关联函数Web_reg_save_param详解详解 Match case :默认情况下边界是Match case的,即检查大小写的。可以取消下面的选项来忽略大小写检查。 Binary data:如果需要关联的内容是非ASC 字符的,需要使用该选项。 Use # for any digit:有些时候需要关联的边界中有些变动的数字,并且由于这个数字导致关联非常难以设置边界,可以使用该选项 Use as a wildcard for xxx alphanumerical characters :这里使用可以代替任何常用的字符。仅代表一个字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市排水办公楼施工合同
- 纺织品采购招标法律培训
- 市政工程电力招投标技术规范本
- 通信网络监理管理规程
- 地铁换乘站隧洞施工合同
- 纺织维修工具管理办法
- 建筑行业电力工程安装合同
- 公交站点候车亭设施维修
- 科研实验中心建设合同
- 设备租赁合同:摄影器材
- 《算法设计与分析基础》(Python语言描述) 课件 第8章动态规划1
- 生产流程(线)外包服务规范 -DB13-T 5224-2020 河北
- 部编人教版道德与法治一年级上册:6校园里的号令教学设计(2课时)
- 2021人音版小学音乐六年级上册课程纲要
- 三秦思语(2022年陕西中考语文试卷散文阅读题及答案)
- 2024年秋新外研版(三起)英语三年级上册全册教案(2024年新教材)
- 2024-2030年中国铜线行业市场发展趋势与前景展望战略分析报告
- 2024年消防安全工作总结参考模板(5篇)
- 【道法】认识生命 课件-2024-2025学年统编版道德与法治七年级上册
- 贵州省建筑与装饰工程计价定额(2016版)
- JGT 486-2015 混凝土用复合掺合料
评论
0/150
提交评论