对Socket接口进行压力测试,设置think time 必要性
压力测试时适当的设置think time 是必要的。前段时间我在做一个Socket接口的压力测试,由于不能采用录制的方式,而直接写的脚本,里面没有用think time ,结果导致测试结果是最大并发数为6个用户,而按照设计远不止这个数的,我百思不得其解。
后来分析了错误报告,发现错误都是“创建连接被拒绝”,“创建连接超时”,再看每分钟事务数(我将每个连接作为一个事务)达到了6000多。
问题找到了,原来脚本里没有设置think time ,VUser不停的创建连接(当然用完会马上关闭的),试想脚本里创建并关闭一个连接只有8ms,导致Socket接口在短时间内没有足够的ID可供分配。
然后我在创建连接后设置1秒的think time再关闭连接,重新运行场景,这下并发数上到200个(两台压力生成机的license最大用户数)。
如果单独对Socket接口进行压力测试,要好好考虑每个连接的持续时间,和连接间的间隔时间,尽量模拟得真实一些,否则测试结果的准确性会很低。 了解了 谢谢 o .原来是这样的。那楼主可以说下设置think time 有必要,但一般值是设置为多少,根据什么来判断呢!?学习中:) 是这样哈,我也做过一次socket的测试,没有设置think time,结果虚拟用户数10个时,被测试程序的机器CPU就达到了100% 楼主说的并发用户数,是指的虚拟用户数吗?
其实加think time 使用多一些虚拟用户数与不加think time 少一些虚拟用户数效果是一样的,并且是可以相互换算的,
压力测试的目的如果是测试系统在常规条件下能承受的虚拟用户数,那边think time的设置是非常重要的,(测试的难点就在于think time的设置,怎么样设置才是最接近事实的)
回复 5# 的帖子
我是分别对并发连接数,并发用户数作的测试。并发连接数测试正常。
但把其他几个模块(处理数据包的)加入以后,并发用户数测试的结果总是很不稳定。
因为这是一个新设计的socket接口,现在只针对socket接口和调用它的com组件作测试,需要自己衡量一个测试标准出来,现在就是这个标准测试脚本不好定,有点头大了。 loadrunner 是为了模拟一个真实用户的操作去.访问你所要测试的东西
think time 在录制的时候 也会自动地添加到脚本里面
只是loadrunner 里面有一个选项是.ignore think time 的
所以.没能感觉到..你只要把那个选项去掉就ok了 如果操作人员恶意攻击,或者点击过快呢...也有这种可能的...因为有些用户可能也会用工具! 真实,就把录制时的间隔启用就可以
不忽略think_time
页:
[1]