loadrunner使用指导.docx
- 文档编号:8338633
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:12
- 大小:38.02KB
loadrunner使用指导.docx
《loadrunner使用指导.docx》由会员分享,可在线阅读,更多相关《loadrunner使用指导.docx(12页珍藏版)》请在冰豆网上搜索。
loadrunner使用指导
文档标识号:
密级:
内部公开
版本:
V1.0.0.0
修订日期:
2016-02-29
Loadrunner使用指导
技术支持部
2016年2月26日
文档变更记录
版本
修改内容描述
修改人
日期
备注
V1.0
编写初稿
gml
2016/2/23
目录
1Loadrunner相关介绍1
1.1Loadrunner简介1
1.2Loadrunner组成1
1.3性能测试的基本步骤1
2Loadrunner使用1
2.1软件的安装1
2.2脚本的录制1
2.3测试场景的设计1
2.4测试场景执行1
2.5测试结果分析2
3常见问题2
3.1Stepdownloadtimeout(120seconds)2
3.2问题描述Connectionresetbypeer.2
3.3问题描述connectionrefused2
3.4问题描述openmanyfiles3
3.5问题描述hasshutdowntheconnectionprematurely3
3.6题描述Failedtoconnecttoserver4
3.7问题描述Overlappedtransmissionofrequestto...WSA_IO_PENDING4
3.8问题描述Deletedthecurrenttransaction...sinceresponsetimeisnotaccurate4
3.9问题描述HTTPStatus-Code=500(InternalServerError)for4
3.10问题描述Failedtotransmitdatatonetwork:
[10057]Socketisnotconnected4
3.11问题描述通过Controler调用远程代理时报错4
3.12LoadRunner超时错误:
5
3.13LoadRunner脚本中出现乱码:
5
3.14LoadRunnerHTTP服务器状态代码:
6
3.15Error-26612:
6
3.16LoadRunner请求无法找到:
7
3.17LoadRunner不执行检查方法:
7
4可参考文件8
Loadrunner使用指导
1Loadrunner相关介绍
1.1Loadrunner简介
Loadrunner是一款性能测试工具;
1.2Loadrunner组成
主要有三大模块组成:
VirtualUserGenerator-生成用于“Controlier”部署的Vusers,
LoadRunnerControlier-产生压力和搜集测试结果数据,
LoadRunnerAnalysis-通过图表分析工具来编译和显示测试结果;
1.3性能测试的基本步骤
制定性能测试计划-》使用Vuser录制调试脚本VuGen-》用LoadrunnerController设置场景-》运行场景-》监视场景byLoadrunneronlineruntime等-》分析测试结果
2Loadrunner使用
2.1软件的安装
安装方法参见文档的
2.2脚本的录制
1.录制基本脚本见附件文档的第3-4章;
2.优化脚本见上述文件第6章;
注意:
使用oracle的数据向导时,只支持32的odbc的客户端
2.3测试场景的设计
设计场景参见上述文件“HPloadrunner中文教程11.0”的第7和9章;
2.4测试场景执行
设计场景参见上述文件“HPloadrunner中文教程11.0”的第8章;
2.5测试结果分析
设计场景参见上述文件“HPloadrunner中文教程11.0”的第10章;
3常见问题
3.1Stepdownloadtimeout(120seconds)
解决得办法走以下步骤:
1、修改runtimesetting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-requestconnecttimeout,HTTP-requestreceievetimeout,Stepdownloadtimeout,分别建议修改为600、600、5000。
runtimesetting设置完了后记住还需要在control组件的option的runtimesetting中设置相应的参数。
2、办法一不能解决的情况下,解决办法如下:
设置runttimesetting中的internetprotocol-preferences中的advaced区域有一个winlnetreplayinsteadofsockets选项,选项后再回放就成功了。
切记此法只对windows系统起作用,此法来自zee的资料。
3.2问题描述Connectionresetbypeer.
一般是由于下载的速度慢,导致超时,所以,需要调整一下超时时间。
解决办法:
Run-timesetting窗口中的‘InternetProtocol’-‘Preferences’设置setadvancedoptions(设置高级选项),重新设置一下“HTTP-requestconnecttimeout(sec),可以稍微设大一些”。
3.3问题描述connectionrefused
解决起来不同的操作系统方式也不同:
1、首先检查是不是连接weblogic服务过大部分被拒绝,需要监控weblogic的连接等待情况,此时需要增加acceptBacklog,每次增加25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*StatementCacheSize)的值应该小于等于oracle数据库连接数最大值。
2、如果方法一操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi文件limits修改其中的连接限制数、端口数,还有tcp连接等待时间间隔大小,wiodows类似,只不过windows修改注册表,具体修改注册表中有TcpTimedWaitDelay和MaxUserPort项,键值在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\]。
因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。
在全部占满后,就会出现上面的错误。
执行netstat–na命令,可以看到打开了很多端口。
所以就调整TCP的timeout。
即在最后一个端口还没有用到时,前面已经有端口在释放了。
1)这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
2)可以把MaxUserPort调大(如果这个值不是最大值的话)。
3.4问题描述openmanyfiles
问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法:
1、修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量对涉及到的服务器都作修改。
2、方法一解决不了情况下再去查看应用服务器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles数增大,应该就可以通过了,具体就是查找到nofiles方法,修改其中else条件的执行体,把文件打开数调大。
修改前记住备份此文件,防止修改出错。
3、linux上可以通过ulimit–HSn4096来修改文件打开数限制,也可以通过ulimit-a来查看。
4、linux上可以通过lsof-ppid|wc-l来查看进程打开的句柄数。
3.5问题描述hasshutdowntheconnectionprematurely
一般是在访问应用服务器时出现,大用户量和小用户量均会出现。
来自网上的解释:
1>应用访问死掉小用户时:
程序上的问题。
程序上存在数据库的问题
2>应用服务没有死应用服务参数设置问题
例如:
在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。
如果连接时收到connectionrefused消息,说明应提高该值,每次增加25%Java连接池的大小设置,或JVM的设置等
3>数据库的连接:
在应用服务的性能参数可能太小了,数据库启动的最大连接数(跟硬件的内存有关)
以上信息有一定的参考价值,实际情况可以参考此类调试。
如果是以上所说的小用户时:
程序上的问题。
程序上存在数据库的问题,那就必须采用更加专业的工具来抓取出现问题的程序,主要是程序中执行效率很低的sql语句,weblogic可以采用introscope定位,期间可以注意观察一下jvm的垃圾回收情况看是否正常,我在实践中并发500用户和600用户时曾出现过jvm锯齿型的变化,上升下降都很快,这应该是不太正常的。
---------------------------------------
实际测试中,可以用telent站点看看是否可以连接进去,可以通过修改连接池中的连接数和适当增加应用内存值,问题可以解决。
3.6题描述Failedtoconnecttoserver
这个问题一般是客户端链接到服务失败,原因有两个客户端连接限制(也就是压力负载机器),一个网络延迟严重,解决办法:
1、修改负载机器注册表中的TcpTimedWaitDelay减小延时和MaxUserPort增加端口数。
注:
这将增加机器的负荷。
2、检查网络延迟情况,看问题出在什么环节。
建议为了减少这种情况,办法一最好测试前就完成了,保证干净的网络环境,每个负载机器的压力测试用户数不易过大,尽量平均每台负载器的用户数,这样以上问题出现的概率就很小了。
3.7问题描述Overlappedtransmissionofrequestto...WSA_IO_PENDING
这个问题,解决方法:
1、方法一,在脚本前加入web_set_sockets_option("OVERLAPPED_SEND","0"),禁用TTFB细分,问题即可解决,但是TTFB细分图将不能再使用,附图。
2、方法二,可以通过增加连接池和应用系统的内存,每次增加25%。
3.8问题描述Deletedthecurrenttransaction...sinceresponsetimeisnotaccurate
这个问题不多遇见,一般出现在压力机器上发生ping值为负数(AMD双核CPU),可以重新启动pc机或者打补丁,附图。
3.9问题描述HTTPStatus-Code=500(InternalServerError)for
1、应用服务当掉,重新启动应用服务。
2、当应用系统处于的可用内存处于阀值以下时,出现HTTPStatus-Code=500的概率非常高,此时只要增加应用系统的内存,问题即可解决。
3.10问题描述Failedtotransmitdatatonetwork:
[10057]Socketisnotconnected
这个错误是由网络原因造成的,PC1和PC2上面都装了相同的loadrunner9.0,且以相同数量的虚拟用户数运行相同的业务(机器上的其他条件都相同),PC1上面有少部分用户报错,PC2上的用户全部执行通过。
问题描述Error-27257
Pendingweb_reg_save_param/reg_find/create_html_param[_ex]request(s)detectedandresetattheendofiterationnumber1
解决方法:
web_reg_save_param位置放错了,应该放到请求页面前面。
3.11问题描述通过Controler调用远程代理时报错
Error:
CCIsecurityerror:
Youarerunningundersecuremodeandthefunctionsystemisnotallowedinthismode.
解决方法:
在代理开启的时候,去掉勾选防火墙选项。
3.12LoadRunner超时错误:
错误现象1:
Action.c(16):
Error-27728:
Stepdownloadtimeout(120seconds)hasexpiredwhendownloadingnon-resource(s)。
错误分析:
对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送一个请求到服务器端,如果超过120秒服务器端还没有返回结果,则出现超时错误。
解决办法:
首先在运行环境中对超时进行设置,默认的超时时间可以设置长一些,再设置多次迭代运行,如果还有超时现象,需要在“RuntimeSetting”>“InternetProtocol:
Preferences”>“Advanced”区域中设置一个“winlnetreplayinsteadofsockets”选项,再回放是否成功。
错误现象2:
Action.c(81):
ContinuingafterError-27498:
TimedoutwhileprocessingURL=http:
//172.18.20.70:
7001/workflow/bjtel/leasedline/querystat/subOrderQuery.do
错误分析:
这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。
如果压力很小就出现这个问题,可能是脚本某个地方有错误,要仔细查看脚本,提示的错误信息会定位某个具体问题发生的位置。
解决办法:
例如上面的错误现象问题定位在某个URL上,需要再次运行一下场景,同时在其他机器上访问此URL。
如果不能访问或时间过长,可能是服务器或者此应用不能支撑如此之大的负载。
分析一下服务器,最好对其性能进行优化。
如果再次运行场景后还有超时现象,就要在各种图形中分析一下原因,例如可以查看是否服务器、DNS、网络等方面存在问题。
最后,增加一下运行时的超时设置,在“Run-TimeSettings”>“InternetProtocol:
Preferences”中,单击“options”,增加“HTTP-requestconnecttimeout”或者“HTTP-requestreceive”的值。
3.13LoadRunner脚本中出现乱码:
在录制Web协议脚本时出现中文乱码,在回放脚本时会使回放停止在乱码位置,脚本无法运行。
错误现象:
某个链接或者图片名称为中文乱码,脚本运行无法通过。
错误分析:
脚本录制可能采用的是URL-basedscript方式,如果程序定义的字符集合采用的是国际标准,脚本就会出现乱码现象。
解决办法:
重新录制脚本,在录制脚本前,打开录制选项配置对话框进行设置,在“RecordingOptions”的“Advanced”选项里先将“SurportCharset”选中,然后选中支持“UTF-8”的选项。
3.14LoadRunnerHTTP服务器状态代码:
在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。
错误现象1:
-404NotFound服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。
错误分析:
此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。
解决办法:
在出现错误的位置进行脚本关联,在必要时插入相应的函数。
错误现象2:
-500InternalServerError服务器内部错误,脚本运行停止。
错误分析:
服务器碰到了意外情况,使其无法继续回应请求。
解决办法:
出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。
3.15Error-26612:
HTTPStatus-Code=500(InternalServerError)forhttp:
//192.168.100.88:
88/Purchase/stockin_action.asp?
Oper=Edt
解决过程:
按Help提示在浏览器输入原地址,发现提示“请重新登陆系统”。
因为集合点下一站就是修改的提交操作,于是查找web_submit_data-->定位查找Log文档
注意点:
怎么找log文件
-->Controller-->Results-->ResultsSettings查找本次log文件保存目录-->到该目录下查找log文件夹-->打开
惊喜的发现其中竟然有所有Vuser的运行log。
-->打开Error查找报错的Vuser-->打开相应的log文件
Action.c(30):
MicrosoftOLEDBProviderforODBCDrivers
Action.c(30):
05'\n
Action.c(30):
\n
Action.c(30):
Action.c(30):
与另一个进程已被死锁在 lock资源上,且该事务已被选作死锁牺牲品。
请重新运行该事务。
其实并发死锁本来就是本次的重点,之前是写事务,但没有做整个页面的锁定,只是写在SQL里。
程序员说这样容易出现页面错误,
又改成页面锁定,具体怎么锁偶没看懂asp外行。
之前事务冲突,偶让他写个标志,定义个数值字段增一,偶就可以直观看出来了。
这次改成页面就删掉这些标志了,于是出错就无处可寻。
3.16LoadRunner请求无法找到:
在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。
错误现象:
Action.c(41):
Error-27979:
Requestedform.notfound[MsgId:
MERR-27979]
Action.c(41):
web_submit_form.highestseveritylevelwas“ERROR”,0bodybytes,0headerbytes[MsgId:
MMSG-27178]”
这时在treeview中看不到此组件的相关URL。
错误分析:
所选择的录制脚本模式不正确,通常情况下,基于浏览器的Web应用会使用“HTML-basedscript”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的JavaApplet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用HTTPS安全协议,这时则使用“URL-basedscript”模式进行录制。
解决办法:
打开录制选项配置对话框进行设置,在“RecordingOptions”的“InternetProtocol”选项里的“Recording”中选择“RecordingLevel”为“HTML-basedscript”,单击“HTMLAdvanced”,选择“Script.Type”为“Ascript.containingexplicit”。
然后再选择使用“URL-basedscript”模式来录制脚本。
3.17LoadRunner不执行检查方法:
在录制Web协议脚本中添加了检查方法Web_find,但是在脚本回放的过程中并没有执行。
错误现象:
在脚本中插入函数Web_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_find失效。
错误分析:
由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。
解决办法:
打开运行环境设置对话框进行设置,在“Run-timeSettings”的“InternetProtocol”选项里的“Perference”中勾选“Check”下的“EnableImageandtextcheck”选项。
4可参考
4.1loadrunner基础东西的学习
1.
2.
4.2常见的http错误
常用的HTTP状态代码如下:
400无法解析此请求。
401.1XX:
访问由于凭据无效被拒绝。
401.2XX:
访问由于服务器配置倾向使用替代身份验证方法而被拒绝。
401.3XX:
访问由于ACL对所请求资源的设置被拒绝。
401.4XX:
Web服务器上安装的筛选器授权失败。
401.5XX:
ISAPI/CGI应用程序授权失败。
401.7XX:
由于Web服务器上的URL授权策略而拒绝访问。
403禁止访问:
访问被拒绝。
403.1禁止访问:
执行访问被拒绝。
403.2禁止访问:
读取访问被拒绝。
403.3禁止访问:
写入访问被拒绝。
403.4禁止访问:
需要使用SSL查看该资源。
403.5禁止访问:
需要使用SSL128查看该资源。
403.6禁止访问:
客户端的IP地址被拒绝。
403.7禁止访问:
需要SSL客户端证书。
403.8禁止访问:
客户端的DNS名称被拒绝。
403.9禁止访问:
太多客户端试图连接到Web服务器。
403.10禁止访问:
Web服务器配置为拒绝执行访问。
403.11禁止访问:
密码已更改。
403.12禁止访问:
服务器证书映射器拒绝了客户端证
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- loadrunner 使用 指导