zoukankan      html  css  js  c++  java
  • Postman高级使用——Tests 断言校验返回结果

    1、引言

    Postman的test本质上是JavaScript代码,通过我们编写测试代码,每一个tests返回True,或是False。
    每一个tests实际上就是一个测试用例

    2、对接口进行Tests测试

    Tests断言:比较预期结果和实际结果
    (编辑文本采用js语言,对于初学者来说可以直接点击右边的系统自带配置js)

    引用变量{{变量名称}}

     

    比如搜猫,那么我们就选择Response body:Contains string

    pm.test("Body matches string", function () {
        pm.expect(pm.response.text()).to.include("string_you_want_to_search");
    });
    pm.test("检查返回内容是否正确", function () {
        pm.expect(pm.response.text()).to.include("<titile>猫_百度搜索</titile>");
    });

     附百度搜猫抓过来的接口Url

    http://www.baidu.com/s?wd=猫

    附JSON在线视图查看器

    http://www.bejson.com/jsonviewernew/

    3、简单实例测试(检查百度搜猫返回请求情况)

    //1、检查返回值
    pm.test("检查返回内容是否正确", function () {
        pm.expect(pm.response.text()).to.include("<title>猫_百度搜索</title>");
    });
    //2、检查状态码
    pm.test("检查状态码", function () {
        pm.response.to.have.status(200);
    });
    //3、检查响应时间
    pm.test("检查响应时间小于300ms", function () {
        pm.expect(pm.response.responseTime).to.be.below(300);
    });

     显示结果

    ps:检查响应时间会因网速而发生变化,返回Fail有时是正常的

    4、环境变量管理使用

    //1、检查返回值
    pm.test("检查返回内容是否正确", function () {
        pm.expect(pm.response.text()).to.include("<title>猫_百度搜索</title>");
    });
    //2、检查状态码
    pm.test("检查状态码", function () {
        pm.response.to.have.status(200);
    });
    //3、检查响应时间
    pm.test("检查响应时间小于300ms", function () {
        pm.expect(pm.response.responseTime).to.be.below(300);
    });
    //4、获取状态码
    var code=responseCode.code;
    //5、设置全局变量
    pm.globals.set("codename", code);

    通过js脚本我们获取状态码后,存在一个全局变量codename里面,然后我们打开环境变量管理进行查看,如下:

    实例二:将微信获取token的返回值提取token出来,在后面的接口中进行引用

    •  在Tests中进行脚本测试
    //1、获取jsonData数据包
    var jsonData=JSON.parse(responseBody);
    //2、通过json包获取对应字段名access_token
    var token=jsonData.access_token;
    //设置token全局变量
    pm.globals.set("myToken",token);
    • 查看环境变量管理内容如下:

    6、正则表达式使用(以获取微信的token为例)

    • 上面那个获取脚本的方式其实是有一个缺点的,那种方式只能获取一个JSON格式的值,而当我们切换类型后就没办法获取了,所以我们可以采用更好一点的方法,正则表达式
    var token=responseBody.match(new RegExp('access_token":"(.+?)"'))[1];
    pm.globals.set("weixin_token",token);

    7、提出问题①(关于百度在不同环境访问问题):

    当我们访问百度时,可以通过网址进行访问,也可以通过IP地址进行访问,那么我们切换不同的环境时,如何让它们都能用呢?

      •  如何查看百度的IP地址呢?
        首先WIN+R 进入cmd
        然后输出以下命令:
    nslookup www.baidu.com

    于是我们能查看到如下内容(每个电脑的显示界面可能不一样)

    通过查看,我们就能得到百度的三种环境:生产环境、测试环境、预发布环境

    www.baidu.com            生产环境
    IP地址:
    183.232.231.172          测试环境
    183.232.231.174         预发布环境
    • 公司的环境有哪些?

            开发环境:开发人员用来编码调试
            测试环境:测试人员找bug
            预发布环境:模拟的真实环境
            生产环境:用户真实使用的

    PS:那么我们将主机设置为全局变量,这样我们对于不同的环境都能够使用,此时我们打开Postman,进入之前的环境变量管理,点击Add然后添加这三个环境,注意我们的环境变量名称要统一

    1、测试环境配置

    2、生产环境配置

    3、预发布环境配置

    8、提出问题②(关于请求头封装隐藏问题)

    •  ①提取返回值(正则表达式、json)
    • ②环境变量的设置
    •  ③修改请求头
    •  ④参数化循环取值

    之前各个环境配置好了之后,我们发送send请求后,打开我们的Fiddler工具查看我们的请求头,发现在User-Agent会直接显示我们的Postmanxxx,这样的接口肯定会出问题的,我们应该如何进行隐藏封装呢?

    很简单,就是我们直接去访问百度,去拿到百度的Headers的信息就好了,然后去修改我们自己接口的key-value值

    下面是我从百度拷下来的Headers,可以直接使用

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36

    然后在接口那选择Headers,采用文本方式直接复制过去即可

    PS:我们这里是引用了全局变量baiduUrl,是之前配置的三个环境的变量名称

    那么现在我们的Headers请求头就封装好了,我们再send一下,采用预发布环境试试~

    结果很显然,修改成了百度的请求头了,说明隐藏成功!

    希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

     

  • 相关阅读:
    angularJS---初识指令
    Bootstrap ACE后台管理界面模板-jquery已整理
    memcached和redis的区别和应用场景
    微信开发,公众号支付及微信扫描支付各自使用的密码分别来自哪里
    微信 redirect_uri参数错误 正确的处理
    jquery jsonp实现跨域
    php 常用的好函数(持续更新)
    pre 随变化的样式
    CSS 居中 可随着浏览器变大变小而居中
    2017.03.02-2017.09.28 日常随笔
  • 原文地址:https://www.cnblogs.com/www642830685/p/14044809.html
Copyright © 2011-2022 走看看