在jmeter负载测试中,往往会有只需要登录一次后,再对其他接口做并发的场景,这时想到的元件可能是【仅一次控制器】,将登录请求放在里面来执行。对于一个sampler来说,如果是多线程数,该元件将不起作用,它只是在单个线程数里循环多次时才有效。要实现仅登录一次后其他接口可多线程并发,可以这样做:
1.将登录单独放置在一个sampler里面,提取token并将其作为全局变量;
登录的sampler中添加Beanshell取样器,将登录后的token取出来。${__setProperty(newtoken,${token})}
2.创建另外一个线程组“查看居民”,在信息头管理器中添加之前创建的全局变量,${__property(newtoken)}。
3.执行后达到目的
另外,在一个线程组里想实现这个场景,也可使用【吞吐量控制器】,按设置的总线程数,来分别执行需要不同并发数的请求。
线程数为10,A业务占7个线程数,B业务占3个线程数,就可以创建两个【吞吐量控制器】按百分比或数字设置好后,将对应业务接口添加到下面。