一、前言

在日常开发中,除了正常的单元测试,某些情况我们还需要测试 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. jdbctemplate 调用oracle 有返回(会话型临时表数据的)结果的存储过程

    注:本文为博主 原创. jdbctemplate 调用oracle存储过程 事务 临时表  有返回结果 1:java 代码 本逻辑代码本是想把 java 代码里的list<Strign>类 ...

  2. 《MySQL5.7从入门到精通(视频教学版)》

    · 一:书籍PDF获取途径 pdf 文档 在 此QQ群(668345923) 的群文件里面 学习视频资源 二:书籍介绍 本书主要包括MySQL的安装与配置.数据库的创建.数据表的创建.数据类型和运算符 ...

  3. python - 发送带各种类型附件的邮件

    如何发送各种类型的附件. 基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后attach各个部分.如果是附件,则add_header加入附件的声明. 在python中,M ...

  4. LeetCode(125):验证回文串

    Easy! 题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, ...

  5. Python中对文件和目录的操作

    用到的核心模块有:os   shutil 文件的创建:f = open("文件名", "w")  注:如果涉及到乱码问题需要在后面加上encoding=&quo ...

  6. C++ Primer 笔记——异常处理

    1.栈展开过程沿着嵌套函数的调用链不断查找,直到找到了与异常匹配的catch句子为止,或者也可能一直没找到匹配的catch,则程序将调用terminate,退出主函数后查找过程终止.假设找到了一个ca ...

  7. C++11新特性--decltype (转)

    返回值 decltype(表达式) [返回值的类型是表达式参数的类型] 这个可也用来决定表达式的类型,就像Bjarne暗示的一样,如果我们需要去初始化某种类型的变量,auto是最简单的选择,但是如果我 ...

  8. less 写关键帧动画

    @keyframes 关键帧动画写在less里的时候,务必要写在所有的{}之外,不能被{}包裹 甚至务必写在代码的最后 不然报错 Compilation resulted in incorrect C ...

  9. IDEA项目找不到浏览器报错的情况

    调tomcat的时候,它会调用浏览器,浏览器关联如果有问题,肯定是会报错的  要是测试的时候,就是浏览器的问题,重新把浏览器装一遍让他自己重新关联一下应该就行了

  10. 计蒜客31452 Supreme Number(找规律)

    A prime number (or a prime) is a natural number greater than 11 that cannot be formed by multiplying ...