2.1.2 接口自动化测试
提到自动化测试,往往给人们的第一印象是提高效率、降低成本。有些情况下确实如此,有些情况则不是。下面我们先来分析一下自动化测试的成本与收益。成本主要考虑时间和金钱,目前自动化测试相关的开源技术和工具有很多,开展自动化并不需要太多的金钱支持,所以我们只考虑时间成本。自动化测试有三方面的时间成本:自动化程序的开发、后期维护、执行确认。自动化测试的收益主要体现在执行测试比人工快,执行的次数越多,节省时间也就成倍增长从而收益越大。所以笔者认为做自动化测试应尽量降低测试程序的开发时间和后期维护时间,方便确认执行结果并且在需要经常回归的功能上进行。在项目初期,代码经常修改,需求也可能变动,此时不管在UI 上进行自动化测试还是对接口进行自动化测试,开发测试代码需要的时间都是很大的。只有到了项目后期,产品稳定了才能考虑实施自动化测试。
接口自动化测试的时间成本:笔者所在部门由于开发了一款简单易用的接口测试框架,测试工程师只需要把参数拼装成一个URL 通过HTTP 请求就可以得到对应的执行结果,再根据执行结果判断接口执行是否正确。做自动化开发时,只需要结合开源自动化测试框架TestNG,通过HttpClient 发送一个GET 请求并对返回结果做判断即可。所以接口自动化测试在自动化程序的开发上,时间成本非常低,一条测试用例描述转化成测试代码也就是分分钟的事情。接口发布上线后,参数很少发生变化。因为接口作为服务发布后会有多个调用方,如果参数发生变化将通知所有调用方做相应的修改,否则就会出现调用方无法使用的情况。接口定义稳定不容易发生变化,所以接口自动化程序的后期维护工作也就不多,时间成本也很低。最后说说接口测试的执行确认的时间成本。接口执行速度一般都是毫秒级别,测试用例中如果没有相互依赖等待的情况,那么每分钟能够执行几百条用例甚至更多。
接口自动化测试的收益:记得在刚开始做测试时,知道某些功能是通过后台接口实现的,但是没有办法直接调用接口,只能通过在UI(User Interface,用户界面)上准备某些情况的操作达到测试接口功能的目的。这样每次测试一个用例,都需要准备一个场景和很多数据,有时特殊情况的数据很难模拟对应的场景,导致一轮测试需要几天时间。如果换做直接调用接口,按照接口方法中的参数准备数据,那么系统测试最多一天就能完成。之后相关功能修改,对老的功能进行回归测试只需执行一下,几分钟就可以完成。所以,接口进行自动化测试的收益非常明显。
结论:对接口进行自动化测试成本低,收益明显,建议测试时优先对所有接口 进行自动化测试。
Testwo官方店铺商品链接: