csv数据文件
还是发布话题为例,现在Jmeter 使用csv文件数据驱动的方式来做。
参数化 概念 就是将数据存放到文件中,通过维护文件内容来实现测试。
整理的测试数据
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文件;
data.csv
2. 创建Jmeter请求
请求中的具体数据 需要从csv文件中读取过来。
3. 添加csv文件配置
对文件进行具体的设置
注意:文件路径要使用自己电脑上的文件。
配置完成之后,需要在请求中引用变量。
变量名来源于csv文件中的定义。
4. 设置线程组并运行
csv文件中主要有8行运行数据。
在线程组中进行对应的设置
将循环次数设置为 8次。 (有多少行数据 设置多少次)
添加查看结果树, 并执行。
使用到的对应的 jmeter 脚本
发布话题.jmx
登录接口
csv文件配置
在http请求中拿到数据
可以看到结果已经加密
csv中添加断言
不同的测试数据,结果也不一样。
csv文件中添加对应的错误提示信息。
对应的数据
login.csv
csv数据文件配置中 添加对应变量。
添加断言
不同的数据,服务器返回的结果也不一样,
每次服务器返回的json格式数据不一样。
{"resultCode":500,"message":"登录失败!","data":null}
针对message字段值进行断言。
json断言跟json路径表达式的原理一样
添加对应的json断言
执行
断言中内容和实际运行结果一致。
正则表达式提取器
添加正则表达式提取器
正则,json,JMESpath json, 这些都是为了进行上下游传参设置的表达式。
正则的语法比较多。
https://jmeter.apache.org/usermanual/regular_expressions.html
主要使用 (.+?)
来匹配要提取的变量值。
服务器返回的结果为
{"success":true,"topic_id":"61949b3c737a121482bc353b"}
提取topic_id 对应的值
"topic_id":"(.+?)"
添加正则表达式 提取器
运行可以看到 能够提取到
总结
主要在做接口上下游传参的时候,需要将上游的接口返回结果作为下游接口的入参。
可以使用 提取器
- json 提取器
- jmespath json 提取器
- 正则表达式提取器
在公司中,自己熟悉使用哪种提取器,那就使用哪种即可。没有说必须要一定使用哪种。