本节书摘来自华章计算机《LoadRunner性能测试巧匠训练营》一书中的第2章,第2.7,作者:赵 强 邹伟伟 任健勇 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.7 VuGen使用技巧
至此,小白可以松口气了,常规的录制、放回、设置、脚本编写已经完全掌握了,终于达到了一个里程碑,值得庆祝。不过闲不住的小白还是想利用休息时间继续看看LoadRunner的VuGen中的各种功能。
2.7.1 协议嗅探
Portocol Advisor(协议嗅探)功能是LoadRunner 11中的新增功能,只是为了给大家选择协议时提供参考意见而已,这个功能不能全信,只是在我们没有头绪时,可以参考嗅探出的协议。协议嗅探使用步骤如下。
1)单击菜单File→Protocol→Analyze Application,在弹出的对话框中选择待分析内容,并做相关设置后单击OK按钮,如图2-50所示。
2)对打开的页面进行一些操作,如登录,然后单击Stop Aanlyzing按钮,完成协议的嗅探,之后便会看到报告,如图2-51所示。
https://yqfile.alicdn.com/fa9ada4502e9c05b63064f8f3eb6659e54692541.png
" >
2.7.2 通用设置
General options(通用设置)是全局生效的,一般情况下很少改动这里。入口在菜单Tools→General Options中。下面介绍主要选项。
1)Parameterization:参数化。其子选项含义如下。
- Parammeter Braces:可自定义参数括号的类型。
2)Replay:回放。如图2-52所示,各子选项含义如下。
- Animated run:用来设置LoadRunner中的某个函数与另外一个函数之间的等待时间(单位为毫秒),以实现脚本减速运行。
- Prompt for results directory:是否提示测试报告保存的目录名,默认情况下为result1,选中会每次提示让用户输入保存的目录名。
- After replay View before replay:返回到回放前的状态。
- After replay Replay summary:直接打开回放结果统计。
- After replay Visual Test Results:打开测试报告
3)Environment:环境。如图2-53所示,各子选项含义如下。
- Save AutoRecover information every X minute:每隔X分钟自动保存恢复信息。可在Loadrunner崩溃时还原脚本。
- Auto show function syntax:自动显示函数语法。
- Auto complete word:自动完成函数提示,输入函数的第一个字母时,显示一个函数列表,通过它可以选择函数,而无须手动输入函数。
- Select Font:设置编辑器的字体。
- Comparison Tool:打开自定义对比工具,可以和另外一个功能一起使用。
https://yqfile.alicdn.com/bf35bb319b5024b8319f91a89006b6e7efdbbcf1.png
" >
4)Display:显示。如图2-54所示,各子选项含义如下。
- Show run-time viewer during replay:显示正在运行的脚本在页面中的表现,选中后,VuGen打开自己的浏览器来显示脚本执行的效果,这是调试脚本的一个重要方法。
- Generate report during script execution:用来生成测试结果报告。
5)Correlation:关联。如图2-55所示,各子选项含义如下。
- Enable Scripting and Java applets on Snapshot:启用脚本和Java应用程序快照。如果JavaScript脚本在TreeView视图里显示有问题,则可以尝试勾选该项。
- Download images on Snapshots viewer:在快照显示器里下载图片。
(4)
2.7.3 录制设置
Recording options(录制设置)是对正式录制操作前进行一些参数设定。入口菜单为Tools→ Recording Options。这里面有很多选项,但对于测试来说,很多都是不需要太关心的,保持默认即可,下面介绍比较重要的选项设置。
1)Recording:录制选项。这里提供了两种录制方式,如图2-56所示。
- HTML-based script(基于HTML的脚本)。这种方式录制出来的脚本是基于HTML基础的。一般来说,如果使用IE访问的B/S架构就选择它。生成的脚本简洁,基于用户操作模拟,浅显易懂。
- URL-based script(基于URL的脚本)。这种方式录制出来的脚本是基于URL请求的。如果采用非IE标准的C/S架构,建议使用该模式来录制脚本,这样可以确保不会遗漏任何HTTP请求,但生成代码比较繁琐。另外,使用了HTTPS协议也可选用此模式。
https://yqfile.alicdn.com/8a1efe7ab663e3a8292c063e5ca47458c4351ae6.png
" >
2)Port Mapping:端口映射,默认为Socket level data,如图2-57所示。一般情况下不需要更改,但是在无法录制脚本或者脚本为空的情况下,可以选择此选项为Socket level and WinlNet level data试试。
https://yqfile.alicdn.com/530c8193779f06c5372e34b93bd1bd938f6ec88a.png
" >
3)Advanced:高级设置。各子选项含义如下。
- Reset context for each action:在录制过程中,每个action之间是否需要重置context,这里存放请求发送后返回的数据信息,如服务器返回的HTML、Cookie、Session等。
- Save snapshot resources locally:在本地保存快照资源。
- Generate web_reg_find functions for page titles:是否需要为每个标题自动生成web_reg_find检查点函数。
- Generate web_rege_find functions for sub-frames:为子框架也生成检查点函数。
- Add comment to script for HTTP errors while recording:录制过程中出错时添加注释内容。
- Support charset:编码规则选项。如果出现了乱码,可以试着选中“UTF-8”,如图2-58所示。
- Recording Engine:录制的兼容性选项,可以使用以前的录制引擎来录制脚本。
- Recording scheme Headers:对Headers中的内容进行过滤。
- Recording scheme Content Types:对录制的正文内容进行过滤。
- Recording scheme Non-Resource:对非资源的内容进行过滤。
4)Correlatio:关联。子选项含义如下。
- Enable correlation during recording:录制过程中启用自动关联。这个就是自动关联的开关。
2.7.4 Run-time Settings设置
Run-time Settings(运行时设置)是最常用的,也是调试脚本最常修改的地方。选择Vuser→Run-time Settings菜单项进入入口后,可以对以下几项内容进行设置。
- Run Logic
如图2-59所示,可在Run Logic(运行逻辑)对Action设置迭代次数(运行的次数),Init和End不能设置。
https://yqfile.alicdn.com/f44eb8cb491cb0536b49a4078fee9b568e748719.png
" >
- Pacing
Pacing(步调)配置脚本运行中每次interation之间的等待时间,如图2-60所示。
- Log
脚本回放验证时基本都是依靠Log(日志),过多的日志虽然可以更清晰地了解脚本执行的内容,但是也为定位带来了不便,所以要合适地选择日志设置。一般在调试脚本时打开,在Controller运行脚本时关闭。如图2-61所示,各子选项含义如下。
- Enable logging:勾选则打开日志,不勾选则关闭日志,不会在VuGen的控制台输出。
- Send message only when an error occurs:只有当发生错误时,才发送日志信息。
- Standard log:标准日志。
- Extended log:扩展日志。
- Parameter substitution:显示参数的赋值取值,一般参数化调试时打开此项。
- Data returned by server:显示服务器返回的数据。
- Advanced trace:高级的追踪,会显示非常多的数据信息。
- Think Time
通过Think Time(思考时间)来设置模拟用户真实操作的等待时间,对应的函数是lr_think_time(),单位为s。选择As recorded时,表示与录制时的思考时间一样。Multiply recorded think time by表示以录制时间的几倍增加。Use random percentage of recorded think time表示用录制时思考时间的百分比。Limit think time to表示限制多少秒。
忽略思考时间可以加大对系统的压力,但这种做法和真实业务不符,所以一般不采用。其余注意事项请回顾1.3.6。
- Miscellaneous
在Miscellaneous(其他)中可以设置其他选项,如图2-62所示。
1)Error Handing:错误处理。各子选项含义如下。
- Continue on error:出现错误时继续运行。
- Fail open transaction on lr_error_message:失败时使用lr_error_message函数打印。
- Generate snapshot on error:错误出现时生成快照。
2)Multithreading:进程与线程。各子选项含义如下。
- Run Vuser as a process:以一个进程运行虚拟用户,进程是指一个虚拟用户用一个mmdrv.exe。
- Run Vuser as a thread:以一个线程运行虚拟用户,线程是指多个用户一起使用一个mmdrv.exe。
3)Automatic Transactions:自动化事务。事务是用来获得某一行为所消耗时间的函数,默认情况下用户自定义事务。各子选项含义如下。
- Define each action as a transaction:定义每一个action作为一个事务。
- Define each step as a transaction:定义每一步作为一个事务
- Speed Simulation
提供宽带模拟的选项,默认情况下,脚本以最大宽带来访问。 - Browser Emulation
通过Browser Emulation(浏览器模拟)模拟整个HTTP头中的user-agent信息,从而让服务器错误地认为是一个个真实的客户端对服务器发出了请求,通过设置可以改变浏览器类型。如图2-63所示,各子选项的含义如下。
- User-Agent(brower to be emulated):浏览器的模仿。
- Download non-HTML resources:下载non-html资源。
- Simulate a new user on each iteration:每次迭代时模拟一个新用户。
- Clear cache on each iteration:每次迭代时清除cache。
- Preferences
一般常规的设置都可以在Preferences(首选项)中完成,各选项含义如下。
1)Checks:检查。
其中,Enable image and text check为其子项。还记得图片检查点吗?如果使用图片检查点就必须勾选该选项。如果使用的是reg的文本检查点,则可以不勾选,如果使用的是不带reg的文本检查点,就需要勾选该选项。
如果不是必需,最好不要勾选该选项,毕竟是在做性能测试,而不是功能测试。
2)Advanced Options:高级设置。
小白在网上看到很多人都会问关于“download timeout 120s”这样错误的原因和解决方法,其实这个错误在这里设置后就可以避免,主要修改HTTP-request connect timeout(sec),HTTP-request revice timeout(sec)、Setup download timeout(sec)三项的value值,适当调大即可。