postman 是一个接口测试和 http 请求的神器,非常好用。
官方 github 地址: postman inc. · github
postman 的优点:
- 支持各种的请求类型: get、post、put、patch、delete 等
- 支持在线存储数据,通过账号就可以进行迁移数据
- 很方便的支持请求 header 和请求参数的设置
- 支持不同的认证机制,包括 basic auth,digest auth,oauth 1.0,oauth 2.0 等
- 响应数据是自动按照语法格式高亮的,包括 html,json 和 xml
安装
postman 可以单独作为一个应用安装,也可以作为 chrome 的一个插件安装。
- chrome 插件安装, postman 插件地址
- 单独应用安装下载
下面主要介绍下载安装独立版本app 软件的 postman 的过程:
去主页postman 官网找到:postman | apps
去下载自己平台的版本:
- mac
- windows(x86/x64)
- linux(x86/x64) 即可。
快速入门,总体使用方略
安装成功后,打开软件。
新建接口
对应的request:new -> request
或,在右边的 tab 页面中点击加号+:
即可看到新建的 tab 页:
设置 http 请求的方法
设置 http 的 method 方法和输入 api 的地址
设置相关请求头信息
设置相关 get 或 post 等的参数
发送请求
都填写好之后,点击 send 去发送请求 request:
查看响应 response的信息
然后可以重复上述修改 request 的参数,点击 send 去发送请求的过程,以便调试到 api 接口正常工作为止。
保存接口配置
待整个接口都调试完毕后,记得点击 save 去保存接口信息:
去保存当前 api 接口,然后需要填写相关的接口信息:
- request name: 请求的名字
- 我一般习惯用保存为 接口的最后的字段名,比如
http://{% raw %}{{% endraw %}{server_address}}/ucows/login/login
中的/login/login
- 我一般习惯用保存为 接口的最后的字段名,比如
- request description: 接口的描述
可选
最好写上该接口的要实现的基本功能和相关注意事项- 支持 markdown 语法
- select a collection or folder to save: 选择要保存到哪个分组(或文件夹)
- 往往保存到某个 api 接口到所属的该项目名的分组
填写好内容,选择好分组,再点击保存:
此时,tab 的右上角的黄色点(表示没有保存)消失了,表示已保存。
且对应的分组中可以看到对应的接口了:
- 直接点击 save 去保存,只能保存 api 本身(的 request 请求),不会保存 response 的数据
- 想要保存 response 数据,需要用后面要介绍的 多个 example
request 的多参数操作详解
自动解析多个参数 params
比如,对于一个 get 的请求的 url 是: http://openapi.youdao.com/api?q=纠删码(ec)的学习&from=zh_chs&to=en&appkey=152e0e77723a0026&salt=4&sign=6be15f1868019ad71c442e6399db1fe4
对应着其实是?key=value
形式中包含多个 http 的 get 的 query string=query parameters
postman 可以自动帮我们解析出对应参数,可以点击 params:
看到展开的多个参数:
如此就可以很方便的修改,增删对应的参数了。
临时禁用参数
且还支持,在不删除某参数的情况下,如果想要暂时不传参数,可以方便的通过不勾选的方式去实现:
批量编辑 get 的多个参数
当然,如果想要批量的编辑参数,可以点击右上角的bulk edit,去实现批量编辑。
接口描述与自动生成文档
api 的描述中,也支持 markdown,官方的接口说明文档:intro to api documentation。
所以,可以很方便的添加有条理的接口描述,尤其是参数解释了:
描述支持 markdown 语法
而对于要解释的参数,可以通过之前的param -> bulk edit
的内容:
拷贝过来,再继续去编辑:
以及添加更多解释信息:
点击 update 后,即可保存。
发布接口并生成 markdown 的描述文件
去发布后:
对应的效果:有道翻译
response 深入
response 数据显示模式
postman 对于返回的 response 数据,支持三种显示模式。
默认
格式化后的 pretty 模式
- raw 原始模式
点击raw,可以查看到返回的没有格式化之前的原始数据:
- preview 预览模式
以及 preview,是对应 raw 原始格式的预览模式:
preview 这种模式的显示效果,好像是对于返回的是 html 页面这类,才比较有效果。
response 的 cookies
很多时候普通的 api 调用,倒是没有 cookie 的:
response 的 headers 头信息
举例,此处返回的是有 headers 头信息的:
可以从中看到服务器是 nginx 的。
保存多个 example
之前想要实现,让导出的 api 文档中能看到接口返回的 response 数据。后来发现是example这个功能去实现此效果的。
如何添加 example
继续点击save example:
保存后,就能看到example(1)了:
单个 example 在导出的 api 文档中的效果
然后再去导出文档,导出文档中的确能看到返回数据的例子:
多个 example 在导出的 api 文档中的效果
其他好用的功能及工具
分组 collection
在刚开始一个项目时,为了后续便于组织和管理,把同属该项目的多个 api,放在一组里
所以要先去新建一个 collection: new -> collection
使用了段时间后,建了多个分组的效果:
单个分组展开后的效果:
历史记录 history
postman 支持 history 历史记录,显示出最近使用过的 api:
用环境变量实现多服务器版本
在测试 api 期间,往往存在多种环境,对应 ip 地址(或域名也不同)
比如:
- prod:
http://116.62.25.57/ucows
- 用于开发完成发布到生产环境
- dev:
http://123.206.191.125/ucows
- 用于开发期间的线上的 development 的测试环境
- localtest:
http://192.168.0.140:80/ucows
- 用于开发期间配合后台开发人员的本地局域网内的本地环境,用于联合调试 api 接口
而在测试 api 期间,往往需要手动去修改 api 的地址:
效率比较低,且地址更换后之前地址就没法保留了。
另外,且根据不同 ip 地址(或者域名)也不容易识别是哪套环境。
postman 支持用 environment 环境变量去实现多服务器版本
后来发现 postman 中,有 environment 和 global variable,用于解决这个问题,实现不同环境的管理:
- production 生产环境
- development 开发环境
- local 本地局域网环境
或者:
输入 key 和 value:
点击 add 后:
- url
- url params
- header values
- form-data/url-encoded values
- raw body content
- helper fields
- 写 test 测试脚本中
- 通过 postman 的接口,获取或设置环境变量的值。
此处把之前的在 url 中的 ip 地址(或域名)换成环境变量:
鼠标移动到环境变量上,可以动态显示出具体的值:
再去添加另外一个开发环境:
则可添加完 2 个环境变量,表示两个服务器地址,两个版本:
然后就可以切换不同服务器环境了:
可以看到,同样的变量 server_address,在切换后对应 ip 地址就变成希望的开发环境的 ip 了:
顺带也去看看,导出为 api 文档后,带了这种 environment 的变量的接口,文档长什么样子:
发现是在发布之前,需要选择对应的环境的:
发布后的文档,可以看到所选环境和对应服务器的 ip 的:
当然发布文档后,也可以实时切换环境:
当更换服务器时,直接修改变量的 ip 地址:
即可实时更新,当鼠标移动到变量上即可看到效果:
代码生成工具
对于当前的请求,还可以通过点击 code
去查看对应的符合 http 协议的原始的内容:
各种语言的示例代码code generation tools
比如:
- swift 语言
- java 语言
- 其他各种语言 还支持其他各种语言:
目前支持的语言有:
- http
- c (libcurl)
- curl
- c#(restsharp)
- go
- java
- ok http
- unirest
- javascript
- nodejs
- objective-c(nsurl)
- ocaml(cohttp)
- php
- python
- ruby(net::http)
- shell
- swift(nsurl)
代码生成工具的好处是:在写调用此 api 的代码时,就可以参考对应代码,甚至拷贝粘贴对应代码,即可。
测试接口
选中某个分组后,点击 runner
选中某个分组后点击 run
即可看到测试结果:
关于此功能的介绍可参考postman 官网的git 图
mockserver
直接参考官网。
功能界面
多 tab 分页
postman 支持多 tab 页,于此对比之前有些 api 调试工具就不支持多 tab 页,比如advanced rest client
多 tab 的好处:
方便在一个 tab 中测试,得到结果后,复制粘贴到另外的 tab 中,继续测试其它接口
比如此处 tab1 中,测试了获取验证码接口后,拷贝手机号和验证码,粘贴到 tab2 中,继续测试注册的接口
界面查看模式
postman 的默认的 request 和 response 是上下布局:
此处点击右下角的two pane view
,就变成左右的了:
多颜色主题
posman 支持两种主题:
- 深色主题
当前是深色主题,效果很不错:
- 浅色主题
可以切换到 浅色主题:
api 文档生成
在服务端后台的开发人员测试好了接口后,打算把接口的各种信息发给使用此 api 的前端的移动端人员时,往往会遇到:
要么是用复制粘贴 -> 格式不友好 要么是用 postman 中截图 -> 方便看,但是不方便获得 api 接口和字段等文字内容 要么是用 postman 中导出为 json -> json 文件中信息太繁杂,不利于找到所需要的信息 要么是用文档,比如去编写 markdown 文档 -> 但后续 api 的变更需要实时同步修改文档,也会很麻烦 这都会导致别人查看和使用 api 时很不方便。
-> 对此,postman 提供了发布 api
预览和发布 api 文档 下面介绍 postman 中如何预览和发布 api 文档。
简要概述步骤
- collection
- 鼠标移动到某个 collection,点击 三个点
- publish docs
- publish
- 得到 public url
- 别人打开这个 public url,即可查看 api 文档
预览 api 文档
点击分组右边的大于号>
如果只是预览,比如后台开发员自己查看 api 文档的话,可以选择:view in web
view in web 后,有 publish 的选项(见后面的截图)
view in web 后,会打开预览页面:
比如:
奶牛云
https://documenter.getpostman.com/collection/view/669382-42273840-6237-dbae-5455-26b16f45e2b9
而右边的示例代码,也可以从默认的 curl 换成其他的:
发布 api 文档
如果想要让其他人能看到这个文档,则点击 publish:
然后会打开类似于这样的地址:
postman documenter
https://documenter.getpostman.com/collection/publish?meta=y29sbgvjdglvbl9pzd00mji3mzg0mc02mjm3lwriywutntq1ns0ynmixnmy0nwuyyjkmb3duzxi9njy5mzgyjmnvbgxly3rpb25fbmftzt0lrtulqtulqjylrtclodklouilrtqlqkelote=
点击 publish 后,可以生成对应的公开的网页地址:
打开 api 接口文档地址:
https://documenter.getpostman.com/view/669382/collection/77fd4rm
即可看到(和前面预览一样效果的 api 文档了):
如此,别人即可查看对应的 api 接口文档。
已发布的 api 文档支持自动更新
后续如果自己的 api 接口修改后:
比如:
(后来发现,不用再去进入此预览和发布的流程,去更新文档,而是 postman 自动支持)
别人去刷新该文档的页面:
https://documenter.getpostman.com/view/669382/collection/77fd4rm
即可看到更新后的内容:
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
发表评论