一、前言

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

注:Postman 版本 6.7.1


二、多环境测试

2.1 场景

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

2.2 解决方法

2.2.1 添加环境

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

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

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

2.2.2 切换环境

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

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

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

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

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);

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

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

3.2.2 设置变量

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

四、结语

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

Postman 使用技巧之多环境测试及接口依赖关系处理的更多相关文章

  1. 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试

    黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...

  2. Postman使用技巧

    Postman是什么 Postman是chrome的一款插件,用于做接口请求测试,无论是前端,后台还是测试人员,都可以用postman来测试接口,用起来非常方便. Postman安装 官网下载(翻墙) ...

  3. App-IOS与Android弱网环境测试

    弱网环境下App的功能是否正常使用,是否会发生Crash的等情况? 1.IOS ios系统一般自带弱网环境测试,可以通过设置各种网络环境,模拟弱网环境,如3G,wifi,very bad Networ ...

  4. 【SoapUI、Postman、WebServiceStudio、Jmeter】接口测试工具结合测试webservice接口(发送XML格式参数)

    目录: SoapUI测试webservice接口,发送XML格式参数 Postman测试webservice接口,发送XML格式参数 WebServiceStudio.exe测试webservice接 ...

  5. 使用PostMan测试WebService接口

    使用PostMan测试WebService接口 参考资料: 通过XML请求WebServer  https://blog.csdn.net/qq_33933408/article/details/53 ...

  6. python环境测试MySQLdb、DBUtil、sqlobject性能

    python环境测试MySQLdb.DBUtil.sqlobject性能 首先介绍下MySQLdb.DBUtil.sqlobject: (1)MySQLdb 是用于Python连接Mysql数据库的接 ...

  7. phpStudy本地环境测试,打开网页很慢的解决办法!

    很多人应该都遇到了在使用phpStudy本地环境测试软件时候打开很慢的问题,甚至动辄达到了1000ms以上,开篇直接给出解决办法: 下面给大家介绍phpstudy访问速度慢的解决办法. 1.修改mys ...

  8. Postman如何测试Webservice接口?

    一般情况下使用soapui工具测试ws接口,那么能不能使用postman测试呢?当然可以,往下看. 1. 首先请求类型为post 填写上ws地址 ,url地址后不追加?wsdl 2. 设置请求头 he ...

  9. Linux ALSA音频库(二) 环境测试+音频合成+语音切换 项目代码分享

    1. 环境测试 alsa_test.c #include <alsa/asoundlib.h> #include <stdio.h> // 官方测试代码, 运行后只要有一堆信息 ...

随机推荐

  1. ionic3 打包报错[ERROR] An error occurred while running cordova prepare (exit code 1):

    解决办法:删除并重新添加平台以使用以下命令解决问题: cordova platform rm ios cordova platform add ios 如果执行 ionic cordova build ...

  2. AXI Traffic Generator 生成axi-lite axi4 axis 的IP

    addr.coe memory_initialization_radix = ; memory_initialization_vector = ,,,,,,,,ffffffff; ctrl.coe m ...

  3. 水果(map的嵌套)

    夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了 ...

  4. Allegro PCB Design GXL (legacy) 由零散的对象构成一个Shape

    Allegro PCB Design GXL (legacy) version 16.6-2015 从DXF文件中导入板框之后,发现板框是由Line Segment.Arc Segment等对象组成, ...

  5. Java 产生一个大于等于200,小于300的随机数,且是10的整数倍

    public class Random200_300 { public static void main(String[] args) { int r1 = 0; while (true) { r1 ...

  6. Python数据分析几个比较常用的方法

    1,表头或是excel的索引如果是中文的话,输出会出错 ​​解决方法:python的版本问题!换成python3就自动解决了!当然也有其他的方法,这里就不再深究 2,如果有很多列,如何输出指定的列? ...

  7. P1036 选数 题解

    题目链接https://www.luogu.org/problemnew/show/P1036 题目描述 已知 nnn 个整数 x1,x2,-,xnx_1,x_2,-,x_nx1​,x2​,-,xn​ ...

  8. 金蝶开k3wise客户端访问中间层不时提示远程服务器不存在或不可用

    此问题一般是发生在WIN7客户端+中间层为WIN2008 R2系统,一般是中间层启用guest引起: a. 从Windows Vista以后, Negotiate (http://msdn.micro ...

  9. PyOpenCV图像逆时针旋转90度

    warpAffine方法效果很搓,留下大片黑色区域. 使用flip和transpose可以实现逆时针旋转90度.先flip或先transpose均可. #coding:utf-8 import cv2 ...

  10. office web apps搭建与解决方案

    微软office在线预览解决方案https://view.officeapps.live.com/op/view.aspx?src=http://storage.xuetangx.com/public ...