详解Postman校验响应数据之设置断言编写Test脚本

详解Postman校验响应数据之设置断言编写Test脚本

前言

通常在我们做接口测试的时候,我们是不是需要去看接口的响应数据是否与我们期望的值相匹配。Postman 就提供了这个功能,我们可以使用 JavaScript 为 Postman API 请求编写 Tests 脚本。

那么我们以登录的接口为例
在这里插入图片描述
接口响应的数据为:

{
   
    "code": 200,
    "data": {
   
        "firstLogin": true,
        "token": "b2d08847c393f7f15b654f54bebdc0d2ce72b3d3",
        "userBizInfoEntity": {
   
            "accountType": 0,
            "adSource": "",
            "bizType": 1,
            "deleteFlag": false,
            "gmtCreated": 1612357476000,
            "gmtModified": 1621236421000,
            "marketChannel": "weixin",
            "mobile": "188****7063",
            "nickname": "七月",
            "openid": "",
            "subBizType": 101,
            "unionid": "",
            "userIcon": "https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLvS7ic5AxAmyFVpz2Mku861brOVUEV1pibhIK38MzY0CHIWAEWf1wNkia67qcQfkCkDrXUoYoVlkIVQ/132",
            "userId": 3000010823,
            "userStatus": 0,
            "username": "fg3000010822"
        }
    },
    "success": true,
    "traceId": "9692c9d8a7124b79"
}

校验返回的 body 是 json 格式

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具体内容

// 校验code为200
pm.test("response code must to be 200", function () {
   
    pm.expect(pm.response.json().code).to.equal(200);
});

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

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

在这里插入图片描述
校验状态码


// 校验状态码
pm.test("Status test", function () {
   
    pm.response.to.have.status(200);
});

在这里插入图片描述

校验返回头部参数


// 校验 Content-Type 在返回头部

pm.test("Content-Type header is present", () => {
   
  pm.response.to.have.header("Content-Type");
});


// 校验返回的头部Content-Type 值为 application/json
pm.test("Content-Type header is application/json", () => {
   
  pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');
});

在这里插入图片描述
断言返回值与变量相等

比如我们这边将登录的账号设置为全局变量,然后我们需要校验设置的全局变量是否和接口返回的手机号码相同,我们可以通过如下代码进行判断

// 校验全局变量是否与响应数据相同
pm.test("Response property matches environment variable", function () {
   
  pm.expect(pm.response.json().data.mobile).to.eql(pm.environment.get("username"));
});

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100662.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • .sql文件导入错误「建议收藏」

    .sql文件导入错误「建议收藏」如果是使用Navicat导入的话,有一种情况是此sql文件是导出的.sql文件这样只导了数据sql,没有结构sql因为数据库中不存在该表,所以会报错这种情况.sql文件需要右击表,点击转储为SQL,选择数据和结构,再导入就好了!……

  • img图片加载失败默认图片「建议收藏」

    img图片加载失败默认图片「建议收藏」<img:src=”item.goods_pic”onerror=”javascript:this.src=’../static/images/default.png’;”>转载于:https://www.cnblogs.com/techliang666/p/8876842.html

  • 2021 Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完稳了!

    2021 Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完稳了!进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,其中概括的知识点有:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ、Kafka、Linux等技术栈共有1000+道面试题。对于Java后端的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上

  • hadoop调优方法(和也篇)

    前言本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系正文RM的内存资源配置,配置的是资源调度相关ID配置说明RM1yarn.scheduler.minimum-allocation-mb分配给AM单个容器可申请的最小内存RM2yarn.scheduler.maximum-allocation-mb分配给AM单个容器可申请

  • inputstream类型的变量需要关闭吗_input type

    inputstream类型的变量需要关闭吗_input typeinputStream的作用是用来表示那些从不同数据源产生输入的类。这些数据源包括    1字节数组    2String对象   3文件   4管道,工作方式与实际管道相似,即一端输入,从另一端输出    5一个由其他种类的流组成的序列,以便我们可以将他们收集合并到一个流内   6其他数据源,如internet连接等 每一种数据源都有相

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号