数据驱动

Jmeter中数据驱动与Postman中的数据驱动原理一样,也是通过csv文件进行数据驱动

创建csv数据
testdata.csv

  1. token,title,tab,content
  2. ,helloworld,ask,你好呀!
  3. xxxxyyyyzzzz,helloworld,ask,你好呀!
  4. 9b6f12be-b73e-4a71-b137-3781d550bd86,,ask,你好呀!
  5. 9b6f12be-b73e-4a71-b137-3781d550bd86,helloworld,,你好呀!
  6. 9b6f12be-b73e-4a71-b137-3781d550bd86,helloworld,ask,
  7. 9b6f12be-b73e-4a71-b137-3781d550bd86,你好呀!,ask,你好呀!

创建请求

创建线程组,在【线程组】中创建【http请求】
image.png

添加csv数据文件配置

在【线程组】—【右键】—【添加】—【配置元件】—【csv数据文件设置】
image.png
在csv文件配置选择对应的文件,以及配置
image.png

在脚本中引用变量

image.png

设置线程数运行

在线程组设置线程数, 线程数根据数据文件中数据行数来确定。
image.png

在线程组中添加【察看结果树】 执行
image.png

响应断言

断言的原理类似于 编写测试用例中的预期结果;

创建请求

创建新的线程组,在线程组下创建Http请求

image.png
这个请求可以发送成功,
平时验证这个结果的时候,

  1. 状态码应为200
  2. 返回结果中 success对应值为 true, topic_id 字段有值

添加断言

在【发布话题请求上】—【右键】—【添加】—【断言】—【响应断言】
image.png

添加状态码为200 的断言
image.png

添加断言结果

在【线程组】—【右键】—【添加】—【监听器】—【断言结果】
image.png
当断言失败的时候,断言结果中会有对应的错误提示,如果断言没有错误,那就没有提示
下面是断言失败的时候的提示
image.png

下面是断言成功
image.png

json断言

在接口测试过程中,除了使用响应断言之外 还可以使用json断言来对数据进行验证;

线程组中 添加 http请求
image.png
Http请求的结果是

{"success":true,"topic_id":"60c05919e69560453709698f"}

在服务器返回的结果中, topic_id 的值每次都不一样

添加json断言

在请求上—【右键】—【添加】—【断言】—【JSON断言】
image.png
json断言
image.png

Assert JSON Path exits: $["topic_id"]
image.png

添加断言在测试过程中不是必须要加,如果不加断言,执行完成之后 有人工来验证,主要验证

  1. 状态码
  2. 服务器返回的结果

如果要自动化的方式来做,就必须要断言;


postman添加断言

在Postman中添加请求
image.png
在Tests面板中添加断言

  1. 对状态码添加断言

    pm.test("状态码为 200", function () {
     pm.response.to.have.status(200);
    });
    
  2. 对服务器返回的结果进行断言 ```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/


断言 接口发送异常数据 服务器会返回对应的错误提示;
image.png
添加 断言

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

image.png
点击【next】
image.pngimage.pngimage.pngimage.pngimage.pngimage.png

安装newman 命令行工具

在命令行中 执行

npm install -g newman

安装Newman命令
image.png
会从网上自动下载安装
image.png
安装生成html报告工具

npm install -g newman-reporter-html

image.png
安装成功之后有对应的提示

运行

newman run C:\Users\zengy\Desktop\断言练习.postman_collection.json -r cli,html

image.png