接口测试是测试系统组件间接口的一种测试,在测试金字塔中能看到,测试案例数量仅次于单元测试。对于接口测试,不同的公司会使用不同的测试工具,Postman已经成为了相对主流的选择。
现在Postman已经更新到了7.6.0,提供了更多更便捷的功能,本文就不一一赘述了,文中所用的功能都是基于此版本:
如果对基本操作有不明白的,Postman官网提供了很多支持性的文档,可以参阅https://www.getpostman.com/support
由于大量的公司开始使用敏捷模式进行开发和测试,所以要想办法在短时间内完成大量的接口测试,为开发更早地提供缺陷信息,为测试节省更多的测试时间。
在接口测试中,我们需要覆盖的测试点比界面测试要多很多,有时候甚至需要弥补开发单元测试的不足,所以案例数量大是必然的。一个一个手动输入到postman里面需要点击新建-请求-输入url-输入body-保存,如果有200个接口,需要点击2000次以上才能新建所有的请求,而且如果看串行或者粘贴错了内容,返工的工作量会更大。所以既然postman提供了导入功能,我们完全可以想办法一次性导入所有的请求。
所以我们今天可以来研究下怎么在拿到接口文档之后,利用Excel加上Postman,在短时间内生成大量的接口请求。我们拿postman-echo.com为例,一般情况下,测试拿到的接口文档必须要包括的内容有案例名称,请求类型(大部分是GET、POST、PUT、DELETE类型),URL,Body,如果有其他的比如Auth相关的,我们可以修改Excel中的Column来保证符合Postman导入格式的要求,本文就不一一列举了,最简单的请求样式如下:
所以首先我们需要根据Postman支持的格式对它进行修改和拼接,怎么知道postman支持的格式是什么样的呢?我们在postman中手动新建一个GET类型的request,然后将Collection导出,一般选择v2.1(Recommand):
导出之后用记事本打开,我们就会发现,不管有多少个request在里面,每个Collection都有自己的info部分,只是item中的数量不一样而已:
下一步就是从collection中提取固定部分,然后参数化变化部分,比如在Sheet2中,将固定部分分解成5块,在Sheet1中去调用:
例如第一个请求(F2格中)的公式为:=CONCATENATE(A2,Sheet2!$A$2,B2,Sheet2!$A$3,C2,Sheet2!$A$4,D2,Sheet2!$A$5),利用公式合成第一个请求的json,再直接拖拽就可以完成下面所有请求的.json, 而F1格中则是所有公式结果的汇总:=LEFT(CONCATENATE(Sheet2!$A$1,F2,F3),LEN(CONCATENATE(Sheet2!$A$1,F2,F3))-18)&"]}":
直接复制F1格中的内容,贴入记事本中,用Postman去做Import的话是会报错的,因为Excel中字符格式并不符合要求:
所以我们需要做的是将所有双引号(””)全部替换为单引号(”),注意:一定要将最开头和结尾的引号(”)删除,另存为JSON文件xxx.json,编码选UTF-16 LE(也就是Unicode):
还有需要提示大家的是,由于Excel里面每个单元格有字符数限制,所以大家可以根据自己接口的复杂程度,切分成多次导入:
这样再导入Postman,就不会报错了。
版权声明:本文出自《51测试天地》第五十四期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。