Postman使用完全指南
时间:2022-07-23
本文章向大家介绍Postman使用完全指南,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. postman的环境变量
1.1. 全局变量
可以看到我的请求url中有个{{domain}},这是什么东西呢?这其实是环境变量,我们可以在如下设置环境变量
1.2. 测试环境和生产环境设置不同的环境变量
这里设置的变量为全局变量,除此之外我们还可以根据不同的环境设置不同的变量,比如测试环境和生产环境
接下来我们就可以使用这个环境的环境变量
在报文中通过{{username}}取值
1.3. 设置每一个请求的局部变量
除了上面的两种方式外,我们还可以设置每一个请求的局部变量
通过var定义一个变量,通过setGlobalVariable设置局部变量,如下所示
1.4. Postman的内置环境变量
除了自己设置的环境的变量外,Postman还内置了5个环境变量
{{$guid}} //生成GUID
{{$timestamp}} //当前时间戳
{{$microTimestamp}} //当前毫秒时间戳
{{$randomInt}} //0-1000的随机整数
{{$randomFloat}} //0-1000的随机浮点数;
2. 如何依赖前一个接口的返回值
有时候比如我们有个查询接口,该接口需要先登录,拿到登录后的token,然后放到查询接口的请求头中查询接口才能查询,postman应该怎么设置呢?
第一步
创建一个集合
第二步
在登录接口的Tests中编写如下代码
var jsonData = pm.response.json();
var token = jsonData.data.token;
pm.environment.set("token",token);
该代码的意思为获取返回的json值并且把他设置到环境变量中,除了environment.set设置环境变量,还有如下方法
pm.environment.get("variable_key"); //获取环境变量
pm.environment.unset("variable_key"); //清除一个环境变量
pm.globals.set("variable_key", "variable_value"); //设置一个全局变量
pm.globals.get("variable_key"); //获取一个全局变量
pm.globals.unset("variable_key"); //清除全局变量
pm.variables.get("variable_key"); //获取变量,该函数在全局变量和活动环境中搜索变量
第三步
在查询接口的请求头中获取这个环境变量
3. Postman断言
断言,就是结果和预期对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。把如下代码写在Tests中
检查响应主体是否包含字符串
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
检查响应主体是否等于一个字符串
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
检查JSON值
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
内容类型存在
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
响应时间小于200ms
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
状态码是200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
4. Postman的其他比较有用的功能
加密并进行base64编码
var hash = CryptoJS.HmacSHA1(s,key);
postman.setGlobalVariable("checksum", hash.toString(CryptoJS.enc.Base64));
base64解码
var intermediate = CryptoJS.enc.Base64.parse(base64content);
发送异步请求,该功能既可以作为预先请求,也可以作为测试脚本使用
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
console.log(response.json());
});
4. 写在最后
以上设置完了记得按ctrl+s保存,不然不生效的。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 第010课 掌握Jz2440_ARM芯片时钟体系
- 第011课 Jz2400串口(UART)的使用
- 面试官看完我手写的单例直接惊呆了!
- 安利几个JS开发小技巧
- 深入理解Pod(一)
- [902]python list排序
- 第012课 内存控制器与SDRAM
- 一篇文章教给你Bypass学习基础
- 第013课 S3c2440代码重定位详解
- [901]sqlite数据库的导出与导入
- 【React】730- 从 loading 的 9 种写法谈 React 业务开发
- 第014课 Jz2400_ARM异常与中断体系详解
- 作为一个程序员居然还没有属于自己的一个博客?
- 第015课 NOR Flash操作原理及裸机程序分析
- Redash 二开 - 前端环境搭建