本文模拟多用户并发操作。通过设置多个线程组,实现登录一次,多次进行其他后续操作。
将多用户信息参数化,setUp线程组进行一次登录请求,请求成功后将多用户获取到的token信息储存在本地,再进行参数传递,完成后续操作后,通过tearDown线程组,销毁本地token文件,以便执行下次测试计划。
同线程组操作可参考上篇文章
本篇为多线程组,下面为详细操作步骤
SetUp线程组
模拟5个用户,同时登录

1、新建一个txt或csv文件,用于存放用户参数数据
存放置在jmx脚本同目录中(同目录下不用写绝对路径)
txt文件格式填写要求同csv文件,中间以英文逗号分隔
2、创建Http请求,通过配置元件CSV数据文件设置,读取本地txt文件,进行参数化请求
token信息通过此接口获得


3、Json提取器,响应结果中提取获得的token
{
"msg": "",
"code": 2,
"data": {
"token": "d3a58b69d288252f413cf60d9d8ea3dbb95b32ac"
}
}
将提取到的token 命名为 app_token

4、JSR223后置处理程序,利用Java代码,把token保存在本地文件
保存的文件名为 tokens.txt

//追加文件加true,覆盖文件不加
FileOutputStream fps = new FileOutputStream("Jmeter_shell/tokens.txt",true);
OutputStreamWriter osw = new OutputStreamWriter(fps);
BufferedWriter bw =new BufferedWriter(osw);
//Json或正则提取器获返回的token参数
bw.append("${app_token}\n");
if(bw!=null){bw.close();}
if(osw!=null){bw.close();}
if(fps!=null){bw.close();}
并发业务线程组
模拟5个用户,并发循环执行业务操作3次

1、配置元件CSV数据文件设置,获取本地token
获取setUp线程组中存储在本地文件tokens.txt中的数据

2、把token添加到请求头中
${app_token}

可以根据业务要求,设置循环次数,准备时长,断言等
tearDown线程组
tearDown线程组,进行销毁操作,把保存在本地的tokens.txt文件删除
如果不自动清理掉上一次产生的数据,下次再执行测试时,登录接口会产生新的token,旧的token将会失效
所以有必要在这里进行销毁操作,每次执行完后,将旧的token数据进行销毁,以免出现问题

String filename = "path\\tokens.txt";
File file = new File(filename);
if(file.exists()){
file.delete();
System.out.println("已删除tokens.txt文件"+filename);
};
本文介绍如何使用JMeter模拟多用户并发登录,通过SetUp和tearDown线程组管理token。setUp线程组负责一次登录并保存token到本地,业务线程组使用这些token进行并发操作,最后tearDown线程组删除token文件。
https://blog.youkuaiyun.com/LSZZZ/article/details/120864747
8764





