一、Postman接口测试概述
1.1 接口测试
接口是指对协定进行定义的引用类型,通俗讲是就是软件系统不同组成部分衔接的约定。接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试就是通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果,它只需测入参和出参就行了。接口测试在接口开发完成后就可以进行测试,无需查看页面UI,仅关注于接口的入参与出参,接口测试属于黑盒测试。
接口测试工具有很多如soapUI、postman、jmeter等,本文介绍postman。
1.2 Postman主要特征
Postman是由Postdot Technologies公司打造的一款功能强大的调试HTTP接口的工具,它最早是Chrome中最受欢迎的插件之一,现已扩展到Mac,Windows和Linux客户端。软件功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化
- 简单易用的图形用户界面
- 保存API请求的历史记录
- 无限制的使用集合、环境变量、运行测试和共享集合
- 可用集合Runner来自动化测试
- 灵活的API监控,运行时间、性能和准确
二、主界面功能解析
打开postman,主界面如下
2.1 左侧菜单
1.History标签
里面存储的是使用postman发送过的请求,postman会把每一个请求自动保存到history标签,可以起到一个查询的作用
2.Collections
集合,创建集合有助于我们对不同接口进行分类管理:比如不同程序的接口、同一个程序不同功能类别的接口,通过集合来区分它们,看起来简洁明了,方便后续的维护
同时我们在创建集合后,也可以一次性执行集合中的所有请求,不必再一个个单独运行
(1) 创建一个顶级集合:点击Collections下方的“文件夹”图标即可
(2)在一个集合中创建子集合:选中一个集合,然后按下鼠标右键,选择"Add folder"
ps.右键一个集合后可以看到许多操作按钮,如重命名、导出、删除等
2.2 顶部菜单
New按钮:
提供创建请求、集合、环境、文档、mock服务器和监控器的入口
Import按钮:
提供集合导入、环境导入等的入口
Runner按钮:
打开collection runner窗口,能够批量执行一个collections中的请求,同时生成报告
Open New按钮:
用于打开一个新的tab、一个新的Postman窗口、一个新的collection runner
设置:
Trim keys and values in request body:如果使用form-data或者url-encoded的方式向服务器发送数据;将该选项设置为ON,则会引起参数左右两侧的空格被删除
SSL certificate verification:防止应用程序在发出请求时检查SSL证书的有效性
Language detection:将此设置为JSON将强制执行JSON呈现,而不管响应Content-Type标头
Request timeout in ms(0 for infinity):在显示服务器没有响应之前,设置应用等待响应的时间(单位时ms)。 0表示无穷大-Postman将永远等待响应
Send no-cache header:发送一个no-cache标头可以确保请求从服务器获得最新的响应,而不是缓存数据
Send Postman Token header:这主要用于绕过Chrome中的错误。如果XmlHttpRequest处于挂起状态,并且使用相同的参数发送另一个请求,则Chrome会为它们返回相同的响应。发送随机令牌可避免此问题。这也可以帮助我们在服务器端区分请求
Retain headers when clicking on links:如果点击响应报文中的链接,Postman会使用该URL创建一个新的GET请求。如果希望该请求继续使用前一次请求中的头部信息,该选项就应该设置为ON;这个选项对于访问受保护的资源非常有用
Automatically follow redirects:阻止返回300系列响应的请求被自动重定向
Send anonymous usage data to Postman:说白了就是是否同意Postman采集我们的使用信息
2.3 右侧菜单
上面是发送请求request模块,下面是响应response模块
1.请求
选择请求方法,填写请求url、参数,点击【send】即可发送一次请求
2.响应
发送请求后,接收到的响应内容会在response模块展示
三、Postman发送请求
3.1 GET请求
通常用于请求服务器发送某个资源,请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接
1.请求方法选择GET
2.在request url处输入请求url
3.点击Params,会弹出键值输入框,可以添加多个参数,填写好的参数会自动拼接到url中(如果添加的url已经有参数,postman会自动将url的参数分成键-值对两部分)
当然也可以根据需要在Headers添加请求头信息
3.2 POST请求
POST方法一般用来向服务器输入数据,它把提交的数据放置在是HTTP包的包体中
1.请求方法选择POST
2.在request url处输入请求url
3.请求方法选为POST后,请求栏下的Body栏会高亮,也就是可以向request body中填充数据(添加再body种的参数并不会追加到url后面)
Body中有4种数据填充形式,分别为:form-data、x-www-form-urlencoded、raw、binary
(1)form-data
表示http请求中的form-data方式,会将表单的数据处理为一条消息,用分割符隔开,可以上传键值对或者上传文件:
(2)x-www-form-urlencoded
会把表单数据转换为键值对
form-data与x-www-form-urlencoded的区别
form-data:可以上传文件或者键值对,最后都会转化为一条消息
x-www-form-urlencoded:只能上传键值对,而且键值对都是通过&间隔分开的
(3)raw
可以上传任意格式的文本,文本不做任何修饰传到服务端。比如传一些xml,或者json数据,或者text文本数据
(4)binary
只可以上传二进制数据,通常用来上传文件,但是一次只能上传一个文件
注意:我们在设置post请求时,并没有特意设置请求头,工具自动为请求添加了请求头,body为x-www-form-urlencoded格式的数据时header如下
响应:1.点击 Send 即可发送请求
在下面的response模块显示返回信息
需特别注意的是注意区别HTTP状态码与响应正文中的状态码,只有HTTP状态码是200时,才代表这个接口请求是正确的,这个是HTTP协议定义的,而响应正文的状态码,是程序员自已定义的,可以是200,也可以定义为其它值,是为了让接口使用者去区分正常数据与异常数据。
2.可以根据需要选择响应体的查看方式
(1)Pretty
Pretty模式可以格式化JSON或XML响应报文,以便更容易查看。没有人希望通过缩小的单行JSON响应来寻找我们需要的字符串!突出显示Pretry模式中的链接,点击它们,可以通过链接URL在Postman中加载GET请求。为了浏览较大的响应报文,可以单击左侧的向下指向的三角形(▼)折叠响应报文
为了让Postman自动格式化响应报文,我们确保返回正确的Content-Type请求头。如果API没有返回Content-Type请求头,则可以通过JSON或XML强制进行格式设置。我们可以通过从“语言检测”下拉列表中选择“JSON”,或者在SETTINGS模式内的常规选项卡下强制默认显示为JSON格式
(2)Raw
Raw视图只是最原始的方式显示响应报文的内容
(3)Preview
Preview模式在沙箱中以iframe的形式呈现响应。默认情况下,某些Web框架会返回HTML错误,所以预览模式在此处特别有用