接口自动化测试的那些事(四)接口自动化diff

接口diff的定义

接口diff即接口对比,就是对接口的返回结果进行对比,找出结果的差异之处。广泛意义上说,接口diff不局限于接口的个数(1/2/3/4/...个接口),也不局限于接口的返回形式(json/string/xml....) ,当然也不局限与接口的请求方式(http/https/thirft等等)。接口diff基本类似于如git中的代码diff,根本目的在于找出差异。

项目测试中的接口对比,则往往有这样的应用场景:代码做了修改,需要回归之前的众多接口是否被“改坏”。此时,采用的一种回归形式就是接口diff。基本接口diff的步骤如下:

1)在服务器A上部署原代码/线上代码(定为接口版本1);

2)在服务器B上部署修改的代码(定为接口版本2);

3) 确保服务器A,B的差异仅仅在于代码的不同,即使用的DB,依赖的上游服务等等相同;

4) 对比接口版本1,接口版本2的差异

5) 验证对比结果(如果接口版本1,接口版本2无差异,认为接口正常,无字段被改坏,或误删的可能;反之,确认二者的差异是否是代码原因)

ps: 对于接口数量少,接口返回字段少的场景下,步骤4)是可以通过人工进行检查的。当然,不建议人工检查,毕竟对于之后的多次回归就有点浪费时间了。

接口diff的用途

1)高效率进行接口的回归。尤其当接口众多时,接口的返回字段众多时,此时[人工]检查接口,效率太低了。

例如,项目中已经发现的问题包括:

某个接口比之前少了一个关键字段(该字段在页面需要展示的);

某个接口中的字段值错误(字段值计算的内部逻辑被改错了);

2)快速发现接口修改前和修改后的差异。因为大部分代码的修改体现在接口返回的变化上,因而使用接口的变化来反向验证 代码的修改影响。

3)快速验证某些场景下的测试。

例如,曾经一个项目,变更了DB中的几张表,但要求接口返回的字段只多不少(就是原来接口中含有的字段,修改使用表后一定要有,可以有多余的字段)。此时使用 两个版本代码中的接口 直接diff 是不是很easy了。

你可能感兴趣的:(【测试】系列,【测试】工具,【测试】自动化测试,QA的公开课)