今天的接口场景是:有N个用户需要每隔5秒去查询一次数据,也就是说N个用户会去循环执行同一个接口。一开始的时候将用户参数化时使用了counter,
要执行2个线程3次循环,发现每次循环时,接口中用户参数的数据就会不一样,变成了test1、test2、test3、test4、test5、test6,
如果使用csv也是这个效果,但是实际想要的是test1执行3次,test2执行3次。
想到的第一个办法是,使用前置处理器User Parameters,定义参数user,值为test1和test2
在请求中引用这个用户参数
再次执行2个线程3次循环,结果同预期第一个线程每次循环都是使用的test1
但是如果需要的用户量特别大,那这种方法就不可行了。
想到了可以利用线程号作为参数,一个线程号就是一个用户。在函数助手中找到
因为我们需要的用户名是以test开头,故和线程号组合,
log.info("test"+"${__threadNum}");
再将这个名称放入到变量中vars.put("user","test"+"${__threadNum}");
此时执行2个线程3次循环打印
这样,如果需要使用100个用户,只需要加一个beanshell的前置处理器vars.put("user","test"+"${__threadNum}");