断言是什么?

在测试用例中, 有预期结果,实际结果,在执行测试用例的时候,发现实际执行的结果 跟 预期的结果一致,那么这个用例就算 通过,如果执行结果跟预期结果不一致,那么测试用例执行失败。

断言 就是指运行接口的时候 通过定义一个预期结果,Postman在执行的时候通过执行 拿到服务器返回的结果 与 预期结果进行对比,如果一致,Postman 会自动给我们出一个测试报告,告诉我们执行通过,如果不一致,也会为我们出一个测试报告,告诉我们执行失败。

我们只需 运行完成之后 查看测试报告即可。

添加断言

以 新建主题 接口为例。
当输入全部都是合法的数据时,服务器返回的结果中,可以肯定的是 success 字段对应的值为 true。

image.png

返回结果的json值断言

打开 【Tests】面板
image.png
添加对应的断言代码。针对服务器返回的结果进行断言。

  1. // 添加断言
  2. // pm.test 表示postman的测试 Your test name 你的测试用例名称 可以更改
  3. pm.test("预期结果success值为true", function () {
  4. // 获取服务器返回的结果
  5. var jsonData = pm.response.json();
  6. // 添加断言 expect 期望 to.eql 相等
  7. pm.expect(jsonData.success).to.eql(true);
  8. });

image.png
编写完成之后,运行。 可以看到执行的结果。

状态码断言

上面接口中创建话题成功,服务器返回的状态码为200。 对服务器返回的状态码进行断言。
选择 【status code is 200】
image.png

  1. // 添加断言
  2. // pm.test 表示postman的测试 Your test name 你的测试用例名称 可以更改
  3. pm.test("预期结果success值为true", function () {
  4. // 获取服务器返回的结果
  5. var jsonData = pm.response.json();
  6. // 添加断言 expect 期望 to.eql 相等
  7. pm.expect(jsonData.success).to.eql(true);
  8. });
  9. pm.test("状态码为200", function () {
  10. // 针对状态码进行断言
  11. pm.response.to.have.status(200);
  12. });
  13. var jsondata = pm.response.json();
  14. pm.globals.set('tid',jsondata.topic_id);

添加断言和 设置变量可以一起用。 设置变量一般放在 添加断言之后。

文本断言

contains string 包含文本,对服务器返回结果的文本值进行断言。
image.png

先将返回结果切换为 【Text】文本视图模式
image.png

做外层使用 单引号 引起来
image.png

  1. // 添加断言
  2. // pm.test 表示postman的测试 Your test name 你的测试用例名称 可以更改
  3. pm.test("预期结果success值为true", function () {
  4. // 获取服务器返回的结果
  5. var jsonData = pm.response.json();
  6. // 添加断言 expect 期望 to.eql 相等
  7. pm.expect(jsonData.success).to.eql(true);
  8. });
  9. pm.test("状态码为200", function () {
  10. // 针对状态码进行断言
  11. pm.response.to.have.status(200);
  12. });
  13. pm.test("返回结果中包含内容", function () {
  14. // 期望服务器返回的结果中包含
  15. pm.expect(pm.response.text()).to.include('"success":true,"topic_id"');
  16. });
  17. var jsondata = pm.response.json();
  18. pm.globals.set('tid',jsondata.topic_id);

批量断言

在做上下游传参的接口中,每个接口的返回结果中 success 的值都为true,非常确定。
添加断言的时候可以直接添加在 collection上面。
打开 集合 — 【Tests】
image.png
编写断言

  1. pm.test("success的值为true", function () {
  2. var jsonData = pm.response.json();
  3. pm.expect(jsonData.success).to.eql(true);
  4. });

image.png
保存脚本。
image.png

运行集合 collections

image.png
到达执行集合界面。
image.png
执行的时候,会自动为每个接口添加断言。
image.png

  • passed(7) 表示 通过7个断言。

添加断言 优势

给每个接口添加断言,断言成功之后,执行的时候,可以自动出结果。相对于测试人员来说,做回归测试的时候,只需要运行 查看报告即可。


思维导图

Postman 接口测试2.png

作业

  1. 有串联关系的接口是怎么做的?
    2. 创建话题接口测试。考虑正常场景和异常场景。 csv 数据驱动。
    创建对应的数据文件
    image.png
    将文件保存为 csv 个数。编码使用utf-8
    image.png
    如果使用wps 工具, 没有utf-8 这个选项,先保存csv文件,后使用记事本工具修改编码。

记事本修改编码
image.png
文件—【另存为】
image.png
编码选择—【utf-8】
image.png

在postman 中上传 csv文件
image.png
可以看到 中文显示正常。

  1. 商城接口中上下游传参 添加断言。
    image.png
    电商上下游传参作业.postman_collection.json
    变量文件
    My Workspace.postman_globals.json