性能测试过程中遇到的一些问题总结
作者:网络转载 发布时间:[ 2015/7/31 11:08:49 ] 推荐标签:软件测试 性能测试
13. Loadrunner的think time设置
“Think Time”顾名思义-思考时间。它效仿真实用户在实际操作过程中的等待时间。也是说,实际用户在浏览网页,操作B/S系统的时候,不可能像机器一样不停 的点啊点,在操作和操作之间会有一定的间隔。如:你浏览网页,打开一个或几个网页后,你会阅读,读过之后才会继续打开新网页。你阅读时所消耗的时间是Think Time。对于服务器来说,这段时间是没有压力的。
我们做性能测试,很多时候要模拟这种状态。例如:某系统,要求满足100用户同时在线操作,响应时间在5秒。如果不设置Think Time,我觉得,你的测试是失败的。大家想想为什么?答案将在文章的结尾揭晓。
下面我来讲解一下LR中Think Time的设置。
设置Think Time有两种方式,一种是使用Record think time在录制过程中根据实际等待时间自动的写入脚本。另一种是在脚本录制结束后手动加入到脚本中。接下来我们详细介绍。
自动:
位置及操作:Recording Option-Advanced:勾上Record think time,这样在你录制的时候,Think Time会自动添加入你的脚本。需要注意的是,后面还有一项Think time threshold,它的作用是定义你所要录制的Think Time的小时间。举个例子,如果你把这个值设置为5秒,那么如果录制过程中等待的时间小于5秒,那么不会在脚本中记录这个Think Time。
手动:
位置及操作:脚本中任何你想要插入的地方。注意,不要将Think Time插入到你定义的事务当中,否则,测出的事务时间需要减去Think Time的时间呦。操作:在你想要插入Think Time的地方,右键,Insert-New Step在Time To Think()second在空中填写你为想要设置的时间。也可以在脚本中直接写函数lr_think_time();
添加好后,我们在Run-time Settings中设置执行的策略。
位置:Run-time Settings-Think Time。进入后,我们会看到两个选项。Ignore think time:忽略think time,也是即使你添加了think time,脚本执行的时候也不会理睬,忽略不执行。Replay the think time:下面还有3个子项。As recorded:按照录制的执行。不用多说。Multiply recorded think time by:这是我录制的think time乘一个系数。如,你录制的think time是4秒,在这里设置2,后执行时会按4秒×2=8秒来执行。如果你想要执行2秒,在这里填0.5。Use random percentage of the recorded think time:这里随机设置一个百分比,并规定上下限。如,录制的think time为4秒。Min为50%,Max为200%。那么执行的时候它会从2秒到8秒内随机取一个数来执行。Limit think time to:为think time设置一个上限,不管上面的如何设置,执行的时候,取值都不会操过这个上限。
讲到这里,think time的设置大家应该很明白了。不知道让大家思考的问题是否想通了。需求说的是100用户同时在线操作,注意,是在线!大家想想,100人在线肯定有人 在操作,也有人只是在线,没有对服务器发出任何请求。如果不设置think time,相当于100人并发操作,每个人都不停的向服务器发送请求,这比需求的压力可是大很多的呦
14. 问题描述step download timeout (120 seconds)
这是一个经常会遇到的问题,解决得办法走以下步骤:
1、 修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为600、600、5000;run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数;
2、 办法一不能解决的情况下,解决办法如下:
设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放成功了。切记此法只对windows系统起作用。
15. 问题描述Connection reset by peer
这个问题不多遇见,一般是由于下载的速度慢,导致超时,所以,需要调整一下超时时间。
解决办法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’设置set advanced options(设置高级选项),重新设置一下“HTTP-request connect timeout(sec),可以稍微设大一些”;
16. 问题描述connection refused
这个的错误的原因比较复杂,也可能很简单也可能需要查看好几个地方,解决起来不同的操作系统方式也不同;
1、 首先检查是不是连接weblogic服务过大部分被拒绝,需要监控weblogic的连接等待情况,此时需要增加acceptBacklog,每次增加25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*Statement Cache Size)的值应该小于等于oracle数据库连接数大值;
2、 如果方法一操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi文件limits修改其中的连接限制数,还有tcp连接等待时间间隔大小,wiodows类似,只不过wendows修改注册表,具体修改方法查手册,注册表中有TcpDelayTime项;
17. 问题描述Failed to connect to server
这个问题一般是客户端链接到服务失败,原因有两个客户端连接限制(也是压力负载机器),一个网络延迟严重,解决办法:
1、 修改负载机器的tcpdelaytime注册表键值,改小;
2、 检查网络延迟情况,看问题出在什么环节;
建议为了减少这种情况,办法一好测试前完成了,保证干净的网络环境,每个负载机器的压力测试用户数不易过大,尽量平均每台负载器的用户数,这样以上问题出现的概率很小了。
18. 问题描述:Overlapped transmission of request to ... WSA_IO_PENDING
这个问题,解决方法:
1、方法一,在脚本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB细分,问题即可解决,但是TTFB细分图将不能再使用,附图。
2、方法二,可以通过增加连接池和应用系统的内存,每次增加25%。
19. 问题描述:Failed to transmit data to network: [10057] Socket is not connected
这个错误是由网络原因造成的,PC1和PC2上面都装了相同的loadrunner 9.0,且以相同数量的虚拟用户数运行相同的业务(机器上的其他条件都相同),PC1上面有少部分用户报错,PC2上的用户全部执行通过。
20. 佳并发数,大并发数
看过陈雷写的一篇关于理发店模型的文章,里面分析了系统佳并发数和大并发数,引用一下原文:
假设 理发店有3个理发师,每剪一个头需要1小时,客户的忍耐时间为3小时,那么,这个理发店的佳并发用户数为3,大并发数为9,
根据以上的说法,我个人认为:
我们在做性能测试时,系统的佳并发数为 系统的大连接数(人为设置),系统的大并发数为:当系统出现事物超时、用户运行失败、系统崩毁 时的并发数
以上是个人理解
21. LoadRunner重装遇到的问题
如果安装LoadRunner新版本失败,相信很多朋友都会遇到重新安装不成功的烦恼。原因可能是多种情况,可能是早 期的LoadRunner版本兼容性问题导致安装失败,也可能安装过程中弹出组件注册失败的各种错 误。如果正常重新安装,只能先让LoadRunner充分卸载。
可以按以下的步骤操作:。
1.保 证所有LoadRunner的相关进程(包括Dontroller、VuGen、Bnalysis和Bgent Process)全部关闭。
2.备份好LoadRunner安 装目录下测试脚本,这些脚本一般 存放在LoadRunner安装目录下的“scrīpts”子 目录里。
3.在操作系统控 制面板的“删除与添加程序”中运行LoadRunner的卸载程序。如果弹出提示信息关于共享文件的,都选择全部删除。
4.卸 载向导完成后,按照要求重新启动电脑。完成整个LoadRunner卸载过程。
5.删 除整个LoadRunner目录。(包括Bgent Process)。
6.在操作中查找下列文件,并且删除它们。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南