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.我们来循环执行下这个调用的接口。​


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数据文件中一致,说明我们调用成功了。)

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

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您好!对于JMeter参数化操作,可以使用CSV文件来提供数据。下面是使用CSV文件进行参数化的步骤: 1. 准备CSV文件:首先,您需要准备一个包含参数值的CSV文件。该文件可以使用任何文本编辑器创建,并按照逗号分隔的格式来定义参数。例如,可以创建一个名为data.csv文件,其包含如下内容: ``` param1,param2,param3 value1_1,value1_2,value1_3 value2_1,value2_2,value2_3 value3_1,value3_2,value3_3 ``` 2. 添加CSV数据文件设置:在JMeter,打开测试计划并右键单击线程组,选择"Add" -> "Config Element" -> "CSV Data Set Config"。在CSV Data Set Config元件的"Filename"字段,输入CSV文件的路径。例如,如果data.csv文件位于与JMX测试计划相同的目录,您可以输入`${__P(csvFilePath,data.csv)}`作为路径。 3. 配置CSV Data Set Config:在CSV Data Set Config元件,您可以设置一些选项来控制参数化的行为。例如,您可以指定逗号作为分隔符、是否循环读取文件等。 4. 使用参数化值:在需要使用参数化值的地方,您可以使用`${param1}`、`${param2}`等变量来引用CSV文件的对应值。例如,在HTTP请求的路径字段,可以输入`/api/${param1}`来使用CSV文件的第一列值作为路径的一部分。 通过以上步骤,您就可以使用CSV文件参数化JMeter测试计划的请求了。请注意,CSV文件的行数决定了参数化的次数,每次迭代使用一行数据。 希望能对您有所帮助!如果您有任何其他问题,请随时提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值