CSV数据文件变量是指从外部csv文件读取数据出来作为变量。
设置步骤: 选择请求——添加——配置元件——CSV数据文件设置
创建csv文件(最好不用用记事本创建,推荐用Nodepad++)文件编码为UTF-8
文件内容如下:
user_data.csv
51zxw,8888
CSV数据文件设置如下:
在Post请求中引用变量数据如下:
运行之后在查看结果树中请求
选项栏可以看到获取的变量数据。
POST http://httpbin.org/post
POST data:
user=51zxw&password=8888
[no cookies]
Request Headers:
Connection: keep-alive
Content-Type : application/json
Content-Type: application/x-www-form-urlencoded
Content-Length: 24
Host: httpbin.org
User-Agent: Apache-HttpClient/4.5.5 (Java/1.8.0_05)
针对之前的POST接口进行如下参数遍历测试:
接口如下:
http://httpbin.org/post
发送参数:user_data.csv
51zxw,8888
51zxw1,6666
51zxw2,4444
51zxw3,5555
在之前的csv数据文件设置需要修改配置如下:表示把所有数据读取一遍,且不重复。
接口请求名称格式更改为:http-post-${user}
方便我们后续查看数据遍历情况。
最后修改线程组的线程数量,因为数据中有4组数据,所以设置为4.
运行查看结果如下:
接口测试过程中经常需要接口之间关联调用,比如获取上一个接口的返回值,作为另一个接口的请求参数,那么该如何从处理呢?
这里需要使用Jmeter的正则表达式提取器,通过对响应的数据来提取指定的数据。
从请求http-get
响应数据中匹配随机数num
的值,然后创建请求get-num
来引用num
的作为请求参数。
选中请求——添加——后置处理器——正则表达式提取器
根据http-get的响应,提取返回值中的num
配置如下:
result_num
,则可用${result_num}
引用它。案例中正则表达式说明
()
括起来的部分就是要提取的。.
匹配任何字符串。+
一次或多次。?
在找到第一个匹配项后停止。相关资料:正则表达式教程
新建一个请求get-num
,在新的请求中将http-get
返回的数据作为参数传递,如下图所示: