LodRunner实现大负载测试的四部曲(配置系统参数、配置LR、修改脚本、设置组策略)...
见 http://www.51testing.com/?uid-97659-action-viewspace-itemid-210924
LoadRunner以下简称(LR)是目前业界最流行的压力测试工具,广泛地应用于电信、金融、电力行业。LR安装后文件非常大,这也说明LR是个强大复杂的工具。LR入门的介绍在网上有很多好的文章,它们都很好的介绍了工具的使用。但是对于很多行业级应用,使用LR会同时运行很多虚拟用户数(1000+),本文针对这样的测试类型介绍了一些需要考虑的问题和解决方法,希望给同行一些帮助。
第一步:配置系统参数
大并发用户的情况下,会出现如下问题:
1) 当采用netstat命令时,看到很多Socket处于“WAIT”状态
2) 负载增大时连接失败
3) mmdrv的句柄数 随着虚拟用户的运行而增加
4) 当建立连接时出现"No buffer space available"错误信息
解决方法
编辑以下注册表项:
1) 设置
“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Par
ameters\TcpTimedWaitDelay” 为30
2) 设置
“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Par
ameters\MaxUserPort”为65534
3) 设置
“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session
Manager\Sub Systems\Windows” 为SharedSection为4096
4) 脚本的第一行加上web_set_sockets_option(“SHUTDOWN_MODE”,”ABRUPT”)函数将SHUTDOWN_MODE从默认模式GRACEFUL改为ABRUPT
第二步:配置LR
1) 脚本运行时设置
● 消息处理时勾选"send message only when error occurs"
● 禁用snapshot on error
● "define each step as a transaction"取消勾选
● 取消"simulate browser cache"勾选, 勾选“simulate new user on each iteration”和它的子选项
2) 将脚本中web_url函数中的"Mode=HTML"默认方式改为"Mode=HTTP",这将减小LG机器上的压力(不解析HTML)
3) 将在controller的diagnostics->configuration中,禁止web page breakdown
4) 在Controller通过Tools > Options > Run-Time Settings限制同一时间在所有LG上初始化虚拟用户的数值,设置会被每台LG获得,这样做的目的是为了避免在脚本执行的初始阶段LG系统资源的过度 利用.
5) 修改系统目录下的wlrun7.ini限制测试运行时controller存储的错误数量,在[output]选项中,作如下修改
FlagLimitOutputMessages=1
MaxNumberOfOutputMessages=<errors count> (默认为10000)
6) 在Controller通过Tools>Options>Monitors修改monitor的采样率,这将减小测试运行时Controller的CPU利用率,如下图所示:
7) 修改wlrun7.ini中的ExportMessagesToFile=1重定向输出信息到.txt文件而不是到MDB文件
此外:关闭Controller和LG上的防病毒,防间谍软件,关于运行在以上电脑上不要的Windows服务;在Controller不要运行虚拟用户;不要频繁打开Error/Output窗口,因为这将增加额外Controller上额外的数据库连接数这些都是对进行成功的大负载测试的有益的建议。
第三步:修改脚本
1) 在负载测试时,保证Controller和Generator的网络通信非常重要,大量的信息(error message,output message)大并发负载测试有着很大的负面影响
如以下两例
------------------示例1-----------------------
lr_vuser_status_message("pIteration: %s -START Action", lr_eval_string("{pIteration}"));
lr_output_message("pIteration: %s -START Action", lr_eval_string("{pIteration}"));
------------------示例2-------------------------
web_reg_find("Text=Time on Server", "SaveCount=cErr", ..);
web_url( some url …);
if (atoi(lr_eval_string("{cErr}"))>0) {
lr_error_message(some message);
lr_end_transaction("Request_Content_Page", LR_FAIL);
}
-----------------------------------------------------------------------------
这些语句都仅仅应该出现在脚本调试时而不应该出现在负载测试时的脚本中,在正式的负载测试前,注释掉这些语句。
2) 把脚本中sleep()函数改为lr_think_time()函数,lr_think_time将控制权交还给LR,这意味着LR可以做其他事情。不要忽略lr_think_time,适用参数值以模拟更精确的负载同时也可减小LG的压力。
3) 在web_reg_save_param函数 添加 “Notfound=empty”
第四步:设置组策略
大负载测试时会有以下情况发生
● 产生很多错误,数据量大于1GB
● 假如每秒产生1000条左右错误的话,Controller的行为将很难预测
● 压力测试产生很多运行数据
这些问题可以通过设置一个合理的组策略避免,以下举一个例子说明
场景为1000个虚拟用户,用一个Group运行
这时把这个Group分为两个Group:
G1-〉100 Vusers
G2-〉900 Vusers
在G2的设置中,添加以下命令行:
–disable_data -disable_messages
-disable_data – 指示Group不要发送和写入运行数据
-disable_messages – 指示Group不要发送任何信息(errors,logs)给Controller
结尾语:单从测试而言,SilkPerformer和QALoad以及其他开源工具皆可实现压力测试的目的,本文介绍的内容从方法上对于其他工具也适用,但实现细节会略有差别。祝大家成功!
转载于:https://www.cnblogs.com/shengs/p/4399694.html
LodRunner实现大负载测试的四部曲(配置系统参数、配置LR、修改脚本、设置组策略)...相关推荐
- 56 SD配置-科目分配-定义物料科目设置组
业务背景:定义物料科目设置组 事务码:SPRO SPRO路径:SPRO->销售和分销->基本功能->科目分配/成本->收入帐户确定->检查科目分配相关的主资料 第1步,S ...
- 在组策略中用户策略仅对特定计算机生效,将组策略应用到满足条件的计算机---配置组策略筛选...
配置组策略筛选 Microsoft?Windows?Management Instrumentation (WMI) 大概是我们已知的 Microsoft 保存最好的秘密.尽管如此,但毫无疑问,WMI ...
- Windows Server 2012活动目录基础配置与应用(新手教程)之9---了解组策略
引入:认识组策略 1.在DC1和客户机上,在运行对话框里分别输入以下两条命令 (1) gpmc.msc (2)gpedit.msc 比较两次打开的窗口,有什么不同. 2.在ADDS中可以针 ...
- 运行计算机配置gpedit,组策略(gpeditmsc)学习
组策略(gpeditmsc)学习 组策略(gpedit.msc)学习习背景:组策略就是修改注册表中的配置.当然,组策略使自己更完善计算机的管理组织方法,可以对各种对象中的设置进行管理和配置,远比手工修 ...
- 【Windows Server 2019】组策略的配置与管理——配置基于本地的组策略
目录 2. 配置基于本地的组策略 2.1 打开本地组策略编辑器 (1)禁止本机用户编辑注册表 (2)禁用Windows Server 2019服务器的[关闭事件追踪程序] (3)禁用互联网属性对话框中 ...
- 一个自动配置 opengrok 多项目的脚本
前段时间在服务器上配置 opengrok 阅读代码,项目有很多个,一个一个手动配置比较繁琐. 我从搭建 tomcat 和 opengrok,到配置和索引完 5 个 Android 项目,用了差不多一整 ...
- WAS服务器负载测试软件导读
转帖:出处未知 你的Web服务器和应用到底能够支持多少并发用户访问?在出现大量并发请求的情况下,软件会出现问题吗?这些问题靠通常的测试手段是无法解答的.本文介绍了Microsoft为这个目的而提供的免 ...
- 能和LoadRunner匹敌的VS2010/2012Web负载测试
VS自带的Web负载测试真的很大程度上能和专业的loadrunner媲美(只是Web方面),上个report图吧(如何实现,请往下拉): 看,能探测一堆的计数器(上面红色打叉的是代表超过了基线值).还 ...
- 性能测试,负载测试,压力测试以及容量测试的联系与区别--网搜及总结
1.负载测试,英文是Load testing. 负载测试是性能测试的一种,测试一个应用在重负荷下的表现.例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系 ...
最新文章
- bert速度提升fastbert
- python有时候没有智能提示_python没有报错提示
- Mongodb部署及使用
- 《Programming WPF》翻译 第8章 6.我们进行到哪里了?
- GridView导出为Excel
- html绑定按键图片移动,如何使用JS实现用键盘控制图片移动呢?
- 两次结果的绝对差值_你知道电子天平的检定和检定结果的影响因素有哪些吗?...
- android 使用动态的svg资源,在Android中使用SVG作为资源 – victor
- 机器学习 Machine Learning中正则化的学习笔记~
- 第3章 动态规划 矩阵连乘问题
- java day42【综合练习】
- 通过EPPlus导出Excel文件
- html怎么设置光线,vray渲染器太阳光参数怎么设置?
- mysql 联合查询_MySQL联合查询
- 蓝宝石rx470d原版bios_AMD RX470/570强刷RX580完整图文教程(附文件下载及查BIOS攻略)...
- os系统配置putty服务器,Mac 电脑安装putty
- 4.jvm入门到精通
- 记一次windows下安装部署运维监控系统WGCOUD的步骤
- 微信小程序地址自动识别
- 京瓷 (Kyocera)6025 6525 4028 4125等机器提示检查墨粉盒 ,摇晃粉盒,粉盒带动传感器的问题 报错处理维修方法
热门文章
- IDE ,SAS,SATA,SCSI,SSD硬盘的主要区别
- Android 4.0中振动控制
- opensuse download
- 反弹和补遗:再论Bjarne Stroustrup的基于对象的含义
- C#中运行命令行截取输出流的例子
- mysql 实时聚合分析,mysql累积聚合原理与用法实例分析
- 模糊测试工具Simple Fuzzer
- python统计字符串个数_python字符串中字符出现次数(python获取字符串个数)
- dell服务器清空系统空间,PowerEdge 服务器上的内存配置错误。
- 学java时的一些笔记(2)