公司有个业务,需要120个用户,每个用户新增21个产品,直接通过接口操作。首先想到的就是jmeter工具,但在业务实现过程中遇到了个问题,就是当使用多个用户登录的时候,上一个用户还没做完新增产品的操作,下一个用户就直接登录了,直接把上个用户的token给替换掉,导致业务失败。话不多说直接上脚本:
1.登录和新增产品业务通过csv配置文件,进行数据配置
2.登录成功后通过json提取器,关联cookie
3.在新增产品业务上加了个循环控制器,实现多次新增产品的操作
登录线程数为2,新增产品循环为3,查看运行结果:
运行结果:新增产品循环还没完成的时候,下一个用户已经登录,这就会导致上一个用户新增产品失败的情况。
先来理解下线程组的,线程数&Ramp-up时间:
-
线程数:表示在一次测试中启动多少个线程
-
ramp up period: 表示在多少时间内发光这些交易
公式:每秒的交易=线程数/ramp uptime
即 每秒5交易 = 100线程 / 20 秒发完
解决方案,只要把Ramp-up时间所有请求循环次数调整合适的ramp-up时间。如:2个线程数,间隔10秒发送请求,每个线程循环3次新增产品。
运行结果:
这就是我们想要的效果,完美!!!!!