一、基本介绍
diffy是什么?
Diffy是一个twitter开源的自动化测试工具,是一种自动 Diff 的测试技术。它能够自动检测基于 Apache Thrift 或者基于 HTTP 的服务。通过同时运行新/老代码,对比运行结果,发现潜在 bug。并且使用 Diffy,只需要进行简单的配置,而不需要再编写测试代码。
为什么用diffy?
diffy的使用场景主要有以下两种:
1.代码重构中保证新老代码接口返回值字段的差异;数据来源改变的时候代码的差异。比如:迁微服务的时候我们代码进行了重构,接口的返回值进行了结构体的改变;再比如某个接口返回的数据的来源库做了改变但是结构不变。原始的测试方式是通过接口在不同环境调用然后拿出接口返回值再人工进行json对比。
2.就一般的接口测试来说,每次代码迭代,除了对新功能也就是新接口的测试,还包括对老功能也就是老接口的回归。如果通过手工回归,那么随着接口数量的增加,测试人员的工作量将同样地线性增长,且效率将大幅降低。通过diff测试,可以发现相同接口下内部代码逻辑变更对其输出的影响,测试人员只需要对比diff接口的差异之处(或自动对比),从而大幅减少人工作业的工作量。
diffy是怎么工作的?
图片来源于diff官网: