Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

1.使用背景

场景一:在做压测的时候可能需要把响应数据的一些字段统计出来;

场景二:项目系统中有很多接口,会先校验用户登入状态。如:添加数据,会校验用户登入成功后才能添加。 

 

 2.操作说明

要明确需要取的是成功登录接口返回的Set-Cookie值,作为模拟其他接口的登录状态。

因为登录请求和其他请求存在跨线程组的问题(直接调用比较麻烦),我们就需要先把登录接口返回的Cookie值保存到本地,再供其他需要的线程组调用。

正则表达式 + 后置处理器    --》 获取set-Cookie + 将获取的结果导出到本地文件

 

3.操作步骤

第一步:在响应数据的Response headers中获取Set-Cookie的值

<1>找准需要的内容在哪儿

Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

<2>用正则表达式提取器提取需要的内容

 Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

 

 第二步:用Debug Sample(调试取样器)查看取值结果

Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

 

 第三步:使用BeaShell,保存提取的sessionid

Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

 1 FileWriter fstream = new FileWriter("D://APPS/apache-jmeter-5.3/result/token.csv", true);
 2 
 3 BufferedWriter out = new BufferedWriter(fstream);
 4 
 5 out.write( vars.get("SESSIONID"));
 6 
 7 out.write(System.getProperty("line.separator"));
 8 
 9 out.close();
10 
11 fstream.close(); 
12 
13 /*
14 ***
15 FileWriter 创建了一个对象, 并指定文件存储路径为:E://token.csv;
16 jmeter中的变量可通过 vars.get(“变量名”)获取变量值;
17 System.getProperty(“line.separator”) 会在token写入后,换行,根据实际调整;
18 注意:上述代码会默认在尾部追加的形式写入文件;若不需要,可以直接删除文件直接生成,也可以更改代码中文件对象的写入方式
19 ***/

 

第四步:查看保存结果的表格

Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

 

 第五步:给需要使用使用set-Cookie=Seesionid的线程组,添加CSV数据文件设置

Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

 

 第六步:添加HTTP Cookie管理器,用变量${上一步中设置的变量名称}取值

Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

 

 第七步:查看应用结果

因为测试了多次,CSV取值是从第一个开始的,所以取了第一个值

Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

 

 文中正则表达式的部分可以参考:Jmeter(四)正则表达式提取

Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)

上一篇:Redis—入门篇


下一篇:Nginx目录结构,配置详解