Postman是一款强大的API接口测试工具,有许多不容易发现的好用的功能,下面简单介绍其中一部分功能。详细内容可以参考文档,官方还有视频教程,非常方便入手。后续本博客会持续提供一些Postman使用的细节技巧,方便大家用Postman进行接口调试。

Navigating Postman

作为一个跨平台的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-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的工作人员提供支持。

Postman 高级用法指南的更多相关文章

  1. 你应该学会的接口调试神器——Postman高级用法

    postman这个神器相信大家都用过,程序员作为非专业的测试人员,非常需要这么一款简单轻量级的restful测试工具,但是不知道你是否知道,postman的强大之处不只是测试一下接口,还有其他非常赞的 ...

  2. Go template高级用法、深入详解、手册、指南、剖析

    入门示例 以下为test.html文件的内容,里面使用了一个template语法{{.}}. <!DOCTYPE html> <html> <head> <m ...

  3. SASS用法指南-转

    作者: 阮一峰  日期: 2012年6月19日  原文地址:http://www.ruanyifeng.com/blog/2012/06/sass.html 艹,没想到sass 2012年就有了.现在 ...

  4. SQL[连载3]sql的一些高级用法

    SQL[连载3]sql的一些高级用法 SQL 高级教程 SQL SELECT TOP SQL SELECT TOP 子句 SELECT TOP 子句用于规定要返回的记录的数目. SELECT TOP ...

  5. CSS预处理器之SASS用法指南

    CSS预处理器之SASS用法指南 一.什么是SASS Sass是是一种基于ruby编写的CSS预处理器,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 诞生于200 ...

  6. [转]SASS用法指南

    [转]SASS用法指南 转自阮一峰 SASS用法指南 一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 本文总结了 ...

  7. Python之Requests的高级用法

    # 高级用法 本篇文档涵盖了Requests的一些更加高级的特性. ## 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个Session实例发出的所有请求之间保持cookies. 会话对象 ...

  8. Requests库的文档高级用法

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  9. [转帖]curl 的用法指南

    curl 的用法指南   作者: 阮一峰 日期: 2019年9月 5日 感谢 腾讯课堂NEXT学院 赞助本站,腾讯官方的前端课程 免费试学. http://www.ruanyifeng.com/blo ...

随机推荐

  1. master分支合并

    一.Sourcetree简单介绍 通过Git可以进行对项目的版本管理,但是如果直接使用Git的软件会比较麻烦,因为是通过一条一条命令进行操作的.  Sourcetree则可以与Git结合,提供图形界面 ...

  2. careercup-扩展性和存储限制10.4

    题目 有一个数组,里面的数在1到N之间,N最大为32000.数组中可能有重复的元素(即有的元素 存在2份),你并不知道N是多少.给你4KB的内存,你怎么把数组中重复的元素打印出来. 解答 我们有4KB ...

  3. JQuery给一个元素绑定两次点击事件(第二次点击事件)

    由于项目的要求,需要给复选框设置样式,初始样式:,第一次点击的时候显示,第二次点击时候需要改变该样式:. 设计思路: 当点击次数为奇数时显示带有颜色的图片 当点击次数为偶数时显示没有颜色的图片 下边是 ...

  4. vector 定义的二维数组的遍历

    之前我们分享了STL的一些容器,再介绍vector中只介绍了二维的vector的定义并没有说二维的vector怎么遍历,那么我们今天就来看下二维的vector怎么遍历 看下面的代码吧. #includ ...

  5. 小K的农场(差分约束,spfa)

    题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了c个单位的作 ...

  6. .Net core 还原Nuget包失败的解决方法

    今天是2018最后一天了,真是神奇的一年啊,写个博客压压惊,来年继续加油吧..... 正文: 当我们打开.net core 项目时候,发现输出提示nuget包还原失败,这个时候首先要考虑.Net Co ...

  7. app后端api设计【转】

    博客:https://blog.csdn.net/newjueqi/article/details/44037011 app和后端的交互,一般都是通过后端提供的api实现.api的设计,估计很多刚进入 ...

  8. idea 聚合项目里如果子项目引用不到父类的maven应用

    idea 聚合项目里如果子项目引用不到父类的maven应用,可以点看子类pom.xml文件,然后右键---->maven----->Reimport即可 点击右边子项目的maven---& ...

  9. Spring security学习笔记(二)

    对比两种承载认证信息的方式: session vs token token验证方案: session验证方案: session即会话是将用户信息保存在服务端,根据请求携带的session_id,从服务 ...

  10. spring-mvc高级技术

    Spring MVC高级技术包括但不限于web.xml配置.异常处理.跨重定向请求传递数据 1.web.xml文件的配置 <!DOCTYPE web-app PUBLIC "-//Su ...