浅谈如何提高自动化测试的稳定性和可维护性

目录

前言:

装饰器与出错重试机制

什么是装饰器?

编写一个出错重试装饰器

pytest 里的出错重试机制实现

Allure 里的测试用例分层

为什么要采用分层机制?

allure 的装饰器@step


前言:

自动化测试的稳定性和可维护性是确保测试工作的有效性和持续性的关键因素。稳定性指的是测试的可靠性和一致性,而可维护性则涉及到测试脚本的易读性、可扩展性和可维护性。

装饰器与出错重试机制

谈到稳定性,不得不说的就是 “出错重试” 机制了,在自动化测试中,由于环境一般都是测试环境,经常会有各种各种的抽风情况影响测试结果,这样就为测试的稳定性带来了挑战,毕竟谁也不想自己的脚本一天到晚的出各种未知问题,而往往这种环境的抽风(通常是前端页面的响应速度和后端接口的响应速度)带来的影响是暂时的,可能上一秒失败了,下一秒你再执行又好了,在这种情况下,如果你有一个出错重试机制,起码可以在这种暂时性的影响下让你的脚本安然无恙,下面我们具体的说一下做法。

什么是装饰器?

因为我们的做法依赖装饰器,所以在去做之前,先简单介绍一下装饰器。

​装饰器,表现形式为,在方法(或者类)的上面加上@xxx这样的语句,假如我们已经实现了一个装饰器名叫 retry,那么我们想用它就这么用:

@retry
def test_login():
    print("test")
    error = 1/0

如果 retry 实现了出错再次重试(稍后再说如何实现),那么这么使用的话,就会让 test_login 这个 case 在执行出错的时候再次执行。

很神奇,让我们来看看实现 retry 的代码:

def retry(func):
    def warp():
        for time in range(3):
            try:
                func()
            except:
                pass
    return warp

就结果而言,执行以下代码:

@retry
def test_login():
    print("test")
    error = 1/0

test_login()

和执行:

retry(test_login)()

是等价的,由此我们可以看出,装饰器其实本质上就是一个函数,这个函数接收其他函数(或者类)作为参数,通过对这个函数(或者类)的调用或者修改&#x

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值