csv数据文件

还是发布话题为例,现在Jmeter 使用csv文件数据驱动的方式来做。
参数化 概念 就是将数据存放到文件中,通过维护文件内容来实现测试。

image.png
整理的测试数据

token title tab content
12344567890 ask xxxxxxxxxxx
1231312 12344567890 ask xxxxxxxxxxx
f185cfa7-9819-4e58-884e-5129feb86a6d 12344567890 ask xxxxxxxxxxx
540383c0-9578-42c0-8aca-9942d29a8981 ask xxxxxxxxxxx
540383c0-9578-42c0-8aca-9942d29a8981 123445 ask xxxxxxxxxxx
540383c0-9578-42c0-8aca-9942d29a8981 12344567890
xxxxxxxxxxx
540383c0-9578-42c0-8aca-9942d29a8981 12344567890 ska xxxxxxxxxxx
540383c0-9578-42c0-8aca-9942d29a8981 12344567890 share

postman中上传测试数据文件。

1. 创建csv文件

使用Excel 保存为 utf8 格式的csv文件;
image.png
data.csv

2. 创建Jmeter请求

image.png
请求中的具体数据 需要从csv文件中读取过来。

3. 添加csv文件配置

image.png

对文件进行具体的设置
image.png
注意:文件路径要使用自己电脑上的文件。
配置完成之后,需要在请求中引用变量。

变量名来源于csv文件中的定义。
image.png

4. 设置线程组并运行

csv文件中主要有8行运行数据。
在线程组中进行对应的设置
将循环次数设置为 8次。 (有多少行数据 设置多少次)
image.png
添加查看结果树, 并执行。
image.png


使用到的对应的 jmeter 脚本
发布话题.jmx


登录接口
image.png

csv文件配置
image.png

在http请求中拿到数据
image.png

可以看到结果已经加密
image.png


csv中添加断言

不同的测试数据,结果也不一样。
csv文件中添加对应的错误提示信息。
对应的数据
image.png

login.csv
csv数据文件配置中 添加对应变量。
image.png

添加断言

不同的数据,服务器返回的结果也不一样,
每次服务器返回的json格式数据不一样。

  1. {"resultCode":500,"message":"登录失败!","data":null}

针对message字段值进行断言。

image.png

json断言跟json路径表达式的原理一样
image.png

添加对应的json断言
image.png

执行
断言中内容和实际运行结果一致。
image.png

login.csv
发布话题.jmx


正则表达式提取器

添加正则表达式提取器
image.png

正则,json,JMESpath json, 这些都是为了进行上下游传参设置的表达式。

正则的语法比较多。
https://jmeter.apache.org/usermanual/regular_expressions.html

主要使用 (.+?) 来匹配要提取的变量值。

image.png
服务器返回的结果为

  1. {"success":true,"topic_id":"61949b3c737a121482bc353b"}

提取topic_id 对应的值

  1. "topic_id":"(.+?)"

添加正则表达式 提取器
image.png

运行可以看到 能够提取到
image.png

总结

主要在做接口上下游传参的时候,需要将上游的接口返回结果作为下游接口的入参。
可以使用 提取器

  1. json 提取器
  2. jmespath json 提取器
  3. 正则表达式提取器

在公司中,自己熟悉使用哪种提取器,那就使用哪种即可。没有说必须要一定使用哪种。