详解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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java的treemap_java map用法

    java的treemap_java map用法TreeMap简介TreeMap是一个有序的key-value集合,它是通过红黑树实现的。TreeMap继承于AbstractMap,所以它是一个Map,即一个key-value集合。TreeMap实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。TreeMap实现了Cloneable接口,意味着它能被克隆。TreeMap实现了ja…

    2025年5月24日
    0
  • MYsql 锁表解决办法

    MYsql 锁表解决办法MySQL锁表解决方法一、我的处理过程1、查进程,主要是查找被锁表的那个进程的IDSHOWPROCESSLIST;2、kill掉锁表的进程IDKILL 10866;//后面的数字即时进程的ID网上找了些资料,了解了一下,先分享一下:二、mysql的锁表问题SHOWPROCESSLIST查看数据库中表的状态,是否被锁;killid //杀掉被锁的表===================…

    2022年5月7日
    40
  • Ubuntu根分区使用Lvm扩容

    Ubuntu根分区使用Lvm扩容ubuntu根分区剩余空间不足,影响工作,因此通过lvm工具对根文件系统进行扩容系统版本:ubuntu-14.04LTS1.使用新硬盘扩展根文件系统 新建一块硬盘并进行分区: fdisk/dev/sde 依次键入n,创建新分区;然后分区类型选择p;其他默认输入即可。 图1:创建新分区 分区创建完成后,修改分区类型为lvm: 图2:修改分区类型 新建的分区类型不能为扩展分区,否则不能更改分区类型,目前还不清楚原因,需要继续查找其他资料,..

    2022年6月20日
    34
  • linux下go语言代理

    linux下go语言代理exportGO111MODULE=onexportGOPROXY=https://goproxy.cn

    2022年7月25日
    12
  • html浅绿色的代码_pr灰度变正常色

    html浅绿色的代码_pr灰度变正常色在每年的一些特殊的日子(比如公祭日等)很多网站会将页面整体去色以灰度形式显示,以示哀悼。这里将对网页中实现该功能进行简单说明。

    2022年9月26日
    0
  • 十大排序——最全最详细,一文让你彻底搞懂

    十大排序——最全最详细,一文让你彻底搞懂最全最详细,一文带你了解十大排序Sort写在前面因为GitHub的主文档太长,不容易维护,所以建立子文档以辅助。本篇内容是主文档中的排序部分的扩展。注:本篇内容最早发布于GitHub中,如果你觉得我写得还行,记得给我Star或是Fork~~献给我的家人作者Three领英知乎力扣CSDN????????????不积跬步,无以至千里;不积小流,无以成江海。????Top代表返回顶部????代表到文档末尾如果你觉得我

    2022年7月24日
    12

发表回复

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

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