LoadRunner是个很成熟的性能测试工具,很多人还是有各种各样的问题,比如:知道如何利用得到的分析报告分析出系统存在的瓶颈?对于产生的性能报告不知道怎么去分析?不知道如何进行性能调优?只会使用LoadRunner是做不到的?LoadRunner并不是万能的,它仅仅只是我们做性能测试的一个工具,还得依靠人去操作与分析。
总而言之,会使用LoadRunner的人,并不一定会做性能测试,会做性能测试的人并不一定都会使用LoadRunner。
那什么是LoadRunner?
LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
LoadRunner常见问题
ØLoadRunner录制脚本时为什么不弹出IE浏览器?
当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。
启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题
提示:通常安装Firefox等浏览器后,都会勾选上面的选项,导致不能正常录制。因此建议运行LoadRunner的主机上保持一个干净的测试环境。
Ø做loadrunner参数化时,如果参数化个数超过100个,打开参数化列表,会发现只显示一百个参数,是不是只参数化了100个呢?
当然不是!
在实际的跑场景过程中,会发现所有的参数都会被加载使用。也就是说这里是只显示了100条参数化数据,那么如何将所有的参数化内容都显示出来呢?
通过设置vugen.ini的MaxVisibleLines项数值可以调整LoadRunner参数显示数据的个数,找到该文件后,用记事本或写字板打开该文件,您首先在文件中查找到"[ParamTable]“,如果没有这一项,在设置最后新建即可。在下面有"MaxVisibleLines=100”(如果没有此项,也需要新建),它限制数据记录显示条目数,为了将全部数据显示出来,将"100"更改为"100000",即"Max Visible Lines=100000"。
修改后重启loadrunner,再查看参数化设置,则最多可以显示100000条记录了。
Ø录制脚本时,生成的脚本中存在乱码该如何解决?
录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。再次录制,就不会出现中文乱码问题了。
Ø在录制脚本时一切正常,而回放时报出错误提示,如何引起的?
造成这种情况的主要原因是LoadRunner 8.0的VuGen在录制Web Service协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为,因此会有上面的错误提示。
解决方法:把“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”两个补丁打上即可解决。
Ø脚本回放正常,却未通过?
原因:可能是缺少包头。默认情况下是不录制HTTP Header(请求包头),如果有些数据存放在Header中,导致脚本无法正常通过;
解决:利用抓包工具(如HttpWatch),进行抓包分析,找到报头,在请求前添加该报头。如:web_add_auto_header(“x-requested-with”, “XMLHttpRequest”);
查找缺少的报头名,添加包头。在录制中打开Options(选项)→Advanced(高级)→Headers(标题)→Recourd headers in list→添加包头。
ØLoadRunner脚本为空,该怎么办?
解决:去掉IE设置中的第三方支持取消掉。
ØHTML-based script与URL-based script的脚本有什么区别?
使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用 “URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。
通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的 JavaApplet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。
Ø为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?
由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。要想开启检查功能,必须修改运行时的配置Run-time Setting。
进入“Run-time Setting”对话框,依次进入“Internet Protocol→Preferences”,勾选Checks下的“Enable Image and text check”选项即可。
检查执行结果时推荐使用web_reg_find方法。
Ø运行时的Pacing设置主要影响什么?
Pacing主要用来设置重复迭代脚本的间隔时间。共有三种方法:上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。
根据实际需要设置迭代即可。通常,没有时间间隔会产生更大的压力。
Ø运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可以发送吗?
Enable logging选项仅影响自动日志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。
Ø一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。为什么从第二次迭代开始发生错误?
这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。
由于脚本迭代时,init和end只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,则用户登录信息将一并清除,因此迭代时可能会发生错误。
Ø虚拟客户脚本“Run-time Setting”中的线程和进程运行方式的区别?
如果选择“Run Vuser as a process”,则场景运行时会为每一个虚拟用户创建一个进程;选择 “Run Vuser as a thread”则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,是默认选项。
另外,如果启用了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools菜单下的 “Options>General”标签页中的IP地址分配方式也设置为与Vuser运行方式一致,同为线程或进程方式。
Ø在Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如何处理这类问题?
这主要有脚本的默认超时设置引起。当回放Web脚本时,有时候由于服务器响应时间较长,会产生超时的错误。这时需要修改脚本的运行时配置。进入“Run-time Setting”对话框后,依次进入“Internet Protocol→Preference”。然后点击“Options…”按钮,进入高级设置对话框,可以修改各类超时设置的默认值。
相关内容:
原文始发于微信公众号(华克斯):LoadRunner常见问题
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论