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


相关推荐

  • Lamda架构研究「建议收藏」

    Lamda架构研究「建议收藏」Lamda架构学习一、Lamda架构介绍Lambda架构整合离线计算和实时计算,融合不可变性(Immutability),读写分离和复杂性隔离等一系列架构原则,可集成Hadoop,Kafka,Storm,Spark,HBase等各类大数据组件。Lambda架构的目的是为应用程序提供一个低延迟的复合异步数据传输环境,例如新闻类应用,经常需要进行大规模信息处理,包括输入,归类,索引,存储等

    2022年5月20日
    46
  • post请求包含哪些参数(请求方式post和get)

    1)、HTTP协议是以 ASCII码 传输,建立在TCP/IP协议之上的应用层规范。规范把HTTP请求分为三个部分:状态行、请求头、消息主体。2)、协议规定POST提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须 使用什么编码方式 。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的HTTP请求满足上面的格式就可以。3)、数据发送出…

    2022年4月13日
    173
  • C++学习——虚函数与纯虚函数

    C++学习——虚函数与纯虚函数引言:若要访问派生类中相同名字的函数,必须将基类中的同名函数定义为 虚函数,这样,将不同的派生类对象的地址赋给基类的指针变量后, 就可以动态地根据这种赋值语句调用不同类中的函数。一、虚函数的定义和使用可以在程序运行时通过调用相同的函数名而实现不同功能的 函数称为虚函数。定义格式为:virtual FuncName();一旦把基类的成员函数定义为虚函数,由基类所派生出来的所 有派生类中,…

    2022年8月18日
    11
  • docker 导出所有镜像[通俗易懂]

    docker 导出所有镜像[通俗易懂]docker导出所有镜像

    2025年9月20日
    7
  • 面试题:MyBatis二级缓存[通俗易懂]

    面试题:MyBatis二级缓存[通俗易懂]①、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。②、二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。写这篇文章的初衷:MyBatis二级缓存在实际工作中一般都不会使用,但是就有有些面试官一直问这个问题,所

    2025年12月3日
    3
  • 微信公众号代理运营公司_多平台推广

    微信公众号代理运营公司_多平台推广最近公司项目需要切到微信服务号,但是公司内网环境需要开防火墙策略才能访问微信的开放API,实际上就是通过代理去访问。这里记录一下我通过代理去调用微信API遇到的坑及解决办法。

    2022年8月21日
    9

发表回复

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

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