postman 简介
在我们日常的测试工作中,接口测试其实很普遍,无论你是做什么测试,功能、自动化亦或是性能测试,都会或多或少接触到接口。在测试过程中,很多场景都需要测试人员针对某个接口进行测试,并针对不同类型的接口设计不同的测试方案,这时如果有一款功能强大的接口测试工具,就快速完成繁琐工作,大幅提升工作效率。
Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。
用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。postman 网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。
postman 亮点
1.门槛低,上手快,脚本语言是JS
2.自带各种代码模块、跨平台
3.免费版就已经非常强大了,支持http,https协议
4.有命令行版本newman,方便放在服务器上运行
5.支持抓包,保存历史记录,多终端同步用例
6.支持读取数据文件json,csv,支持json Schema校验
下载 postman
1> 、postman下载地址:
2>. Postman官网下载地址:
https://www.getpostman.com/apps
安装 postman
注册用户
启动postman之后,提示要注册和登录
主界面 1
主界面
知识点
1、全局变量 & 环境变量
2、上一个接口的返回值作为下一个接口的参数 JSON.parse(responseBody)
3、requesttest & test(response)断言
4、列表嵌套字典
5、列表转换成字符串stringify(),字符串切割split()
6、时间戳生成(new Date()).getTime()
7、鉴权token登录 bearer[空格]tokenXXXXXXXXXXXXXXXXXXXXXXXX
8、postman 控制台日志console.log()
使用
1、创建一个文件夹 collections,将本次的接口全部保存到文件夹中
创建环境变量生产环境,用来存储url,username,password等参数,后续参数变化可直接修改环境变量即可,不需要到登录接口修改参数
如果有测试环境和生产环境的小伙伴,可直接创建2个环境变量,到时候直接切换就可以更改环境了。
如下图,点击设置icon添加环境或者全局变量,点击add/update
全局变量:整个postman生效
环境变量:当前文件夹生效
作用范围全局>环境,使用方式{{变量名称}}
五、Postman执行接口测试
请求页签
Params : get请求传参
authorization:鉴权
headers:请求头
Body : post请求传参
form-data :既可以传键值对参数也可以传文件。
x-www-from-urlencoded:只能够传键值对参数
raw : json , text , xml , html, javascript
binary :把文件以二进制的方式传参。
pre-request-script:请求之前的脚本。
tests:请求之后的断言。
cookies :用于管理cookie信息。
响应页签:
Body:接口返回的数据。
Pretty : 以Json , html,XML....不同的格式查看返回的数据。
Raw:以文本的方式查看返回的数据。
PreView.以网页的方式查看返回的数据。
cookies:响应的Cookie信息
Headers:响应头
Test Results"断言的结果。200状态码
OK状态信息
681MS响应的时间
接口关联
pm.test("获取task_id", function () { var jsonData = pm.response.json(); pm.globals.set("task_id", jsonData.task_id); });
var data = JSON.parse(responseBody); pm.environment.set("token", data.token);
内置动态参数以及自定义的动态参数
常用内置动态参数
变量名称 | 描述 | 例子 |
---|---|---|
$guid |
一个uuid-v4 风格GUID |
"611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4" |
"3a721b7f-7dc9-4c45-9777-516942b98e0d" |
||
"22eca807-006b-47df-9511-e92e37f5071a" |
||
$timestamp |
当前UNIX时间戳(以秒为单位) |
1562757107 ,1562757108 ,1562757109
|
$isoTimestamp |
当前ISO时间戳(UTC为零) | 2020-06-09T21:10:36.177Z |
2019-10-21T06:05:50.000Z |
||
2019-07-29T18:29:00.000Z |
||
$randomUUID |
随机的36个字符的UUID | "6929bb52-3ab2-448a-9796-d6480ecad36b" |
"53151b27-034f-45a0-9f0a-d7b6075b67d0" |
||
"727131a2-2717-44ad-ab02-006587e947dc" |
REF
https://blog.csdn.net/fxbin123/article/details/80428216
http://www.51testing.com/zhuanti/postman.htm
https://segmentfault.com/a/1190000019053034
https://blog.csdn.net/gozhuyinglong/article/details/109488295 (内置动态参数)
https://www.jianshu.com/p/46d44c09d94c
视频:
https://www.bilibili.com/video/BV11K4y1J7sh?p=13&spm_id_from=pageDriver