背景
最近笔者在测试一个数据下载项目,测试过程中需要校验导出CSV文件中指标值的准确性。涉及指标数量400+,并且需要关注不同聚合层级、不同时间粒度指标计算的准确性。验证数据量大,手工验证效率低、人力成本高,因此通过自动化脚本的方式来提高测试效率以及方便回归验证。
在实现的过程中,最初采用unittest测试框架中内置的断言方法,进行数据的比对,实践发现内置断言并不能满足使用要求,进行了一系列的实践后,最终找到了合适的断言方案,本篇文章主要介绍了该方案的探索过程。
unittest框架内置的assertEqual断言
最初使用unittest测试框架中的内置的assertEqual断言方法,进行实际值与预期值的校验,assertEqual方法的实现逻辑如下:
-
如果断言失败,则抛出一个AssertionError,并标识该测试为失败状态;
-
如果断言成功,则标识该测试为成功状态。
指标验证过程中,一个测试用例中需要包含多个指标断言,代码如下图所示:

执行结果如下图所示,一个assertEqual断言失败后,抛出异常,该条用例即被终止,后续断言不会被继续执行,从而无法得知后续的断言执行情况,导致该自动化测试无法一次性反馈所有测试结果,与使用场景要求不符。

一个断言一个方法
为了解决以上方案中断言失败后不再继续执行其他断言的问题,将用例进行拆分,将每个指标的断言放在独立的方法中,这样单个指标

最低0.47元/天 解锁文章
3517

被折叠的 条评论
为什么被折叠?



