【2017年整理】Loadrunner如何在大负载下进行测试

上传人:爱****1 文档编号:948475 上传时间:2017-05-23 格式:DOC 页数:4 大小:26.50KB
返回 下载 相关 举报
【2017年整理】Loadrunner如何在大负载下进行测试_第1页
第1页 / 共4页
【2017年整理】Loadrunner如何在大负载下进行测试_第2页
第2页 / 共4页
【2017年整理】Loadrunner如何在大负载下进行测试_第3页
第3页 / 共4页
【2017年整理】Loadrunner如何在大负载下进行测试_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《【2017年整理】Loadrunner如何在大负载下进行测试》由会员分享,可在线阅读,更多相关《【2017年整理】Loadrunner如何在大负载下进行测试(4页珍藏版)》请在金锄头文库上搜索。

1、Loadrunner 如何在大负载下进行测试在大负载中使用 LoadRunner 进行负载测试,需要配置一些环境来满足大负载下各种资源的充足: 1.为了避免出现“No Buffer Space Available”的错误,需要进行如下配置: 1)修改注册表: * 设置“HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipPar ametersTcpTimedWaitDelay”为 30 * 设置“HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipPar ametersMaxUser

2、Port”为 65534 * 在“HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerSub SystemsWindows”设置 SharedSection 为 4096 2)通过在每个脚本的开头添加如下函数来设置“SHUTDOWN”模式为ABRUPT web_set_sockets_option(“SHUTDOWN_MODE”,”ABRUPT”) 2.关闭所有的杀毒,反间谍扫描软件等。同时也关闭任务扫描和所有不需要的服务。 3.脚本运行时设置: 1)设置日志为“只在错误发生时发送信息” 2)去掉错误时产生 snapshot 的

3、选项 3)在 miscellaneous 上,去掉 定义每一步为一个事务 的选项 4)不选择 模拟浏览器缓存,选上“simulate new user on each iteration”和它的子选项 4.如果下载的页没有资源,在 web_url 函数中添加“Mode=HTTP”,这样会减少 LG 上的负载(不用转换成 HTML)。默认情况下,web_url 的 Mode 为 Mode=HTML 5.重启 LG 并且确保他们都能跟 Controller 连接. 6.确保 LG 和控制器上有足够的剩余磁盘空间 . 7.在 controller 中去掉 web page breakdown 8.限

4、制 Vuser 在所有 LG 上同时进行初始化的数目.可以在 Controller 的 Tools Options Run-Time Settings 中进行修改 .每个 LG 都有这个设置. 9.限制 controller 在运行时存储的错误数 .通过修改 wlrun.ini 中的output项来实现: FlagLimitOutputMessages=1 MaxNumberOfOutputMessages= (default is 10,000) 10.在 Controller 上修改 Monitor 的采样率来降低 CPU 的使用.可以在 Controlller 的 Tools Optio

5、ns Monitors 下修改,如下图所示 : 11. 如果有很多错误产生,最好不要经常打开 Error/Output 窗口,因为这样会因为访问数据库而打开另外的数据库连接. 12.负载测试中不要使用Show Vuser选项. 13.把输出信息重定向到一个文本文件中来代替输出到 mdb 文件中.可以在 wlrun7.ini 中修改output下的 ExportMessageToFile=1 来实现. 14.不要在 Controller 机器上运行虚拟用户. 15.在场景中设置监视器: * 内存使用上 mmdrv 进程的 private bytes * disk 使用 * CPU 使用 * 网络

6、使用 16.把脚本中所与打印信息的脚本去掉.如下面的代码每次迭代都会调用一次,对大量并发用户的运行产生负面的影响. lr_vuser_status_message(pIteration: %s - START Action, lr_eval_string(pIteration); lr_output_message(pIteration: %s - START Action, lr_eval_string(pIteration); Controller 处理所有虚拟用户的信息,这样会大大降低 Controller 的性能. 如下是类似的代码: web_reg_find(Text=Time on

7、 Server, SaveCount=cErr, .); web_url( some url ); if (atoi(lr_eval_string(cErr)0) lr_error_message(some message); lr_end_transaction(S05_T01_Request_Content_Page, LR_FAIL); 通常认为在脚本中插入 lr_error_message 是不好的,除非是调用的客户化的 API 失败了才有必要插入该语句.如果是 LoadRunner 的函数调用失败(如上面的 web_url 调用), 它会自动发送一个错误消息. 在大量用户运行的情况下

8、,控制 Controller 和 LG 之间的通信流量是非常重要的.发送多余的信息(错误,输出等信息)会增大通信流量降低负载能力.所以 ,通常都需要把代码中不必要的信息去掉. 17.去掉脚本中所有的 sleep()的调用,用 lr_think_time()来代替.lr_think_time 给 LR 让出控制,即 LR 能够在 Vuser 休眠的时候去做其他有用的事情. 18.不要去掉 lr_think_time:使用该函数能更准确的模拟负载,对 LG 产生相对小的压力 19.web_reg_save_param 和 web_reg_find()函数: 在 web_reg_save_param

9、() 中添加“Notfound=empty” 参数. 在 web_reg_find() 添加 Savecount=some_parameter_name. 如果你想知道它是否成功可以使用 atoi(lr_eval_string(some_paramater_name )来衡量. 20.其他 可能会出现的问题: * 测试产生了太多的错误: 错误引擎不能处理多于 1.5GB 的错误 如果测试过程中每秒产生多与 1000 个错误,Controller 的行为将不可预测 * 测试产生了大量的在线数据 上面的两个问题都可以使用如下的方法解决: 例如: 场景是一个组有 1000 个虚拟用户 可以把这个组分

10、成两个组: G1 100 Vusers G2 900 Vusers 这两个组可以跟原始的组产生一样的负载,对于 G2 在组命令行中添加如下参数: -disable_data -disable_messages _disable_data : 让这个组不发送任信息,不发送任何 online 信息,不写任何 offline 信息. _disable_message: 让这个组不给 Controller 发送任何信息(错误,日志) 注意:使用上面的命令行选项会使该 LG 不给 congtroller 发送 online 和 offline 信息.这样这个组上的虚拟用户的分析数据就收集不到了. 21.如果需要远程访问,Mercury 仅支持 PC anywhere.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 实验/测试

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号