Postman 入门
- 官网: https://www.getpostman.com
- 可能是目前最好用的web接口调试工具
- 无需注册(注册后可多终端同步用例)
- 免费(每年付费$60可用云服务,30天免费试用)
- 保存历史记录
- 支持录制请求
- 基于Chrome的V8引擎,支持JS脚本(基本支持ES6,浏览器相关对象和API和
require()
import
等除外) - 同样的代码和用例可用于自动化接口测试,见它的命令行版本Newman介绍
- 能生成各种语言的HTTP请求代码模板
- 能生成比较好看的在线API文档
- 官网提供简易版持续集成环境(只支持公网IP的请求)
限制:
- JS代码在沙盒里运行,需要读写文件和数据库的场景请用JMeter
- 非HTTP协议、需要引入第三方库、需要重用大量代码、需要……凡是稍微复杂点的请用JMeter
安装
https://www.getpostman.com/apps
建议选择Mac/Windows app,比起Chrome app,下载不需要翻墙,功能更强大
基本使用
教程
[API 测试]postman, 2016-02-29
API自动化测试利器——Postman, 2015-09-26(教程里的版本比较旧了,但还是讲得不错)
How to write powerful automated API tests with Postman, Newman and Jenkins, 2015-09-03
How to write automated tests for APIs using Postman – Part 1, 2014-03-07
How to write automated tests for APIs with Postman – Part 2, 2014-04-17
Writing automated tests with Postman – Part 3, 2014-05-09
- 有些早期文章会提到Jetpack,曾经收10美元,现在是Postman左上角的Runner,可以批量执行用例
示例
Making the perfect HTTP request using Postman Echo, 2015-11-13
Conditional Workflows in Postman, 2016-03-23
Generate Spotify Playlists using a Postman Collection, 2016-11-09
录制接口
Capturing requests (native app)
Using Postman Proxy to Capture and Inspect API Calls from iOS or Android Devices,2016-06-26
接口调用方希望测试业务逻辑时,用不着Fiddler/Charles抓包再往里面一个个填这么麻烦
开启Postman的代理(默认5555端口),浏览器/手机设好对应的IP和端口就行,比JMeter的自带的代理方便 : )
支持正则表达式过滤URL
可以设置保存的集合,建议保存到历史记录,因为会录到不想要的东西,只有历史记录有一键清空
环境变量
分为 environment 和 global 2种
2种环境变量分别存到内建的environment
、globals
对象(字典)
变量名作为key,变量的值作为value(一律存储为字符串)
通过菜单设置,或在用例里通过代码设置且经Postman运行过的环境变量默认存到IndexedDB,设了就一直在,除非你把它删了
(这话很拗口,看到下文数据文件的部分就知道了)
environment
满足99%的需要,平时只用它就够了
- 作用域为整个集合
- 能创建多个environment文件,方便切换不同测试环境
在地址栏、header、请求参数、外部数据文件里,用 {{变量名}}
获取环境变量的值
如:{{URL}}/register
还有以下内建变量,适合一次性使用:
global
跟environment几乎完全一样,也是{{}}
调用,除了:
- 只有1个global文件
- 菜单藏得较深,在生成的API文档里也不解析,决定了它不适合做参数化
- environment和global同名时,优先用environment
global只建议用在1种场景:定义公共函数
1 |
|
Writing a behaviour driven API testing environment within Postman
在官方给出更方便的重用代码的方法前,这是除了复制粘贴外唯一的重用方法
如果不做自动化测试,且断言写得很简单,不建议这么搞
如果不幸跳了自动化的坑,通常一个项目会有100~200个接口要做自动化测试,要仔细比较哪种方法成本更高
定义函数前要仔细考虑好,万一中途要改参数和返回值,已经写好的n份也得改……
建议定义的公共函数不超过个位数,并保留好没压缩的版本,不然别人没法接手
脚本
Testing Sandbox 内建对象、方法、变量和可用的第三方库介绍
Testing examples
Extracting data from responses and chaining requests, 2014-10-27
JavaScript的语法不再赘述,上例子
1 |
|
1 |
|
1 |
|
jQuery replaced by CheerioJS in Postman Sandbox, 2016-08-30
其他请参考文档和界面右边的代码模板
PS:
Postman毕竟不是IDE,只有部分语法高亮和提示,没方法和参数的提示,全靠笔记和查文档
数据文件
Using data variables to run a collection multiple times
Using CSV and JSON data files in the Postman Collection Runner, 2014-10-28
Using variables inside Postman and Collection Runner, 2014-02-20
在Collection Runner或命令行的Newman里可以加载数据文件,适合做数据驱动测试(例如同一接口不同的参数组合)
1 |
|
PS:
在用例里通过代码设置的环境变量,如果在Runner或Newman里运行,默认不保存,跑完用例就消失
调试
cmd + alt + c
(windows ctrl + alt + c
)打开Postman控制台,可以看请求和响应内容
console.log()
打印
mock
Using a mocking service to create Postman Collections,2016-01-26
收费功能
目前管理员不能解散自己创建的团队,不能删别人创建的环境变量模板,几乎残废
团队协作
New, More Useful Activity Feed in Postman Collections, 2016-10-27
Announcing: Environment Sharing!, 2016-03-10
发布
Call for Partners: The Run in Postman Button for API documentation
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!