Postman是一款强大的API接口测试工具,有许多不容易发现的好用的功能,下面简单介绍其中一部分功能。详细内容能够参考文档,官方还有视频教程,很是方便入手。后续本博客会持续提供一些Postman使用的细节技巧,方便你们用Postman进行接口调试。python
Navigating Postmangit
做为一个跨平台的API测试工具,Postman有Win/Mac/Linux客户端,还有浏览器扩展程序。不过官方建议使用客户端,主要有如下优势:github
自带cookie支持:请求可使用同一域名下的cookie;json
内置代理支持:能够用来转发请求,分析请求流量;api
自定义请求头:没必要受限于Chrome中对于请求头的限制;浏览器
内置控制台:在控制台能够查看请求的详细信息cookie
简单来讲,postman 作的事情就是模拟浏览器发送请求,接受响应。使用Postman能够模拟任何浏览器发出的请求,能够自由地构造请求地址,请求方法,请求内容,Cookies等。Postman的响应内容包括完整的响应头,响应时间,响应大小,cookie等内容。数据结构
此外,postman还提供以下方便功能:app
Debugging and logs:能够在控制台对postman的请求进行调试,特别是若是有pre-request或者test script时,使用控制台能够方便debug。原生postman能够经过CMD/CTRL + ALT + C打开控制台。curl
Generate code snippets:将当前请求导出为各类版本的请求代码,好比python,js,curl等,方便用命令行测试;
Proxy:若是本机不能直接访问服务端,能够在Settings-Proxy-Using custom/system proxy设置代理;
Capturing HTTP requests:有时候用手机访问服务端时,咱们可能须要借助fiddler来查看HTTP请求。postman也能够作相同的工做,只须要将postman做为代理转发HTTP请求便可。
Certificates: 若是服务端要验证客户端证书,能够在Settings-Certificates-Add Certificate配置证书;
Environments and globals
咱们在构造API请求时,常常会在多个地方使用相同的值,好比相同的请求域名,一些固定的参数值。这时候若是使用变量来保存相应的值,而后在须要使用该值的地方用变量来代替会带来很多好处,好比要改变这些值,只用在变量的定义地方做出改动便可。
[图片上传失败...(image-bae891-1511323262976)]Postman是一款强大的API接口测试工具,有许多不容易发现的好用的功能,下面简单介绍其中一部分功能。详细内容能够参考文档,官方还有视频教程,很是方便入手。后续本博客会持续提供一些Postman使用的细节技巧,方便你们用Postman进行接口调试。
[站外图片上传中...(image-8fc151-1511323254532)]
做为一个跨平台的API测试工具,Postman有Win/Mac/Linux客户端,还有浏览器扩展程序。不过官方建议使用客户端,主要有如下优势:
自带cookie支持:请求可使用同一域名下的cookie;
内置代理支持:能够用来转发请求,分析请求流量;
自定义请求头:没必要受限于Chrome中对于请求头的限制;
内置控制台:在控制台能够查看请求的详细信息
简单来讲,postman 作的事情就是模拟浏览器发送请求,接受响应。使用Postman能够模拟任何浏览器发出的请求,能够自由地构造请求地址,请求方法,请求内容,Cookies等。Postman的响应内容包括完整的响应头,响应时间,响应大小,cookie等内容。
此外,postman还提供以下方便功能:
Debugging and logs:能够在控制台对postman的请求进行调试,特别是若是有pre-request或者test script时,使用控制台能够方便debug。原生postman能够经过CMD/CTRL + ALT + C打开控制台。
Generate code snippets:将当前请求导出为各类版本的请求代码,好比python,js,curl等,方便用命令行测试;
Proxy:若是本机不能直接访问服务端,能够在Settings-Proxy-Using custom/system proxy设置代理;
Capturing HTTP requests:有时候用手机访问服务端时,咱们可能须要借助fiddler来查看HTTP请求。postman也能够作相同的工做,只须要将postman做为代理转发HTTP请求便可。
Certificates: 若是服务端要验证客户端证书,能够在Settings-Certificates-Add Certificate配置证书;
Environments and globals
咱们在构造API请求时,常常会在多个地方使用相同的值,好比相同的请求域名,一些固定的参数值。这时候若是使用变量来保存相应的值,而后在须要使用该值的地方用变量来代替会带来很多好处,好比要改变这些值,只用在变量的定义地方做出改动便可。
[站外图片上传中...(image-b86277-1511323254532)]
Postman定义了4类变量,极大地方便了构造请求以及对结果进行测试:
Global: 全局变量,postman中全部请求均可以访问或者修改;
Environment: 构造请求时能够选择使用某个Environment,这样就能够访问或者修改该Environment下的全部变量;
Local: 脚本中定义的变量,只对脚本的当前做用域有用;
Data: 只有在使用Collection Runner的时候,能够经过导入 Data Files 来构造当前测试集中用到的数据。
就像程序中的变量同样,这里的变量也是有优先级,若是在Environment中有和Global重名的变量,会优先使用Environment中变量。上面4个变量的优先级由上到下依次减弱。
在postman中使用变量有着不少意想不到的好处,好比:
Collection Runner中经过Data file来构造不一样的测试数据,方便快速进行大量不一样请求数据的测试;
能够在不一样请求中传递值,好比在一个请求中产生流水号,将其设置为某个变量的值,下一个请求便可使用该变量值。
Scripts
Postman 内置了Node.js的运行时环境,能够执行JS脚本。这样就带来了不少激动人心的好处,好比构建动态请求参数,编写强大的测试用例等。Postman中的Scripts分为2类:
pre-request script: 在发送请求以前执行的脚本,通常用来构建请求参数;
test script: 在获取相应以后执行的脚本,通常用来作测试。不过须要注意,测试脚本运行在Sandbox环境,内置了许多JS库支持,方便进行测试。
[站外图片上传中...(image-d76aac-1511323254532)]
Postman的Sandbox环境十分强大,好比:
经过提供postman.setNextRequest("request_name")实现,能够很方便地在 Collection 中控制请求的执行路径;
提供了一系列内置接口,方便对环境变量,请求或者相应内容进行访问;
提供了 CryptoJS 库,能够方便地进行加解密操做;
提供了 tv4 库,能够对 Json Scheme进行测试;JSON Schema 定义了如何基于 JSON 格式描述 JSON 数据结构的规范,进而提供数据校验、文档生成和接口数据交互控制等一系列能力。
Collections runs
Collections 是一系列请求的集合,postman经过collection来支持构建请求工做流,自动化测试,请求的导入导出,持续集成等功能。Collection 支持如下功能:
Sharing collections:能够将Collection中的请求导出分享给其余人;
Data formats:Postman能够导出环境变量,甚至能够将请求和环境变量等一块儿打包为一个Json,方便迁移全部的请求数据。
Collection的一大用处就是一次执行其中全部的请求,这就是所谓的collection run。
collection runner
在执行collection run时,有不少配置选项,主要以下:
Using environments in collection runs: 能够指定一个 Environment,这样collection中的请求可使用其中的变量;
Working with data files: 能够导入一个Data File,里面存放测试中用到的Data变量。能够存放不少不一样的Data变量,这样迭代跑屡次Collection时,每次使用不一样的数据;
Running multiple iterations: 能够配置迭代的运行Collection中的请求,对接口的稳定性进行测试。此外配合Data files,也能够对接口的正确性进行测试;
Building workflows:默认状况下会顺序执行Collection中的请求,不过能够经过setNextRequest()来更改请求的执行流程。
Debugging a collection run: Collection中的请求执行后,会有可视化的执行结果展现,能够方便进行调试,此外,也能够经过控制台来进行调试。
Sharing a collection run: 整个Collection Run也是能够导出,能够在其余平台进行运行;
Command line integration with Newman: 导出Collection Run后,能够在命令行使用 newman 运行。
Integration with Travis CI: 能够将 newman 和 Travis CI集成,配置好持续性集成,指定自动运行测试用例的时机。
其余功能
1. 文件上传
图形界面端,Collection 中的请求不支持POST文件上传,不过在导出Collection后,能够在json文件中配置文件路径,而后使用 newman 进行文件上传。详细能够参考Postman官方博客:Using Newman to run collections with file-post requests
不过文件上传时必须指定文件路径,不能用变量代替,也不能经过Data Files来设置不一样的文件,不是很方便。因此我给官方提了Issue,目前该功能已经归入 Feature,有望在后续版本中实现该功能。这里就不得不赞一下Postman的社区支持了,基本上有任何问题,只要在官方Issue上提出,基本很快就会有Postman的工做人员提供支持。