• Postman 正确使用姿势


    前言:

    请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i

    简介:

    Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。

    背景:

    当我们使用Postman做接口测试时,不免某些接口请求前需要获取token参数,验证请求是否有效。

    问题引申:当我们获取到token后需要手动添加到请求头里面,一旦token过期了,需要重新获取token,需要手动替换请求头中的token。周而复始麻烦的很!!!

    解决思路:设置Postman中全局变量,将参数返回值token设置全局变量,便于其他接口调用

     

    Test 简介

    在 postman 中封装了我们常见的断言(Tests),当然 Tests 除了可以作为断言,还可以当做后置处理器

    • 获取当前接口的响应,传递给下一个接口
    • 控制多个接口间的执行顺序

     

    一、【登入接口】获取token

    1.1 设置全局变量

    设置全局参数,添加请求【登入接口】的请求参数

    1.2 调用全局参数

    二、【查询接口】并入token

    2.1 【查询接口】token验证

     2.2 【登录接口】中使用Tests语句自动添加环境变量

    //把返回值解析成json字符串
    var res = JSON.parse(responseBody)
    //参数填充
    postman.setEnvironmentVariable("authorization",res.value.token);
    //简写
    //pm.environment.set("authorization", res.value.token);
    
    //自动设置值
    //postman.setGlobalVariable("authorization",res.value.token)

     

     发送请求运行后,再次查看【登入请求】,全局参数已自动添加token值

     

    2.3 【查询接口】中引用参数值

    引用参数值,实现每执行【登入接口】请求,完成token自动赋值替换

    Tests 中常用方法

    //1、设置环境变量
    postman.setEnvironmentVariable("key", "value");
    或
    pm.environment.set("key", "value");
    
    //2、设置全局变量
    postman.setGlobalVariable("gv", "111111");
    或
    pm.globals.set("g", "2222");
    
    //3、检查resonse body中是否包含某个string
    tests["结果:Body matches string"] = responseBody.has("string_you_want_to_search");
     
    或
     
    pm.test("结果:Body is correct", function () {
     
        pm.response.to.have.body("response_body_string");
     
    });
    //4、验证Status code状态响应码是否是某个值
    tests["Successful POST request"] = responseCode.code === 200 || responseCode.code === 202;
     
    或
     
    pm.test("Successful POST request", function () {
     
        pm.expect(pm.response.code).to.be.oneOf([200,202]);
     
    });

     

    Pre-request Script 简介

    • Pre-request Script是集合中请求发送之前需要执行的代码片段
    • 请求参数中包含一个随机数或者请求header中包括一个时间戳,或者你的请求参数需要加密

    一、【登录接口】请求发起前处理

    使用Pre-request Script语句对密码进行加密请求

    var body_json = {
                "userCode" : "admin",
                "passwd" : "123456"
        }
    pwd = body_json["passwd"]  // 获取passwd的值
    var pwd = CryptoJS.MD5(pwd).toString()  // md5加密pwd变量
    body_json["passwd"] = pwd  // 设置passwd为加密后的密码
    
    console.log(body_json)
    
    var body_str = JSON.stringify(body_json)    // converts objects to strings
    pm.environment.set('request_body', body_str)  // 把处理后的body赋值给参数request_body,在body中输入{{request_body}}

    样例:

     

    Pre-request Script 中常用方法

    // 清除全局变量
    pm.globals.unset("variable_key");
    // 清除环境变量
    pm.environment.unset("variable_key"); 
    // 获取全局变量
    pm.globals.get("variable_key");     
    //获取一个变量
    pm.variables.get("variable_key");    
    // 获取环境变量
    pm.environment.get("variable_key");     
    //发送一个请求
    pm.sendRequest("https://postman-echo.com/get", function (err, response) {
        console.log(response.json());
    });  
    //设置环境变量
    pm.globals.set("variable_key", "variable_value");  

    总结:

    我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!

    参考链接参考链接


    __EOF__

  • 本文作者: 南国以南i
  • 本文链接: https://www.cnblogs.com/bgyb/p/16158571.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    深度学习入门-卷积神将网络(CNN)
    【Spring框架】——5.Bean的作用域及自动装配
    locust性能测试工作概述
    BUUCTF zip伪加密 1
    vue3 solt
    四川农业大学就业指南←缺失的就业指导课
    选择题汇总3(括号里填的答案都是对的,不用管下面那个答案正确与错误,因为作者懒得删了)
    Java实现单链表
    gorm的使用(持续更新)
    Spring的注解@Bean
  • 原文地址:https://www.cnblogs.com/bgyb/p/16158571.html