Jmter(九)保存响应数据到本地文件中(获取Set-Cookie--作为关联给下一个接口使用)
1.使用背景
场景一:在做压测的时候可能需要把响应数据的一些字段统计出来;
场景二:项目系统中有很多接口,会先校验用户登入状态。如:添加数据,会校验用户登入成功后才能添加。
2.操作说明
要明确需要取的是成功登录接口返回的Set-Cookie值,作为模拟其他接口的登录状态。
因为登录请求和其他请求存在跨线程组的问题(直接调用比较麻烦),我们就需要先把登录接口返回的Cookie值保存到本地,再供其他需要的线程组调用。
正则表达式 + 后置处理器 --》 获取set-Cookie + 将获取的结果导出到本地文件
3.操作步骤
第一步:在响应数据的Response headers中获取Set-Cookie的值
<1>找准需要的内容在哪儿
<2>用正则表达式提取器提取需要的内容
第二步:用Debug Sample(调试取样器)查看取值结果
第三步:使用BeaShell,保存提取的sessionid
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 ***/
第四步:查看保存结果的表格
第五步:给需要使用使用set-Cookie=Seesionid的线程组,添加CSV数据文件设置
第六步:添加HTTP Cookie管理器,用变量${上一步中设置的变量名称}取值
第七步:查看应用结果
因为测试了多次,CSV取值是从第一个开始的,所以取了第一个值
文中正则表达式的部分可以参考:Jmeter(四)正则表达式提取