自动化测试中对多断言的思考和实践

背景

最近笔者在测试一个数据下载项目,测试过程中需要校验导出CSV文件中指标值的准确性。涉及指标数量400+,并且需要关注不同聚合层级、不同时间粒度指标计算的准确性。验证数据量大,手工验证效率低、人力成本高,因此通过自动化脚本的方式来提高测试效率以及方便回归验证。

在实现的过程中,最初采用unittest测试框架中内置的断言方法,进行数据的比对,实践发现内置断言并不能满足使用要求,进行了一系列的实践后,最终找到了合适的断言方案,本篇文章主要介绍了该方案的探索过程。

unittest框架内置的assertEqual断言

最初使用unittest测试框架中的内置的assertEqual断言方法,进行实际值与预期值的校验,assertEqual方法的实现逻辑如下:

  1. 如果断言失败,则抛出一个AssertionError,并标识该测试为失败状态;

  2. 如果断言成功,则标识该测试为成功状态。

指标验证过程中,一个测试用例中需要包含多个指标断言,代码如下图所示:

图片

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

图片

一个断言一个方法

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值