• 【4】Postman之Tests(断言)


    简介:使用postman完成请求后,验证返回结果,会用到tests断言。官方提供了很多可以直接使用的方法~

    接下来主要介绍这些方法是如何使用。

    1. 变量相关:

    • Get an environment variable 获取一个环境变量
    • Get a gloval variable 获取一个全局变量
    • Get a variable 获取一个变量
    • Set an environment variable 设置一个环境
    • Set a global variable 设置一个全局变量
    • Clear an environment variable  清空一个环境变量
    • Clear a global variable  清空一个全局变量  

    使用:

    • 获取变量:如果在下一个请求中用到上一个请求的返回值,可以使用“设置一个全局变量”将请求的返回值设置为全局变量后,在下一个请求中,使用“获取一个全局变量”取到该值。
    • 清空变量:这里的清空等译删除变量,一个参数使用完成后,需要删除,或者清空值都可以使用该方法。

    2.状态码

    • Status code: Code is 200 判断状态码是否正确;默认判断状态是否为 200, 可修改;
    • Status code:Successful POST request
      判断状态码是否为预期结果之一;比如默认断言状态码是否是 201, 202 中的一个;
    • Status code:Code name has string
      判断状态码描述是否包含字符串,比如是否包含 Created;

    3. 响应结果断言:

    • Response body: Contains string 响应结果是否包含字符串;
    • Response body: JSON value check 响应结果如果是 JSON,检查具体的 JSON 值;
    • Response body: Is equal to a string 响应结果与字符串是否全部匹配预期的字符串;
    • Response body: Convert XML body to a JSON Object
      将 XML 转换成 JSON;

    4. Header :

    • Response headers:Content-Type header check
      响应头部中是否包含字段;

    5. 响应速度:

    • Response time is less than 200ms
      响应时间是否少于多少 ms。

    例如:

    请求的响应为json格式:

    {

        "code": 200,

        "message": "添加成功",

        "id": "d794bed4-73ae-4756-bf11-3e7ebbdd43db",

    }

    tests中验证:

    • //将结果转换为json字符串

    var jsonData = pm.response.json();

    • //验证code为200

    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    }); 

    •  //验证message为:添加成功

    pm.test("添加成功", function () {
        pm.expect(jsonData.message).to.eql("添加成功");
    });

    备注:在验证json中的内容时,我这个是简单的object类型的,如果涉及到数组,要逐级验证,定位到具体的值。例如:

               jsonData.biz_data[0]._id.value (数组使用[],object可以直接使用点)

    • //id是我之后要用到的值,所以将其设置为全局变量

           pm.globals.set("id", jsonData.id);

  • 相关阅读:
    (转)mysql 中的 latch锁和Tlock(事务锁), DML加锁规则,以及死锁分析
    改变主库sync_binlog,减小主从同步延时
    windows10上使用SourceInsight阅读mysql源码
    centos6.5安装systemstap
    centos6.5编译调试mysql-5.7.18
    事物特性
    Union和union all区别?
    Join(inner、left、right)的区别?
    hashhashmaphashTablehashSet
    String、StringBuffer、StringBuilder区别
  • 原文地址:https://www.cnblogs.com/stillwalking/p/14046922.html
Copyright © 2020-2023  润新知