Postman是一款可以方便我们调试、测试API的工具,甚至我们可以通过Postman与Newman结合,还可以批量运行API达到API自动化测试的目的。下面都是以当前最新的V7.0.9为例演示。
Postman提供了多窗口,多标签的界面。扣除菜单外,大概可以分为4个区域,HeaderBar、SideBar、Buider、FooterBar。
Postman侧边栏Collections主要用于管理请求和集合。History主要用于查看历史记录。
Postman尽量减少必须更改的设置数量,因此我们建立了一些默认设置。但是,考虑到用例的多样性,如果您需要进行调整,那么如下:
以豆瓣搜索图书API为例
这个接口的请求方式为get,postman默认为就为get,所以在url栏输入被测接口地址
在接口文档中,q与tag其中的一个是必填项,所以这里需要配置参数,点击url右侧的params,并输入参数
response还可以以不同的方式查看,并且还可以看到cookies,headers信息
以Postman自带的接口为例
选取请求的方法为POST,并输入接口地址,因为post请求大多是json形式,所以可以打开Body选项,并选择JSON(application/json)形式,输入请求的json,同样其余的操作跟GET接口一样。
编写的API往往需要在多个环境下执行,而Postman提供了两种类型的变量:环境变量和全局变量,从而很好的解决了这个问题。同时变量还常用于关联接口间的参数传递。
环境变量有效范围仅仅在于当前集合可用,全局变量对所有的集合都可用。
api可能需要在不同的环境中运行,所以api请求的服务器地址不能写死,希望是可以配置的,创建环境变量有多种方式。
pm.environment.set("variable_key","variable_value");
2.2在某个请求发起之后创建:
在Tests标签里面添加如下
全局变量
全部变量跟环境变量的创建类似,也可以通过手工预先创建或者通过代码去创建。
pm.globals.set("variable_key","variable_value");
2.2在请求发起后创建
在Tests标签里面添加如下:
在默认情况下,设置环境变量和全局变量一个key(VARIABLE)对应两个value(INITIALVALUE和CURRENTVALUE),那这两个有啥区别?
在需要的地方加上{{变量名}}便可
PostMan除了提供环境变量和全局变量外,还提供了三种随机数。
{{$guid}}
:添加一个V4风格GUID
{{$timestamp}}
{{$randomInt}}
:添加0和1000之间的随机整数
Postman提供了两种类型代理。一种是下图中的Client角色,但Postman设置了代理,这样Postman发起的请求都会先经过Proxy,再到Server。还一种是下图的Proxy角色,Postman拦截client发过来的请求。
Filters用于过滤,URLContains用于设置要抓取的URL,UrlDoesnotcontain用于过滤不想抓取到的信息,Methods用于设置抓取的请求方式。
3.打开浏览器,正常请求,会发现这时postman的history也会捕获到请求。
Postman既然可以作为代理,同样的也可以抓取移动端IOS、Andorid的请求,这块的设置这里就不说明,跟fiddler类似,同一个局域网内设置wifi代理。