详解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"));
});

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言运算符优先级(超详细)「建议收藏」

    C语言运算符优先级(超详细)「建议收藏」转自: http://blog.csdn.net/huangblog/article/details/8271791每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先级优先级运算符名称或含义使用

    2022年10月5日
    1
  • C++ 输入的是1.3变1.29999995问题

    C++ 输入的是1.3变1.29999995问题今天一位粉丝在评论中问到了这个问题,我简单的说了原理和改进方法,将float改为double就可以了,下面我进行详细整理先说一下debug是啥意思马克2号(Harvard Mark II)编制程序的葛丽丝·霍波(Grace Hopper)是一位美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一。有一天,她在调试设备时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而…

    2022年8月18日
    6
  • 良心推荐JVM性能调优工具

    良心推荐JVM性能调优工具良心推荐JVM性能调优工具该工具源于几年前关注的一个阿里大佬专做jvm性能调优,现在已经创业开发出社区版的在线性能调优!我觉得很香就推荐给大家!工具地址https://console.perfma.com/下面简单介绍社区版三个产品XXFox-Java虚拟机参数分析参数查询:查询指定JVM参数的官方定义、使用方法、默认值、专家建议参数检查:对JVM参数的用法,赋值及组合进行正确性与合理性检查参数变迁:给出JVM参数在不同配置环境下推荐取值或替代参数参数优化:全面诊断JVM参数,给出综

    2022年5月18日
    37
  • sdut 6-2 多态性与虚函数

    sdut 6-2 多态性与虚函数

    2021年12月17日
    40
  • drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明

    drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明按照本说明,你就可以成功的在Debian10(Buster)Linux服务器中安装好drupal8.8.0版本,已亲测能稳定运行。先决条件在开始安装之前,对安装的最低要求是:数据库服务器,如MySQL、MariaDB、PostgreSQL、Percona、SQLite等。Web服务器,如Nginx、Apache。PHP7.x,推荐>=7.2。至少1GB的磁盘空间。同时,要更新你的De…

    2022年7月20日
    15
  • 简单java代码生成器的开发教程(一),根据数据库表逆向工程生成实体类(附源码)

    简单java代码生成器的开发教程(一),根据数据库表逆向工程生成实体类(附源码)以前开发过完整的快速开发平台,想分享里面的基本代码生成的开发流程,大概就两个重点,以前开发过完整的快速开发平台,想分享里面的基本代码生成的开发流程,大概就两个重点,一代码生成引擎,二是编写模版代码生成器的核心开发流程1.如何连接数据库,获取数据库信息,以及根据数据库的表字段信息如何转换成java实体类型1)获取数据库表信息2)数据库表信息转java类型2.配置必须的基本数据,根据模版语言编写代码模版,根据模版生成代码文件(我这里用freemarker模版语言)

    2022年5月18日
    64

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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