目录
一、示例
查询接口压测时,系统中有很多组织,要求接口每次查询的组织不一样,需要把请求体的组织参数化,用到了CSV数据文件设置;
1、准备组织列表的TXT文件,如下:
2、添加 CSV数据文件设置 ,如下:
此处引用步骤1中的文件;
定义变量名称,分别对应TXT文件中的3行数据;(后面请求体会用到这个变量名称)
如果TXT中有标题,则忽略首行,没有标题,则不忽略首行;
3、接口请求体设置变量,如下:
先在界面上选中某一个组织,进行查询操作,F12先获取此次查询的请求体;
在请求体中,找到组织参数,如下所示,确定为"value1",把此处value1的参数值改为"${stockOrgId}" (stockOrgId为步骤2中定义的变量,脚本运行时就会循环从组织列表TXT中获取对应那一列的组织数据)
二、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 文件中读取不同的用户信息。