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

copy by https://testerhome.com/topics/34244#reply-219133😉😉😉

使用 pytest 框架
除了 unittest 框架断言方法外,较为流行的 pytest 框架也提供了内置的断言方法,下面让我们来研究一下,使用 pytest 框架实现的解决方案。

pytest 框架中有内置的 assert 断言方法 assert 断言方法可以实现结果的校验,案例代码如下:

执行结果如下:
①. 当(x, y)=(1,1)时断言 3 失败;

②. 当(x, y)=(1,0)时断言 1 失败,断言 2 和断言 3 不执行;

由此可以看出 assert 方法一旦遇到断言失败则停下,无法实现一个方法中多个断言同时执行的需求。

使用 pytest 框架 pytest-assume 插件 pytest-assume 插件可以解决原生 assert 断言方法存在的问题,案例代码如下:

执行结果如下:
①. 当(x, y)=(1,1)时断言 3 失败;

②. 当(x, y)=(1,0)时断言 1 失败,断言 2 和断言 3 继续执行;

由此可以看出 pytest-assume 插件可以实现单个断言失败的情况,其他断言依然会被执行。

上下文管理器 with pytest-assume 也可通过上下文管理器 with 使用,从执行结果中看出,与以上方法中直接使用 pytest-assume 插件相比,使用上下文管理器的好处是不用 try 和 finally 捕获异常,更加简洁有效。

如上图所示,在使用上下文管理器时需要注意,一个 with 语句只能跟一个 assert 语句。如果一个 with 语句包含多个断言,当前面的断言失败的时候,后面的断言依然不会执行。

总结
以上是指标校验脚本中断言方案探索的过程,以及最终的解决方案和效果,希望本文能为大家解决类似的问题提供一些思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值