前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >postman使用教程8-设置断言(Tests脚本编写)

postman使用教程8-设置断言(Tests脚本编写)

作者头像
上海-悠悠
发布2021-05-17 16:39:21
1.3K0
发布2021-05-17 16:39:21
举报

前言

当一个接口发送请求有返回结果后,如何知道返回的结果符合预期?可以在 postman 里面的 Tests 写脚本断言符合结果符合预期。 Tests 是接口返回 response 之后的脚本操作,可以使用 JavaScript 为 Postman API 请求编写 Tests 脚本。

Tests编写

Tests 可以添加到单个请求,文件夹和集合中,这里以单个请求为例。

登陆接口返回

代码语言:javascript
复制
{
    "code": 0,
    "msg": "login success!",
    "username": "test",
    "token": "580406b0df935496f96313fc98ae7e18d39d62af"
}

校验返回的 body 是 json 格式

首先可以校验返回的body是json格式

代码语言:javascript
复制
pm.test("response must be valid and have a body", function () {
     pm.response.to.be.ok;
     pm.response.to.be.withBody;
     pm.response.to.be.json;
});

运行后可以看到接口返回TestResults位置显示PASS,说明此校验通过

校验body具体内容

上面是直接pm.response.to.be方式对response对象校验的,也可以用pm.expect(actual_result).to 方式对提取的返回结果校验

代码语言:javascript
复制
// 校验code为0
pm.test("response code must to be 0", function () {
    pm.expect(pm.response.json().code).to.equal(0);
});

//校验msg 为 login success!
pm.test("response msg must to be login success!", function () {
    pm.expect(pm.response.json().msg).to.equal("login success!");
});

//校验token 长度为40位
pm.test("response token length must to be 40", function () {
    pm.expect(pm.response.json().token).to.lengthOf(40);
});

校验状态码和返回头部

校验返回状态码是200

代码语言:javascript
复制
pm.test("Status test", function () {
    pm.response.to.have.status(200);
});

校验返回头部参数

校验 Content-Type 在返回头部

代码语言:javascript
复制
pm.test("Content-Type header is present", () => {
  pm.response.to.have.header("Content-Type");
});

校验返回的头部Content-Type 值为 application/json

代码语言:javascript
复制
pm.test("Content-Type header is application/json", () => {
  pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');
});

断言返回值与变量相等

如果我前面登陆的body参数引用了环境变量username

接口返回的json数据又有这个账号名称,想断言结果返回的值和变量username相等,于是可以先获取环境变量值

代码语言:javascript
复制
pm.environment.get("name");

于是脚本这样写

代码语言:javascript
复制
pm.test("Response property matches environment variable", function () {
  pm.expect(pm.response.json().username).to.eql(pm.environment.get("username"));
});
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Tests编写
  • 校验返回的 body 是 json 格式
  • 校验body具体内容
  • 校验状态码和返回头部
  • 校验返回头部参数
  • 断言返回值与变量相等
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档