zoukankan      html  css  js  c++  java
  • 2-Postman断言

    1.断言是什么?

    断⾔, 是让程序判断预期结果与实际结果是否⼀致.简单的来说就是人为的设置一个值,对比接口返回的值和人为设置的值是否一样。

    2.Postman断言的特点

    1. Postman的断⾔是使⽤JavaScript语⾔编写的,写在‘Tests’标签⻚⾥
    2. Tests中的脚本在发送请求之后执⾏,会把断⾔的结果(PASS/FAIL)最终在‘TestResults’标签页中展示。

    设置断言

    我们可以在 SNIPPETS 栏中选择插入一些断言片段,稍作修改就可以供我们灵活使用了!!

    点击查看代码
    # 断⾔代码⽚段介绍(以下代码均可在postman中找到,我们只需要稍作修改)
    1. 判断响应状态码是否等于200 (*****)
     pm.test("Status code is 200", function () {
     pm.response.to.have.status(200);
     });
     
    2. 判断响应体中是否包含指定的字符串 (****)
     pm.test("Body matches string", function () {
     pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });
     
    3. 判断响应体数据是否等于指定的字符串 (***)
     pm.test("Body is correct", function () {
     pm.response.to.have.body("response_body_string");
     });
     
    4. 校验响应的JSON数据 (*****)
     pm.test("Your test name", function () {
     var jsonData = pm.response.json();
     pm.expect(jsonData.mesage).to.eql("ok");
     });
     
    5. 判断响应头中是否包含指定的头标签
     pm.test("Content-Type is present", function () {
     pm.response.to.have.header("Content-Type");
     });

    常用的几个代码片段:

    http请求状态码的断言 Status code : Code is 200
    请求体里的数据的断言 Response body : Contains string
    json数据的断言 Response body : JSON value check

    3.排错技巧

    # 1.检查断⾔代码⽚段是否错选了
     当断⾔出现错误时, 我们应⾸先确定⾃⼰的断⾔代码⽚段是否是正确的, ⽐如要判断json数据某个键的
    值是否包含另⼀个值, 但却选择了等于.
     
    # 2.检查断⾔代码是否设置了错误的字段
     断⾔中对结果的判断要根据响应数据的形式进⾏严格的⽐对, 不细⼼很可能出现错误. ⽐如: json数据
    中的⼀个键名为data, 在编写断⾔代码的过程中却写成了date
    # 3.发送请求, 基于响应数据做初步预判
     断⾔是对接⼝响应数据的检验, 那断⾔可定是在请求发送后执⾏的. 所以当断⾔出现错误, 这是你⼀定
    已经发送了请求, 我们可以打开响应数据进⾏对⽐, 来判断断⾔的执⾏结果是否存在问题.
     
    # 4.检查请求相关参数
     在构造请求时, 可能请求出现了错误, ⽐如请求⽅式为post, 但默认为get, 却忘记修改, 当发送请
    求后获取到的响应数据肯定不是预期的结果, 这时断⾔就会出错. 应当仔细检查请求的正确性. 请求的正
    确性可以从以下这⼏个⽅⾯考虑->(请求⽅法, 请求地址, 请求头信息, 请求体)
     
    # 注意:
     当断⾔出现错误, 经过⼀系列的排查依然不⾏, 该怎么办呢? 这是我们可以保存原有断⾔错误的请求,
    重新建⽴请求, 不要受前⼀个请求的思维影响, ⼀步⼀步的构建请求, 再次尝试
    坚持,坚持,坚持…… 在你选择不放弃的那一刻, 成功其实已经在向你走近 我们无法得知什么时候会来临 但我们可以选择用自强的双手敲开幸福的门。
  • 相关阅读:
    RSAUtils非对称加密
    计算日期之间的时间差
    面向注解的切面实现
    多个切面执行同一个方法
    spring切面拦截实现
    三种实现日志过滤器的方式 (过滤器 (Filter)、拦截器(Interceptors)和切面(Aspect))
    redis实现 msetex和 getdel命令
    mvn修改版本号命令
    shell脚本实例-while实现批量创建用户
    shell脚本实例-for实现批量主机的探测
  • 原文地址:https://www.cnblogs.com/bronyaa/p/14897180.html
Copyright © 2011-2022 走看看