JMeter模拟多用户并发登录,批量把token保存到本地

本文模拟多用户并发操作。通过设置多个线程组,实现登录一次,多次进行其他后续操作。      

        将多用户信息参数化,setUp线程组进行一次登录请求,请求成功后将多用户获取到的token信息储存在本地,再进行参数传递,完成后续操作后,通过tearDown线程组,销毁本地token文件,以便执行下次测试计划。

同线程组操作可参考上篇文章

JMeter模拟多用户同时登录,token传递接口关联_LSZZZ的博客-CSDN博客根据性能测试需求,需要模拟多用户同时登录1、新建一个txt文件,用于存放用户参数数据。先创建登录接口进行请求https://blog.csdn.net/LSZZZ/article/details/120864747

本篇为多线程组,下面为详细操作步骤

SetUp线程组

模拟5个用户,同时登录

JMeter模拟多用户并发登录,批量把token保存到本地_第1张图片

1、新建一个txt或csv文件,用于存放用户参数数据

存放置在jmx脚本同目录中(同目录下不用写绝对路径)

txt文件格式填写要求同csv文件,中间以英文逗号分隔
JMeter模拟多用户并发登录,批量把token保存到本地_第2张图片

2、创建Http请求,通过配置元件CSV数据文件设置,读取本地txt文件,进行参数化请求

token信息通过此接口获得

JMeter模拟多用户并发登录,批量把token保存到本地_第3张图片

JMeter模拟多用户并发登录,批量把token保存到本地_第4张图片

 3、Json提取器,响应结果中提取获得的token

{
    "msg": "",
    "code": 2,
    "data": {
        "token": "d3a58b69d288252f413cf60d9d8ea3dbb95b32ac"
    }
}

将提取到的token 命名为 app_token

JMeter模拟多用户并发登录,批量把token保存到本地_第5张图片

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

保存的文件名为 tokens.txt 

JMeter模拟多用户并发登录,批量把token保存到本地_第6张图片

//追加文件加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次

JMeter模拟多用户并发登录,批量把token保存到本地_第7张图片

 1、配置元件CSV数据文件设置,获取本地token

获取setUp线程组中存储在本地文件tokens.txt中的数据

JMeter模拟多用户并发登录,批量把token保存到本地_第8张图片

 2、把token添加到请求头中

 ${app_token}

JMeter模拟多用户并发登录,批量把token保存到本地_第9张图片

 可以根据业务要求,设置循环次数,准备时长,断言等

tearDown线程组

tearDown线程组,进行销毁操作,把保存在本地的tokens.txt文件删除

如果不自动清理掉上一次产生的数据,下次再执行测试时,登录接口会产生新的token,旧的token将会失效

所以有必要在这里进行销毁操作,每次执行完后,将旧的token数据进行销毁,以免出现问题

JMeter模拟多用户并发登录,批量把token保存到本地_第10张图片

String filename = "path\\tokens.txt";
File file = new File(filename);
if(file.exists()){
	file.delete();
	System.out.println("已删除tokens.txt文件"+filename);
};

你可能感兴趣的:(jmeter,java,压力测试)