3.4 接口测试工具Postman
启动Postman软件,输入被测接口的URL,单击Params按钮,设置请求参数,然后选择请求方法(如GET或POST),最后单击Send按钮,一个简单的请求过程就完成了。发送完请求后,查看接口返回的JSON信息。下面介绍Postman的一些常用功能和使用技巧。
3.4.1 使用测试用例集管理被测接口
Postman提供的Collections功能可以理解为测试用例集。在Postman软件界面中,单击右上角的文件夹图标,如图3-21所示。
图3-21 单击文件夹图标
在弹出的界面中,填写测试用例集的名称和被测接口的描述信息,这样一个测试用例集就创建好了。Postman还支持在测试用例集下继续创建目录,如图3-22所示。
图3-22 在测试用例集下继续创建目录
根据实际情况,将被测接口分类并归纳到一起。
3.4.2 验证接口返回结果的正确性
使用Postman不仅可以发送请求,而且可以通过Tests功能验证返回结果的正确性。在头信息编辑区域,选择Tests标签页,如图3-23所示。
图3-23 Tests标签页
Tests标签页的左侧为脚本区域,我们可以通过自行编写JavaScript代码来对结果进行校验。另外,Postman在Tests标签页的右侧提供了一些常用的测试脚本,这些测试脚本基本可以满足日常的测试工作。选择测试脚本,如“Response body:Contains string”(用于验证响应中是否包含指定的文本),脚本区域将会自动写好样例代码,测试人员只需要稍做修改即可,比如校验Price字段是否存在,如图3-24所示。
图3-24 校验Price字段是否存在
代码清单3-4展示了一些常见的校验示例。
代码清单3-4
3.4.3 使用全局变量解决上下文依赖问题
在测试过程中,我们经常会遇到当前接口依赖于其他接口的情况,或是需要通过Cookie校验当前发出接口请求的是不是已登录用户。可通过Postman提供的环境变量/全局变量来解决这种上下文依赖问题。假设接口B的入参依赖于接口A,我们可以创建一个测试用例集,在其中保存接口A和B,注意接口A和B在这个测试用例集中的顺序。然后在接口A的Tests中获取需要的内容并设置为一个全局变量,在接口B的入参中使用这个全局变量。例如,对于登录页面A和登录接口B,当登录页面A发起对登录接口B的请求时,就需要附带登录页面A的HTML标记中特定位置的一段随机字符串,作为登录接口B的body信息中的token值。为此,首先在测试用例集中创建接口A,并在Tests中获取token值,如代码清单3-5所示。
代码清单3-5
然后在测试用例集中继续创建接口B,并在接口B的body信息中输入“key:token,value:{{token}}”,这样当运行整个测试用例集时,对接口B的请求就可以获得正确的token值。如果此时又出现了接口C,且接口C依赖于接口C返回的Cookie,怎么办呢?解决的思路和方法是一样的:在接口B的Tests中获取接口C返回的Cookie,如代码清单3-6所示。
代码清单3-6