jmeter参数化- 提取一个或多个响应值保存到csv文件中,并通过csv数据文件设置进行调用

在使用jmeter做接口测试或者性能测试的时候,经常需要用过接口A的值来请求接口B的值,有时还需要将响应结果的值保存到文件中(如性能测试中,我们需要获取登录态,后续进行引用)。本文主要针对以上场景使用提取器将响应结果的值写入到文件中,后续需要调用,使用csv数据文件设置进行读取调用。

在使用jmeter做接口测试或者性能测试的时候,经常需要用过接口A的值来请求接口B的值,有时还需要将响应结果的值保存到文件中(如性能测试中,我们需要获取登录态,后续进行引用)。本文主要针对以上场景使用提取器将响应结果的值写入到文件中,后续需要调用,使用csv数据文件设置进行读取调用。

1.首先准备取样器(请求),获取响应结果。​

2.我们用提取器将响应结果中需要的字段提取出来,此处我们用的 json提取器.(如下,我们要提取响应结果中value中的sessionstr,userid,firmid)​

3.添加三个提取器,分别对应要提取的三个字段(此处我们就展示一个示例)​

4.提取器添加好了之后,我们可以执行一下,用 调试取样器 看看是否成功取到了值(如图,证明提取成功了)​

5.接下来我们把获取到的变量值写进csv文件中,我们先添加一个beanshell后置处理程序(在后置处理器里找)​

6.添加好了后,我们在script框中编写下边的代码(大家根据实际情况进行更改)

7.编写完成后,就完成提取的步骤了。我们来执行一下脚本,看看结果(执行完成后,该目录下自动生成了文件并写入了数据)​

8.进行调用,此处使用csv数据文件设置(配置元件中进行添加)来进行读取csv文件。添加完成过后,修改下配置后使用。

9.csv数据文件设置  设置完以后接下来我们在对应的请求中进行调用,使用${刚刚设置的变量名}。我们这里在请求头中进行调用这3个变量。(请求体也是一样的,${变量名})​

10.我们来循环执行下这个调用的接口。​

扫描二维码关注公众号,回复: 17368460 查看本文章

1.首先准备取样器(请求),获取响应结果。
2.我们用提取器将响应结果中需要的字段提取出来,此处我们用的 json提取器.(如下,我们要提取响应结果中value中的sessionstr,userid,firmid)
3.添加三个提取器,分别对应要提取的三个字段(此处我们就展示一个示例)
4.提取器添加好了之后,我们可以执行一下,用 调试取样器 看看是否成功取到了值(如图,证明提取成功了)
5.接下来我们把获取到的变量值写进csv文件中,我们先添加一个beanshell后置处理程序(在后置处理器里找)
6.添加好了后,我们在script框中编写下边的代码(大家根据实际情况进行更改)
import org.json.JSONObject;
 
//写入文件
//本地存储文件路径
FileWriter fs=new FileWriter("D:/apache-jmeter-5.1.1/bin/token.csv",true); 
BufferedWriter out=new BufferedWriter(fs);
 
//提取出来的token,并通过,换列
out.write("${sessionStr}");
out.write(",");
out.write("${userId}");
out.write(",");
out.write("${firmId}");
out.newLine();  // 添加换行符

out.close();
fs.close();

(大家根据自己实际需要保存的数据进行更改哈)

7.编写完成后,就完成提取的步骤了。我们来执行一下脚本,看看结果(执行完成后,该目录下自动生成了文件并写入了数据)
8.进行调用,此处使用csv数据文件设置(配置元件中进行添加)来进行读取csv文件。添加完成过后,修改下配置后使用。
字段名 解释
Filename 文件名(点击浏览也可进行选择)
File encoding 文件编码格式
Variable Names 变量名称(如果多个需要用,号进行分割)
Ignore first line 是否忽略首行(设置为True就不会读取第一行的数据)
Delimiter 分隔符(默认为,)
Allow quoted data? 是否允许带引号
Recycle on EOF? 遇到文件结束符EOF 后再次循环
Stop thread on EOF? 遇到文件结束符EOF 后停止运行线程?
Sharing mode 线程共享模式

9.csv数据文件设置  设置完以后接下来我们在对应的请求中进行调用,使用${刚刚设置的变量名}。我们这里在请求头中进行调用这3个变量。(请求体也是一样的,${变量名})
10.我们来循环执行下这个调用的接口。

(可以看到,请求头中的值和我们csv数据文件中一致,说明我们调用成功了。)

感谢大家的耐心观看!如对您有帮助,就是我最大的动力

猜你喜欢

转载自blog.csdn.net/weixin_72982596/article/details/132800065