zoukankan      html  css  js  c++  java
  • Postman系列之Tests断言

    ——————·今天距2021年276·——————

    这是ITester软件测试小栈第104次推文

    在上一篇:Collections集合管理主要介绍了如何新建Collections新建Folder以及运行Collections

    以下,主要介绍如何用Postman的Tests这个模块进行断言,包括Tests断言原理介绍常用断言方法以及Tests断言实例。

    Tests断言介绍

    1

    简介

    一个完整的接口测试,包括:请求>获取响应正文>断言。所谓断言,就是结果和预期对比,如果一致,则用例通过,如果不一致,断言失败,用例执行失败。

    2

    原理

    Postman中的断言通过JavaScript语言编写,在Tests下方给出可以选择的一些断言内容,断言会在请求返回之后显示,并根据断言的PASSFail情况体现在最终测试结果中。

    3

    常用断言方法

    Setting an environment variable  :设置一个环境变量

    pm.environment.set("variable_key", "variable_value");
    

    Setting a nested object as an environment variable 将嵌套对象设置为环境变量

    var array = [1, 2, 3, 4];
    pm.environment.set("array", JSON.stringify(array, null, 2));
     
    var obj = { a: [1, 2, 3, 4], b: { c: 'val' } };
    pm.environment.set("obj", JSON.stringify(obj));
    

    Getting an environment variable 获取环境变量

    pm.environment.get("variable_key");
    

    Getting an environment variable (whose value is a stringified object)  获取一个环境变量,其值是一个字符串化的对象

    // These statements should be wrapped in a try-catch block if the data is coming from an unknown source.
     
    var array = JSON.parse(pm.environment.get("array"));
    var obj = JSON.parse(pm.environment.get("obj"));
    

    Clear an environment variable 清除一个环境变量

    pm.environment.unset("variable_key");
    

    Set a global variable 设置一个全局变量

    pm.globals.set("variable_key", "variable_value");
    

    Get a global variable 获取一个全局变量

    pm.globals.get("variable_key");
    

    Clear a global variable 清除全局变量

    pm.globals.unset("variable_key");
    

    Get a variable 获取一个变量

    pm.variables.get("variable_key");
    

    Check if response body contains a string 检查响应主体是否包含字符串

    pm.test("Body matches string", function () {
        pm.expect(pm.response.text()).to.include("string_you_want_to_search");
    });
    

    Check if response body is equal to a string 检查响应主体是否等于一个字符串

    pm.test("Body is correct", function () {
        pm.response.to.have.body("response_body_string");
    });
    

    Check for a JSON value 检查JSON值

    pm.test("Your test name", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData.value).to.eql(100);
    });
    

    Content-Type is present 内容类型存在

    pm.test("Content-Type is present", function () {
        pm.response.to.have.header("Content-Type");
    });
    

    Response time is less than 200ms 响应时间小于200ms

    pm.test("Response time is less than 200ms", function () {
        pm.expect(pm.response.responseTime).to.be.below(200);
    });
    

    Status code is 200 状态码是200

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

    Code name contains a string 代码名称包含一个字符串

    pm.test("Status code name has string", function () {
        pm.response.to.have.status("Created");
    });
    

    Successful POST request status code 成功的POST请求状态码

    pm.test("Successful POST request", function () {
        pm.expect(pm.response.code).to.be.oneOf([201,202]);
    });
    

    Send an asynchronous request 发送异步请求

    pm.sendRequest("https://postman-echo.com/get", function (err, response) {
        console.log(response.json());
    });
    

    Convert XML body to a JSON object 将XML正文转换为JSON对象

    var jsonObject = xml2Json(responseBody);
    

    Tests断言实例

    1

    环境准备

    接口地址:https://www.v2ex.com/api/nodes/show.json?name=python

    • Method: GET

    • Authentication: None

    2

    场景

    1.状态码等于200;

    2.断言 id=90;

    3.url = "http://www.v2ex.com/go/python";

    3

    示例

    1.在SNIPPETS中,找到"status code:Code is 200",此断言方法即判断HTTP状态码是否为200,点击此断言方法,断言代码自动添加至Tests下。

    2.依次添加其他断言条件,点击Send发送请求。

    断言条件:

    pm.test("Status code is 200", function () {
        //断言状态码是否为200
        pm.response.to.have.status(200);
    });
    
    
    var jsonData = JSON.parse(responseBody);
    
     //断言id是90
    tests["Check respose id value"] = jsonData.id === 90;
     
     //断言url
    tests["Check respose url value"] = jsonData.url === "https://www.v2ex.com/go/python";
    

    如图所示:

    3.查看断言结果,在响应区内可以看TestResults一共有3个断言;如下所示,3个断言全部通过。

    以上


    That‘s all

    更多Postman系列文章

    敬请期待

    ITester软件测试小栈

    往期内容宠幸

    叮—这有一打让你666的测试终极资料包,请查收!

    PyCharm2020年最新永久激活锦囊

    QQ空间面试题放送,速度教科书式扑街补救offer!

    金九银十加薪季,测试题预热一波

    Selenium系列文章汇总

    Fiddler基本使用

    Fiddler抓包介绍

    速看,APP测试之ADB最全指南!

    APP测试之Monkey压力测试(一)

    APP测试之Monkey压力测试(二)

    Python接口自动化-接口基础(一)

    Python接口自动化-接口基础(二)

    Postman系列之安装及简介

    快来星标 置顶 关注

     后台 回复资源取干货

    回复答题挑战玩转答题

    回复2020与我共同成长

    想要获取相关资料软件 ?

    测试交流Q群:727998947

    点亮一下小花花,我就知道你“在看”

  • 相关阅读:
    WampServer Mysql配置
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 前10名
  • 原文地址:https://www.cnblogs.com/ITester520/p/13203329.html
Copyright © 2011-2022 走看看