在运营活动测试过程当中,常常须要对秒杀活动或定时抽奖活动进行并发测试。那么怎样快速便捷的模拟多用户同时参与活动,抽取奖品,进行并发测试呢?尤为是,当奖品总数N<用户总数M时,代码是否会存在奖品多发给用户,致使奖品剩余总数出现负数的严重bug?html
下面介绍使用轻量级开源测试工具Jmeter进行并发测试的方法——巧用集合点。并发
以总产品数为3,模拟多用户(5个用户)同时进行抽奖并发测试为例,进行介绍。工具
思路:首先在运营后台配置产品总数为3,其次模拟多用户登录,最后经过设置集合点的方式,模拟多用户同时进行抽奖并发测试。性能
下面进行详细介绍。测试
1、模拟多用户登陆ui
一、准备M个用户登陆数据,将数据保存到data.txt文件中,以下所示:spa
二、将登录接口参数化线程
经过添加CSV Data Set Config,将登录接口参数化。以下图所示:orm
设置好上述步骤后,再在登录接口中引用手机号和密码变量:${mobileNo},${passWord},以下图所示:htm
2、在抽奖接口前设置集合点
性能测试中常常要进行多用户并发测试,但真正的并发是不存在的,为更真实的模拟并发,能够在并发测试的接口前设置集合点。在本次示例中,当全部的虚拟用户登录以后,都相互等待,而后一块儿访问抽奖接口。设置集合点的方法以下:
一、在刚刚建立的脚本中,右键点击 线程组---->定时器---->Synchronizing Timer,以下图所示:
二、将抽奖接口移至集合点下,并在集合点中设置多少个用户同时访问
本次示例中,设置为5个用户并发访问,以下图所示:
注意,若设置5个用户并发访问时,需在线程组中设定,用于模拟多用户同时测试的线程数为5个。若是线程数达不到集合点设置的数,JMeter会一直不动,一直在等待达到设定的集合数到来。
添加完成以后,线程组线程数设定,以下所示:
集合点用户数设定以下图:
以上步骤都设置完成后,执行结果,结果展现中,第一个用户抽奖时间为:2016-12-15 08:19:30,以下图:
第二个、第三个用户抽奖时间都为:2016-12-15 08:19:30,以下图所示:
至此,已达到多用户同时抽奖并发测试的目的。
使用非gui操做
jmeter -n -t admin.jmx -l test.jtl -e -o test_report
-e -o output,指的是在out文件下生成html报告
进入out文件夹,就能看到咱们生成的html报告了:
转自:https://www.jianshu.com/p/088616023ecd