Postman介绍
目前测试API接口 方法很多,如使用fiddler的发送get,post的功能校验,缺点:测试一遍之后,在回归测试时需要手动在执行一遍,非常耗时,有人建议使用python的request模块进行api接口测试,方法是好,但是在规定时间里没有时间去做脚本。如果完成这个脚本,至少要一轮手工测试,从而才能了解到期望返回值是什么样的。有没有一种工具,手动执行完成后,不需要写太多代码,立马可Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件。其主要功能包括:
模拟各种HTTP requests
从常用的GET、POST到RESTful的PUT、DELETE …等等。 甚至还可以发送文件、送出额外的header。
Collection功能(测试集合)
Collection是requests的集合,在做完一個测试的時候, 你可以把這次的request存到特定的Collection里面,如此一來,下次要做同样的测试时,就不需要重新输入。而且一个collection可以包含多条request,如果我们把一个request当成一个test case,那collection就可以看成是一个test suite。通过collection的归类,我们可以良好的分类测试软件所提供的API.而且Collection还可以Import或是Share出來,让团队里面的所有人共享你建立起來的Collection。
人性化的Response整理
一般在用其他工具來测试的時候,response的内容通常都是纯文字的raw, 但如果是JSON,就是塞成一整行的JSON。这会造成阅读的障碍 ,而Postman可以针对response内容的格式自动美化。JSON、XML或是HTML都會整理成我们可以阅读的格式
内置测试脚本语言
Postman支持编写测试脚本,可以快速的检查request的结果,并返回测试结果
Postman的缺点是只是支持http协议,支持平台是windows和mac。还有就是postman中在headers切换按钮,可以在key-value中设置任何字符串作为header的名称。而header中的参数被屏蔽掉了。Pastman只是接受单独接口的自动化测试,而且无法做到集成测试。
我们先打开Postman,可以看到界面分成左右两个部分,右边是我们后头要讲的collection,左边是现在要讲的request builder。在request builder中,我们可以通过Postman快速的随意组装出我们希望的request。一般来说,所有的HTTP Request都分成4个部分,URL,
method, headers和body。而Postman针对这几部分都有针对性的工具。
要组装一条Request, URL永远是你首先要填的内容,在Postman里面你曾输入过的URL是可以通过下拉自动补全的哦。如果你点击Params按钮,Postman会弹出一个键值编辑器,你可以在哪里输入URL的Parameter,Postman会帮你自动加入到URL当中,反之,如果你的URL当中已经有了参数,那Postman会在你打开键值编辑器的时候把参数自动载入
点击’Headers’按钮,Postman同样会弹出一个键值编辑器。在这里,你可以随意添加你想要的Header attribute,同样Postman为我们通过了很贴心的auto-complete功能,敲入一个字母,你可以从下拉菜单里选择你想要的标准atrribute
要选择Request的Method是很简单的,Postman支持所有的Method,而一旦你选择了Method,Postman的request body编辑器会根据的你选择,自动的发生改变
如果我们要创建的request是类似于POST,那我们就需要编辑Request Body,Postman根据body type的不同,提供了4中编辑方式:form-data x-www-form-urlencoded raw binary
我这里创建一条发送给google geocode的request,看看是啥结果:
注意,在URL里面我使用了变量googleMaps,并用{{}}调用它,这里是类似于AngulaJs的语法(果然是同一家人),其返回值是:http://maps.googleapis.com/maps/api/geocode/json。而这个变量我是定义在我的环境GoogleApiTest里面的。这部分的内容会在接下来的文章里面讲到。
点击了Send之后,可以在Postman上直接看到response的内容,内容很漂亮,Postman根据内容检索自动按JSON的格式显示出来,同时我们可以清楚的看到status code和花费的时间。
写到这,我想大家已经能够了解如何用Postman组装Request并且查看Response的内容了,那我们怎么用Postman去做测试呢,在这开始之前,我们先来看看Postman的左边面板
这里包含了History和Collection,我们可以在History里面看到我们曾经发送过的HTTP Request,我们可以很方便的通过点击上面的项重新构建我们的request。而右边的Request Builder面板上,还有两个按钮,Pre-request Script和Tests。
Pre-request Script
定义我们在发送request之前需要运行的一些脚本,应用场景主要是设置全局变量和环境变量
Tests
定义发送Request之后,需要用脚本检测的内容,也就是Test case的内容。
这里的的Tests是我们关键。
打开Tests,我们可以看到窗口分成两部分,一部分是左边的代码窗口和右边的Snippet窗口,点击对应的snippet,postman会在左边的窗口为我们生成对应的代码,在下面的图中,我选择了“Response
body: is equal to a String”和“Response time is less than
200ms”,可以看到Postman在代码窗口为我加载对应的语句,这里我把希望的responseBody改成了“No validparameters!!”.
这样我就完成一条简单的测试用例:
当HTTP Get
request没有带任何参数的时候,希望response的body返回字符串“No valid parameters!!”
responseTime小于200ms