1 引言
用Jmeter做性能测试看似简单,实则不易。因为有很多细节,只有你亲自做过,必须上手练过你才知道怎么做,否则只是纸上谈兵,没有实际经验,很容易被人问住。
上一节,我们讲了最简单的用Jmeter做性能测试的步骤和方法。https://blog.youkuaiyun.com/wangjingbin/article/details/150269241?spm=1001.2014.3001.5501
这一节,我们讲几个具体的例子,看看实际工作中的场景设置是什么样的?
2 例子1:50~100用户,并发5,运行1小时
| 场景 | 业务 | 并发用户和运行策略 | 测试目的 |
| 场景1 | 综合业务(查询+下单) | 50~100个用户,并发数为5的情况,持续运行一个小时 | 持续运行,观察事务通过率和响应时间等指标 |
2.1 首先,请你自己思考一下,针对上面场景,Thread Group里面的thread数和并发5怎么设置?
...
这个并发5,让很多人摸不着头脑,在设置并发时容易和前面的总用户数搞混了。
其实,Thread数应该是设100,因为100用户没问题,50肯定也没问题。

2.2 下面看这个并发5怎么设置?
首先,我们先说一个具体的业务,还不是综合业务。
这里的并发5其实要加入一个同步定时器(Synchronizing Timer)

那么,接着一个问题是:加上这个同步计时器和不加它,哪个的吞吐量更高呢?
2.3 实验看结果
下面,我们用最简单的Java Request来模拟上面的场景,看看哪种情况吞吐更高?
2.3.1 加上Synchronizing Timer
如上图:
并发设置100;Rameup 2秒;Number of Simulated Users设置为5,不设置timeout。
为了简单,只测试30秒;同时为了清楚的看到并发5个的效果,添加View Results in Table,最后结果如下:
Thoughput: 417/sec

在下图你会看到并发5的效果:每5个用户同时并发请求。

2.3.2 Disable Synchronizing Timer
其他都是同样的配置,把同步计时器Disable掉,结果如下:
Throughput:420/sec

没有并发5的设置,请求会更多一些。

所以,结果很明显,加上并发5个的同步计时器,吞吐会低一点。这个也很好理解,比如一群学生进教室门,不加计时器,是学生来了就进去,不用等;加了计时器是必须凑够了5个学生再进去,肯定后者相对慢一点。
3 进阶:如果是综合业务,同步计时器怎么设置?
上面的例子只是一个请求,如果我们的综合业务有多个请求(业务),我们的同步计时器应该加到哪里?向下面这样加两个计时器,对吗?

其实上图这样做是不合理的,我们需要添加一个新的概念叫:事务控制器(Transaction Controller)
然后我们把上面的Search request和Order request都放到这个事务控制器下面,然后同步计时器也放到它下面:

运行结果如下:
我们看到除了TOTAL,有三条结果,那以哪一个为准呢?

既然我们是一个综合业务,应该以transaction controller的结果为准,上面两条单独业务就可以隐藏掉:勾上下面这个Generate parent sample。

最后的显示结果如下:

——————————————The End ——————————————————
欢迎关注大滨,坐标北京、天津:
18+软件开发测试经验;前8年银行系统(中行、民生、农行)功能、性能和自动化测试,尤其是性能测试;后10年存储行业(CA, Dell-EMC)自动化和性能测试。
也欢迎大家点赞关注我的微信公众号:大滨读书健身(全网同名)
会分享读书、健身、投资和个人成长等心得体会,人生除了代码还有生活,与君同行!

10万+

被折叠的 条评论
为什么被折叠?



