Bootstrap

jmeter--CSV数据文件设置--请求体设置变量

目录

一、示例

1、准备组织列表的TXT文件,如下:

2、添加 CSV数据文件设置 ,如下:

3、接口请求体设置变量,如下:

二、CSV数据文件设置

1、CSV Data Set Config 配置选项说明

2、示例 CSV 文件内容

3、配置 CSV Data Set Config

4、使用 CSV 数据


一、示例

查询接口压测时,系统中有很多组织,要求接口每次查询的组织不一样,需要把请求体的组织参数化,用到了CSV数据文件设置;

1、准备组织列表的TXT文件,如下:

114eca7067dc4122bcbb8ee9085907a3.png

2、添加 CSV数据文件设置 ,如下:

此处引用步骤1中的文件;

定义变量名称,分别对应TXT文件中的3行数据;(后面请求体会用到这个变量名称)

如果TXT中有标题,则忽略首行,没有标题,则不忽略首行;

e35990bf7867460ebd6e0c964ca2795e.png

3、接口请求体设置变量,如下:

先在界面上选中某一个组织,进行查询操作,F12先获取此次查询的请求体;

在请求体中,找到组织参数,如下所示,确定为"value1",把此处value1的参数值改为"${stockOrgId}" (stockOrgId为步骤2中定义的变量,脚本运行时就会循环从组织列表TXT中获取对应那一列的组织数据)

2ab4077118dd4d9da12a705225305296.png

二、CSV数据文件设置

在 JMeter 中,使用 CSV Data Set Config 元件可以让你从外部的 CSV 文件读取数据,并在多个请求中动态地使用这些数据。这对于进行负载测试时模拟多个用户的不同输入是非常有用的。

1、CSV Data Set Config 配置选项说明

在 CSV Data Set Config 中,你可以设置以下几个关键参数:

  • 文件名 (Filename):指定 CSV 文件的路径。可以是相对路径(相对于 JMeter 的 bin 目录)或者绝对路径。例如:/path/to/your/data.csv

    如果你希望文件路径在不同操作系统中都能兼容,使用双斜杠(\\)或正斜杠(/)分隔路径。

    注意:如果 CSV 文件位于 JMeter 的 bin 目录下,可以直接使用文件名,例如 data.csv

  • 文件编码 (File encoding):用于设置 CSV 文件的字符编码。如果 CSV 文件是 UTF-8 编码,可以选择 UTF-8,否则根据文件的编码格式进行选择。默认值通常为 UTF-8。

  • 变量名 (Variable Names):指定 CSV 文件中每一列对应的变量名,多个变量名用逗号分隔。例如,如果 CSV 文件有三列:username, password, email,可以在这里输入:username, password, email。这些变量名将在后续的请求中使用。

  • 跳过第一行 (Skip First Line):如果 CSV 文件的第一行是表头(即列名),勾选此项。这样,JMeter 会跳过第一行并从第二行开始读取数据。

  • 共享数据 (Recycle on EOF?):如果勾选此项,当文件中的数据被读取完后,JMeter 会重新从头开始读取数据。如果不勾选,则会在文件数据读取完之后停止。

  • 按行分隔数据 (Stop thread on EOF?):如果勾选此项,当前线程会在 CSV 文件中的数据被读取完后停止。如果不勾选,线程会继续执行,即使 CSV 文件中的数据已读完。

2、示例 CSV 文件内容

假设你有一个 CSV 文件 user_data.csv,内容如下:

username,password,email
user1,pass1,[email protected]
user2,pass2,[email protected]
user3,pass3,[email protected]

3、配置 CSV Data Set Config

对于上面的 CSV 文件,你需要进行以下配置:

  • 文件名 (Filename):输入 user_data.csv(确保文件路径正确)。
  • 变量名 (Variable Names):输入 username, password, email
  • 跳过第一行 (Skip First Line):勾选此项,因为文件的第一行是列头。

4、使用 CSV 数据

在 JMeter 中使用从 CSV 文件读取的数据时,可以通过 ${variableName} 语法来引用变量。例如:

  • 在 HTTP 请求的参数中使用 CSV 数据:
    • username${username}
    • password${password}
    • email${email}

这样,JMeter 会在每次请求中动态地从 CSV 文件中读取不同的用户信息。

;