接口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)快速发现接