数据驱动
Jmeter中数据驱动与Postman中的数据驱动原理一样,也是通过csv文件进行数据驱动
创建csv数据
testdata.csv
token,title,tab,content
,helloworld,ask,你好呀!
xxxxyyyyzzzz,helloworld,ask,你好呀!
9b6f12be-b73e-4a71-b137-3781d550bd86,,ask,你好呀!
9b6f12be-b73e-4a71-b137-3781d550bd86,helloworld,,你好呀!
9b6f12be-b73e-4a71-b137-3781d550bd86,helloworld,ask,
9b6f12be-b73e-4a71-b137-3781d550bd86,你好呀!,ask,你好呀!
创建请求
添加csv数据文件配置
在【线程组】—【右键】—【添加】—【配置元件】—【csv数据文件设置】
在csv文件配置选择对应的文件,以及配置
在脚本中引用变量
设置线程数运行
在线程组设置线程数, 线程数根据数据文件中数据行数来确定。
在线程组中添加【察看结果树】 执行
响应断言
断言的原理类似于 编写测试用例中的预期结果;
创建请求
创建新的线程组,在线程组下创建Http请求
这个请求可以发送成功,
平时验证这个结果的时候,
- 状态码应为200
- 返回结果中 success对应值为 true, topic_id 字段有值
添加断言
在【发布话题请求上】—【右键】—【添加】—【断言】—【响应断言】
添加状态码为200 的断言
添加断言结果
在【线程组】—【右键】—【添加】—【监听器】—【断言结果】
当断言失败的时候,断言结果中会有对应的错误提示,如果断言没有错误,那就没有提示
下面是断言失败的时候的提示
下面是断言成功
json断言
在接口测试过程中,除了使用响应断言之外 还可以使用json断言来对数据进行验证;
线程组中 添加 http请求
Http请求的结果是
{"success":true,"topic_id":"60c05919e69560453709698f"}
在服务器返回的结果中, topic_id 的值每次都不一样
添加json断言
在请求上—【右键】—【添加】—【断言】—【JSON断言】
json断言
Assert JSON Path exits: $["topic_id"]
添加断言在测试过程中不是必须要加,如果不加断言,执行完成之后 有人工来验证,主要验证
- 状态码
- 服务器返回的结果
如果要自动化的方式来做,就必须要断言;
postman添加断言
在Postman中添加请求
在Tests面板中添加断言
对状态码添加断言
pm.test("状态码为 200", function () { pm.response.to.have.status(200); });
对服务器返回的结果进行断言 ```json pm.test(“状态码为 200”, function () { pm.response.to.have.status(200); });
// 对服务返回的文本结果进行断言 pm.test(“响应文本结果断言”, function () { pm.expect(pm.response.text()).to.include(‘“success”:true’); });
3. 使用json value的方式进行验证
```json
pm.test("状态码为 200", function () {
pm.response.to.have.status(200);
});
// 对服务返回的文本结果进行断言
pm.test("响应文本结果断言", function () {
pm.expect(pm.response.text()).to.include('"success":true');
});
pm.test("topic_id的值不为空", function () {
// pm.response.json() 表示整个服务器返回的结果 值赋给变量 jsonData
var jsonData = pm.response.json();
// to.not.eql(null) 不为空
pm.expect(jsonData["topic_id"]).to.not.eql(null);
});
关于断言
更多了解: https://www.chaijs.com/api/bdd/
断言 接口发送异常数据 服务器会返回对应的错误提示;
添加 断言
pm.test("检查点:状态码=400", function () {
pm.response.to.have.status(400);
});
pm.test("success对应值为false", function () {
var jsonData = pm.response.json();
pm.expect(jsonData["success"]).to.eql(false);
});
pm.test("error_msg对应的值为 必须选择一个版块",function(){
var jsonData = pm.response.json();
pm.expect(jsonData["error_msg"]).to.eql("必须选择一个版块")
})
newman 工具命令行执行
安装node.js
点击【next】
安装newman 命令行工具
在命令行中 执行
npm install -g newman
安装Newman命令
会从网上自动下载安装
安装生成html报告工具
npm install -g newman-reporter-html
安装成功之后有对应的提示
运行
newman run C:\Users\zengy\Desktop\断言练习.postman_collection.json -r cli,html