Postman
一、postman介绍及安装
1.Postman是一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件。
2.postman可以通过 Chrome 浏览器的「扩展程序」安装:
打开Chrome的扩展程序---->点击【获取更多扩展程序】-----> Chrome网上应用店---->搜索框输入【postman】进行搜索--->添加至CHROME。如图:
3.postman最新版是独立应用了:安装下载:https://www.getpostman.com/
二、postman软件界面介绍
1.界面按钮介绍
Import:用户导入保存的API 请求文件,json 格式
新建文件夹:用户API请求分类存放,便于管理
Save:保存API 请求及返回
下载按钮:下载API请求
postman界面截图:
三、postman接口测试
postman界面分为两部分:左边的sidebar 右边的request builder:快速创建几乎所有的请求。
1.请求
HTTP请求的4部分:URL,请求的method,headers,body。
(1)首先需要设置的就是URL
(2)method
(3)Request body:不同的body editor 分为4个区域,根据body类型有不同的控制。如图
其中:
- [ ] form-data是网页表单用来传输数据的默认格式。可以模拟填写表单,并且提交表单。
可以上传一个文件作为key的value提交(如上传文件)。但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。 如图:
-
[ ] raw request:可以包含任何东西。所有填写的text都会随着请求发送。
-
[ ] binary:image, audio or video files.text files 。 也不能保存历史,每次选择文件,提交。
2.响应
(1)一个API的响应包含body,headers,响应状态码。postman将body和headers放在不同的tabs中。响应码和响应时间显示在tabs的旁边。将鼠标悬停在响应码上面可以查看更详细的信息。如图
(2)补充:有些headers和cookies是保密的,想看cookies 信息可以打开拦截器:postman interceptor
(3)身份验证Authentication
postman有一个helpers可以帮助我们简化一些重复和复杂的任务。当前的一套helpers可以帮助你解决一些authentication protocols的问题。如图:Basic Auth
填写用户名和密码,点击Refresh headers
Digest Auth
要比Basic Auth复杂的多。使用当前填写的值生成authorization header。所以在生成header之前要确保设置的正确性。如果当前的header已经存在,postman会移除之前的header。
OAuth 1.0a
postman的OAuth helper让你签署支持OAuth 1.0基于身份验证的请求。OAuth不用获取access token,你需要去API提供者获取的。OAuth 1.0可以在header或者查询参数中设置value。
OAuth 2.0
postman支持获得OAuth 2.0 token并添加到requests中。
四、Postman的Tests标签可以用来写测试case
1.步骤:
(1)首先需要在request的test中创建了test后,
(2)再进行request。
(3)测试代码会在发送request并且接收到responses后执行。
(4)test的结果在body的Test Results中查看。
2.检验实例:
(1)校验返回的状态码是否是200:tests["Status code is 200"]=responseCode.code==200,如图(2)校验response body中是否包含某个string:tests["Body matches string"] = responseBody.has("winter is coming");
(3)校验JSON中的某个值是否等于预期的值:var data=JSON.parse(responseBody)
tests["your brandStory is"] = data.result.brandStory === 'winter is coming';
如图:
(4)转换XML body为JSON对象 :var jsonObject =xml2Json(responseBody)
(5)校验response body是否与某个string相等 :tests["Body is correct"] = responseBody === 'winter is coming,code 200';
(6)校验response Headers中的某个元素是否存在(如:Content-Type):
tests["Content-Type is present"] = responseHeaders.hasOwnProperty(''Content-Type);或者
tests["Content-Type is present"] = postman.getResponseHeaser(''Content-Type);
五、Postman 运行Collections
选择collection,选择环境。点击运行按钮,批量执行case(这些需要都在请求的test tab 中写过测试用例,否则不视为case)。如图: