zoukankan      html  css  js  c++  java
  • 含断言的方法

    GET响应:右上角显示响应HTTP状态码、请求的耗时。

     
    get响应示例

    需特别注意的是注意区别HTTP状态码与响应正文中的状态码,只有HTTP状态码是200时,才代表这个接口请求是正确的,这个是HTTP协议定义的,而响应正文的状态码,是程序员自已定义的,可以是200,也可以定义为其它值,是为了让接口使用者去区分正常数据与异常数据。

     
    状态码与响应码不一致

    断言
     

    一个完整的接口测试,包括:请求->获取响应正文->断言,我们已经知道了请求与获取响应正文,下面来介绍如何用postman进行断言。

     
    Tests

    这个”Tests”就是我们需要处理断言的地方,postman很人性化的帮我们把断言所用的函数全给准备好了:

     
    SNIPPETS

    举例说明:首先设置一个断言场景,根据断言场景来举例说明Postman断言如何使用。

    1、判断HTTP返回状态码为200

    2、判断响应正文中是否包含:"statusCode":200

    3、解析响应正文,并判断statusCode的值是200,message的值是”Success”



    第一步:在SNIPPETS中,往下拉,有一项”Status code:Code is 200”,这个就是为场景中的第 1 条准备的,判断HTTP返回状态码是否为200。点击这一项,可以看到在其左边,断言代码自动添加,见下图:

     
    Status code

    解释一下这句代码的意思:

    tests["Status code is 200"]中的tests是一个内置对象,tests["Status code is 200"]是指为这个断言起个名称叫”Status code is 200”,这个名称可以自行修改。

    responseCode.code === 200中的responseCode是内置对象,responseCode对象中有个属性是code,是指HTTP状态码的code,判断code是否为200.

    综合起来,这句代码的意思是:名称为”Status code is 200”的断言中,判断responseCode对象的code属性值(HTTP状态码)是否为200。


    第二步:同样在SNIPPETS中,找到一项”Response body:Contains string”,这个就是为场景中的第2条准备的,判断响应正文中的字段。点击后,在其左边,断言代码自动添加,见下图:

     
    Contains string1

    其中我们需要修改想要在响应报文中找到的内容:

    tests["Body matches string"] = responseBody.has('"statusCode":200');    //对照第2条场景:判断响应正文中是否包含:"statusCode":200

     
    Contains string2

    第三步:我们需要解析JSON串了,所以,在SNIPPETS中找到”Response body:JSON value check”并点击,在其左边,断言代码自动添加,见下图:

     
    JSON value check1

    我们可以看出,这里面其实是JS代码,jsonData变量其实是解析完JSON后的对象,在JS中,一个JSON对象获取其属性的值,直接是用jsonData.value,于是,我们把代码给修改一下,来判断第3条场景:

    tests["response statusCode"] = jsonData.statusCode === 200;  //判断statusCode的值是200

    tests["response message"] = jsonData.message === 'Success';  //判断message的值是”Success”

     
    JSON value check2

    这样一来,我们可以看到一共有Tests的断言4个,点击Send,发送请求,在响应区内可以看到如下图:表示断言全部通过。

     
     

    总结:
    test[Status code:Code is 200]=responseCode.code===200;   断言请求的状态码
    tests["Body matches string"] = responseBody.has('"statusCode":200');   断言响应体里面的响应内容包含 "statusCode":200
    tests["response message"] = jsonData.message === 'Success';   //判断message的值是”Success”
    tests["response statusCode"] = jsonData.statusCode === 200;  //判断statusCode的值是200

    来源: https://www.jianshu.com/p/549ff9f922d6
     
  • 相关阅读:
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    8.4 确定两个日期之间的月份数或年数
    (Java实现) 洛谷 P1553 数字反转(升级版)
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/10063643.html
Copyright © 2011-2022 走看看