Python Python 实用教程 100 例 -- 基于装饰器的 case 失败重试

打工人 · 2022年08月06日 · 最后由 LYS 回复于 2022年10月13日 · 5970 次阅读
# 脚本名称:通过装饰器实现case失败重试
# 应用场景:自动化测试框架中的失败重试,也可根据自身需求增加指定code码重试

from functools import wraps
import time


def failure_retry(retry_count, retry_interval=5):
    """
    失败重试
    :param retry_count: 重试次数
    :param retry_interval: 重试间隔,默认5s
    """
    def wrapper(func):
        @wraps(func)
        def wrapper_(*args, **kwargs):
            for count in range(retry_count):
                try:
                    return func(*args, **kwargs)
                except Exception as e:
                    import traceback

                    print(f"Case:{func.__name__} 开始执行第{count + 1}次重试...")
                    if count + 1 == retry_count:
                        print(f"异常堆栈信息为: {traceback.format_exc()}")
                    time.sleep(retry_interval)

        return wrapper_

    return wrapper


@failure_retry(retry_count=3)
def ceshi():
    print(1/0)


if __name__ == '__main__':
    ceshi()


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 2 条回复 时间 点赞

可以啊,正不错。

码住,后期需要

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册