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记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!
Postman 正确使用姿势的更多相关文章
- xpath轴的正确使用姿势
网上看了许多关于轴的介绍,只介绍了语法,而没有明说具体实际中该怎么使用,百思不得其解. 背景--python中使用xpath: ----------------------------------- ...
- 高版本jquery尤其是1.10.2的版本设置input radio设置值的最正确的姿势。
$("input:radio[name="analyshowtype"]").attr("checked",false); $(" ...
- NSnotificationCenter 正确使用姿势, removeObject 探索
最近在做平板的过程中,发现了一些很不规范的代码.偶然修复支付bug的时候,看到其他项目代码,使用通知的地方没有移除,我以为我这个模块的支付闪退是因为他通知没有移除的缘故.而在debug和看了具体的代码 ...
- 微信H5中静默登录及非静默登录的正确使用姿势
在微信中打开网页且需要调用微信登录接口时,微信官方给我们提供了两种登录调用方式:静默登录和非静默登录:但是官方文档中却没有说明在何种情况下使用静默登录,何种情况下使用非静默登录,所以在这里,我想将之前 ...
- Java日志正确使用姿势
前言 关于日志,在大家的印象中都是比较简单的,只须引入了相关依赖包,剩下的事情就是在项目中“尽情”的打印我们需要的信息了.但是往往越简单的东西越容易让我们忽视,从而导致一些不该有的bug发生,作为一名 ...
- MongoDB系列:五、MongoDB Driver使用正确的姿势连接复制集
MongoDB复制集(Replica Set)通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用.但需要注意的时,连接副本集的姿势如果不对,服务高可用将不复存在. 使用复 ...
- 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)
基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势) 前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...
- 玩转java多线程(wait和notifyAll的正确使用姿势)
转载请标明博客的地址 本人博客和github账号,如果对你有帮助请在本人github项目AioSocket上点个star,激励作者对社区贡献 个人博客:https://www.cnblogs.com/ ...
- Gradle的依赖方式——Lombok在Gradle中的正确配置姿势
写过java的都知道,lombok几乎在项目中处于不可或缺的一部分,但是lombok在Gradle的项目中配置并非人人都知道. 很多人在项目依赖中直接这样写 1 compile "org.p ...
随机推荐
- DVWA high 带token暴力破解
一.选择Pitchfork模式.选择要爆破的参数 二.配置Options 找到optiops(设置)把线程设为1 配置Grep=Extract,点添加 点击Refetch response 获取返回的 ...
- 从文件下载视角来理解Web API
一.问题源起 从Web From过来的人应该会比较熟悉以下下载文件的代码: [HttpPost] [Route("Download")] public void Download( ...
- 深入理解Java虚拟机-垃圾收集算法
一.判断对象是否可进行回收 1.引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0的对象就是不可能再被使用的.但是主流的 ...
- 什么是基于Java的Spring注解配置? 给一些注解的例子?
基于Java的配置,允许你在少量的 Java注解 的帮助下,进行你的大部分Spring配置而非通过XML文件. 以@Configuration 注解为例,它用来标记类可以当做一个bean的定义,被Sp ...
- mysql行锁、表锁。乐观锁,悲观锁
锁定用于确保事务完整性和数据库一致性. 锁定可以防止用户读取其他用户正在更改的数据,并防止多个用户同时更改相同的数据. 如果不使用锁定,数据库中的数据可能在逻辑上变得不正确,而针对这些数据进行查询可能 ...
- 设置IE的自动导包器
一丶打开IE设置: 快捷键:Ctrl+Alt+S 二丶将Add unambiguous imports on the fly 选中即可: 三丶设置好后别忘了"OK":
- MOS管驱动电路,看这里就啥都懂了
一.MOS管驱动电路综述在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素.这样的电路也许是可以工作的,但并不是优秀 ...
- Android:Unable to find explicit activity class报错
错误:Unable to find explicit activity class 原因:没有给activity在AndroidManifest.xml中注册 解决办法: 在AndroidManife ...
- uniapp中生成二维码(附代码和插件)
wxqrcode.js文件: https://github.com/Clearlovesky/-js-jq-/tree/master/wxqrcode // 引入二维码库 import QR fro ...
- uni-app中遇到的跳转问题
最近在使用uni-app时,遇到的一个问题,使用uni.navigateTo跳转时在H5端是可以的,在小程序端报 fail webview count limit exceed 这个错,解决办法如下: ...