对HTTP协议有了深入了解之后,我们再回过头来看看各种请求报文在postman中的处理方式,深入了解postman完成各类型请求的方式,这一节先来看看最简单的Get请求。
为了方便管理接口,首先在postman的workspace里创建一个collection(测试集),相当于用一个文件夹来保存自己的接口。
由于get请求通常都没有请求体,因而在请求四大要素:url、HTTP方法、请求头和请求体中只需要关注url和请求头即可。而get请求如果有请求参数,则通常会携带在url中发给服务器接口。
无参数的get接口
最简单的get接口是不需要任何参数的get接口,我们以一个开放api获取诗词的接口为例
- 接口说明文档:Swagger UI
- 接口url地址: https://api.apiopen.top/api/sentences
那么在Postman中进行操作,只需要填写url地址,选择get方法,点击发送即可完成请求。
完成请求的编辑后,可以点击save或直接使用快捷键Ctrl + s 将写好的请求保存到collection中并为它命名,方便之后管理维护。
在url中携带参数的get接口
开放api获取图片接口
基于对HTTP协议的学习,我们知道,在url中?之后以key1=value1&key2=value2格式编辑的内容是url上的参数,这里先以一个简单的开发api中的获取图片接口进行请求:
- 接口说明文档:Swagger UI - 接口url地址:https://api.apiopen.top/api/getImages?page=0&size=10
将url填入postman地址栏之后,可以看到,下方params菜单中自动补全了Query Params(查询参数)里的page和size两个参数,从而可知,page=0&size=10是page值为0和size值为10两个参数的url格式组织形式。
在url中或者params表格中我们都可以修改page和size的值,所代表含义分别是页码和查询数量,比如将size值改为1,就会看到返回体中只有一条查询结果记录了。
通过修改请求的参数值,我们就完成了一个基本的测试用例编写,可以根据自己的业务逻辑编写对应的测试逻辑,比如设计无效等价类输入字母,输入负数等等。
百度ip接口
接下来再看一个稍微复杂点的接口,直接在百度上搜索IP即可,通过抓包获取接口信息:
将url地址填到postman请求中,可以看到这个接口有大量的参数,在没有接口文档的情况下,并不知道每个参数的作用,这时可以阅读参数名称进行推测,并通过调整是否传递某个参数来进行测试。
例如我们很容易推断query字段就是填写查询的ip的字段,核心需要测试的参数就是这个query字段,而其他的参数可以通过取消勾选来不携带对应参数进行请求。
最后我们可以推出真正必须的参数只有query和resource_id这两个。基于接口抓包信息进行测试推理也是在使用postman进行接口测试调试的过程中需要掌握的技能。
需要头域信息参数的get接口
在进行接口请求时,如果接口文档没有特别的说明,通常不需要额外关注接口的头部信息,Postman会自动将一些完成HTTP请求所必须填写的请求头进行自动填充,就像寄快递的时候快递单上的许多内容就算不填,快递公司也会默认安排一些选项。
下面我们通过腾讯课堂上的评论获取接口来了解需要额外填写头域的接口如何操作:
抓包网页地址:软件测试Java+Python双语自动化+测开+性能测试高级系统涨薪课程-学习视频教程-腾讯课堂
在请求时,先不填写头部信息进行请求:
得到的结果会是refer错误,并没有预期中的评论列表信息,切换到Headers菜单中可以看到Postman在完成请求时会自动携带一部分请求头域来完成请求。包括之前已经完成的接口,大家也都可以在Headers中看到Postman自动添加的头域信息。
从返回结果的提示信息已经非常清楚,需要添加Referer头域才能完成请求,Referer头域的作用在这里是为了声明请求的发起来源,防止盗链。因此我们在Headers中加上抓包信息中的Referer头域再次请求:
这次得到的返回结果就是预期中的评论信息了。因此,当接口明确说明需要某个请求头参数的时候,我们只需要按照接口文档或者抓包信息,将对应的参数添加到Headers中就好。
最后我们还是用快递的例子做个比喻:
完成get请求时,就像让快递员捎个口信,让服务器返回我们需要的内容,由于get没有请求体,那么请求过程就是填写接口请求四要素中的URL(对方地址)、HTTP方法(快递方式)和请求头(快递单上的其他信息),在Postman上逐个抄写就行。
而进行测试就是在服务器接收正确的参数边缘反复试探,比起功能测试,测试的数据对象更为集中了。
版权归原作者 特斯汀roy 所有, 如有侵权,请联系我们删除。