"每秒X条请求"的困惑
lr也用了漫长一段时间,有个概念性的东西一直不太明白在性能测试步骤里,经常可以看到说“每秒发起X条请求”这样的句子,比如说,我想给一个WEB网页加压,想实现的效果,是每秒都有50个用户在尝试打开这个网站,那么这种效果是如何实现的呢
假如说50个用户并发,如果50个用户打开页面都需要1秒,那1秒之后大家都打开网站,开始重复打开第二次,这样确实可以实现每秒都有50个人提交了打开网页的请求
但是实际上,因为各个USER的速度不同,或者服务器响应时间等关系。
如果每个USER只要0.5秒就可以打开,那50并发的时候,实际上每秒每用户会打开2次,那就变成每秒发出了100个请求
如果每个USER要花2秒才能打开,同理变成了每秒25个请求
如果使用集合点,直到50个用户的时候,才同步发送请求
确实第一秒的时候,是50并发,但是第二秒,可能只有20个用户已经完成,这个时候因为集合点不满50,于是20个用户等待,直到第三秒才聚集50个用户,这样就变成第一秒50并发,第二秒0并发,第三秒50并发,中间有了1秒的真空期
这个问题我一直想不通
请问各位,在平常使用中,是如何设计来实现那种“每秒都有50个请求被提交到服务器”这样的效果呢?
本人测试博客有详细回复
http://www.51testing.com/?26410/action_viewspace_itemid_89024.html 个人认为:性能测试有个定量的问题。测试环境需要确定。如果是专用网,那么客户端到服务器端的通路故障则一般不会体现;但是如果是门户网站,就像搜狐,访问它的用户遍布全球,各种网络用户都有,这种情况下客户端到服务器端的通路则会是很大故障。单纯的提多少个用户是没有意义的,必须结合一定的环境。
性能测试范围需要确定。比如,要求每秒50个请求,50个请求是什么样子的请求。比如设计的50个请求中,会不会一部分就是简单的浏览;而另一部分则是批量操作?明显的,两个操作不一样,耗时肯定不一样。所有需要详细分析业务模式是什么样子的,根据业务模式详细确定场景。
性能测试的测试结果分析讲究的是一个统计含义的分析。你可以看下你的测试结果属于哪种统计范畴。认为一般情况下不需要严格定义每秒的请求数量。例如,客户有可能要求的是服务器处理100条/分钟.那么我认为,你执行性能测试时间长60分钟,按照要求需要处理6000条数据/60分钟;服务器共处理请求5900条/10分钟与处理6100条/10分钟;是没有统计学意义上的差异的。
-------------------
谢谢楼上的讲解,我把你的回复先复制到上面,方便接下来的讨论
事情是这样,比如我当前正在做的项目,是一个WAP的网站,录制了脚本,只加一条线在控制器里的话,访问页面的速度只要0.01秒。
我在查资料的时候,看到其他公司类似的项目中,有这样一个测试的指标
“测试方法:以5个/秒,50个/秒,100个/秒,200个/秒的并发数分别来做性能测试,测试延时为1秒。
正常测试: 500毫秒以下为合格,100毫秒以下为优秀;成功率99%以上为优秀,95%以上为合格。”
我想按照他们的文档说的那样,实现以“200个/秒为并发”这样一个场景
问题是,如前面所说,我录制的脚本,在真正执行的时候,其实只要0.01秒就可以跑完
这样假如我在LR里设置200个VUSER,不就变成了每秒20000的请求了么?
就这个例子来说,我觉得设置集合点,因为每个用户只要0.01秒就可以来,所以事先200用户每秒应该还不太难
但我想,如果这个网站要2秒才能能打开,我又该怎么设置才行呢?
我觉得,可能到某些时候,也可以我必须实现这样的一个脚本
比如每秒都有50个用户点击打开网站这样
页:
[1]