探讨LoadRunner的并发用户和集合点
作者:网络转载 发布时间:[ 2015/3/31 11:32:28 ] 推荐标签:LoadRunner 性能测试工具
通常情况下,我们会得到用户这样的需求“本系统要达到并发用户200”,这种需求从严格意义上来讲是不合格的,因为对于一个系统来说有很多个功能,比如系统登录、注册、查询、删除等等,是要求登录达到200,还是所有功能总共达到200,因为当用户进入系统之后,有些用户在执行注册,有些用户在执行查询,是否可以并行操作,也是所谓的并发,所以说要理解集合点和并发数,从根本上应该更清晰的理解业务流程,只有把业务分析清楚了,方才可以合理的使用集合点,正确的理解并发用户数。
当然,我个人来讲,我是很少使用集合点的,因为通过LoadRunner的理解,我认为LoadRunner本身已经在模拟实现一个并发的过程,而增加集合点设置只是为了并实现严格意义上的所谓的并发,而实际是这个集合点的设置也并非达到了这个目的,结构中的过程可以证明。当然为此我也通过一些实例来做验证,以下是对Mercury web Tours网站首页,录制访问过程,脚本如下:
脚本1:设置集合点
Action()
{
lr_rendezvous("同步访问web页面");
lr_start_transaction("start");
web_url("mercuryWebTours",
"URL=http://192.168.3.34:1080/mercuryWebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
lr_end_transaction("start",LR_AUTO);
return 0;
}
脚本2:不设置集合点
Action()
{
web_url("mercuryWebTours",
"URL=http://192.168.3.34:1080/mercuryWebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
return 0;
}
在相同场景实际中执行两个脚本之后,发现其响应时间其实误差很小。当然,这只是我实践中的一个,近期做的其他项目中,包括C/S和B/S都有的,我也都有实践过,期待有兴趣的朋友也可以实践验证哈,分享结论。
以上我只是想表达的一个观点是,并不是集合点在我们的性能测试中没有作用,如果没有作用我相信设计LoadRunner的公司也不会给出来,而是要理解如何选择去用它,这才是关键。之前我们讲到过,在一些业务流程比较复杂的应用程序测试中,我们必须要使用集合点,比如一个企业系统中业务是这样的:用户登录进入之后,一部分人在完善个人资料,一部分人在查询数据,另一部分人在执行删除操作,还有一部分来发送消息等等。这样的一个业务中,在模拟执行性能测试时,必须明确并发用户跟集合点的关系,在实际录制脚本的时候,我们需要把这个业务分割成多个事务,然后分别对各个不同的事务要设置集合点,为什么此时要使用集合点呢,因为我们必须分析出每一个事务的并发情况,加入200个用户进去之后,我们这样放任去这200个用户自由去操作,不能判断出查询并发数多少、删除并发数多少、发送消息的并发又是多少,因为进入系统之后,没办法确定200个用户都同时干了些什么,所以此处才是集合点使用合理的地方。至于,我为什么很少使用集合点,也源于此,因为通常情况我们主要是对单一业务进行压力测试,比如登录或者是注册,单一功能如同上面的那个访问web页面一样,脚本只有一个操作,此时对于LoadRunner来讲,其实有没有设置集合点效果不大,而且为了模拟能更加接近去实际情况,当然这也是要做实际分析的。这里我还要个举例子,比如,一个OA系统,要求并发用户数200,而我们的场景设置是这样的,200个并发用户平均每10s加载5个用户,大约运行半小时,此时执行的场景,我们可以结合实际情况进行分析:根据实际情况得出,通常登录OA系统的的用户大部分都在早上上班9:00~9:30,此时是一个时间段,而并非一个时间点,使用我们的模拟场景是完全符合实际需求的,所以得出结论是在30分钟的时间内,我们的OA系统可以允许200个用户同时进行登录操作。由此可以说明,任何需求的提出都必须从实际环境来考虑,我们在设置场景时也必须反映出实际情况,才能模拟出更接近真实的场景,得出来的结果才更有价值。
当然,性能测试的执行应该是有目的,通常是为了调优,也有的是为了评测
在以评测为目的的性能测试中,用户更关心的是业务上的并发,其实是真实业务场景的并发情况,这种情况下不需要设置集合点了。
集合点是一种特殊情况下的并发,通常是在以调优为目的的性能测试中才会用得到,主要是为了有针对性地进行施压,以便找到性能瓶颈。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
使用loadrunner进行压力测试遇到的问题总结LoadRunner检查点loadrunner11的移动端性能测试之脚本录制验证LoadRunner对Ajax内容的校验LoadRunner使用代理录制脚本LoadRunner运行乱码解决方法LoadRunner利用代理模式录制手机脚本loadrunner11中java vuser引用jar包使用LoadRunner监控Windows资源LoadRunner小技巧集锦LoadRunner提高篇:插入检查点与关联函数loadrunner怎么解决录制完成后脚本为空LoadRunner判断是否服务器连接池瓶颈LoadRunner中对Https证书的配置Loadrunner入门篇-Vuser发生器LoadRunner录制手机APP脚本
更新发布
功能测试和接口测试的区别
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 使用指南