zoukankan      html  css  js  c++  java
  • Postman 使用技巧之多环境测试及接口依赖关系处理

    一、前言

    在日常开发中,除了正常的单元测试,某些情况我们还需要测试 HTTP 接口,团队中目前使用的是「 Postman 」这款 API调试 、 HTTP 请求工具。通常我们将经常要测试的接口按照项目归类,存放在 Postman 的收藏夹(即 Collections)中方便重复调用。然而,在多个环境测试或者接口之间有依赖关系时我们需要频繁的改动请求体,下面将介绍这两种情况的解决方法。

    注:Postman 版本 6.7.1


    二、多环境测试

    2.1 场景

    项目环境通常都不止一套,每次调试 HTTP 接口时都要修改请求地址是一件非常麻烦的事,所幸 Postman 提供了「 Environment 」管理功能,想要在多个环境中测试只需要切换环境即可。

    2.2 解决方法

    2.2.1 添加环境

    ① 打开 Postman,点击界面右上角的齿轮按钮「 Manage Environment」 tool_1_1.png

    ② 点击弹出框中的「 Add 」按钮 tool_1_2.png

    ③ 输入 Environment Name,命名规则可为调试环境名+项目名,如「 local alpha」,其中 local 代表本地环境,alpha 代表项目名。然后添加一个名为 host 的变量(即VARIABLE),值为本地环境项目地址,最后点击「 Add 」按钮保存。

    tool_1_3.png

    2.2.2 切换环境

    ① 回到主界面可以看到 Environment 下拉框已有刚添加的环境选项。 tool_1_4.png

    ② 切换环境选择新创建的「 local alpha 」,然后创建一个请求测试项目中已有的 HTTP 接口,请求地址中 host 部分使用刚定义的变量,双层大括号引用变量名,如 {% raw %}{{% endraw %}} 。 tool_1_5.png

    ③ 请求接口后正常,如需切换一个新环境则按上述步骤操作即可。 tool_1_6.png

    三、处理接口之间的依赖关系

    3.1 场景

    上面提到了变量的使用方法,在日常开发中有可能遇到这样一个情况:大部分接口都需要用户登录之后才能访问,否则无法请求成功,用户登录成功后通常会有一个 token,此后每次请求都将在 header 中携带该参数用于识别用户身份,此时如果用户重新登录导致 token 发生了变化,那么哪些依赖 token 的接口都要相应的修改,这将是个不小的工作量。

    3.2 解决方法

    3.2.1 添加 Tests 脚本

    ① 首先在用户登录接口的「 Tests 」中添加以下代码。

    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    // 把responseBody转为json字符串
    var data = JSON.parse(responseBody);
    // 设置环境变量token,供后面的接口引用
    pm.environment.set("token", data.data);
    

    tool_1_7.png

    注:常用的脚本右侧都有相应的快捷方式创建

    ② 接口调用成功后会执行上述代码将返回结果中的 data 字段设置到环境变量「 token 」中。 tool_1_8.png

    3.2.2 设置变量

    而后其余依赖 token 的接口可以在 header 中添加 key 为 token,value 为 {% raw %}{{% endraw %}} 的参数就可以正常调用接口了。就算重新登录后也不需要手动修改 header 里的 token 值,因为它会从环境变量中读取。 tool_1_9.png

    四、结语

    至此上述两种情况的解决方法已经介绍完了,后续如有调整会再补充。

  • 相关阅读:
    ubuntu 软件管理
    java split方法
    linux tcpdump抓包
    linux 文件压缩与解压
    AngularJs出现错误Error: [ng:areq]
    php 跨域设置
    npm 安装完bower 后,提示'bower' 不是内部或外部命令
    less--Module build failed: TypeError: loaderContext.getResolve is not a function
    npm init npm ERR! code EINVALIDTAGNAME
    yarn报错:Found incompatible module
  • 原文地址:https://www.cnblogs.com/orzlin/p/10496842.html
Copyright © 2011-2022 走看看