# 脚本名称:通过装饰器实现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()



↙↙↙阅读原文可查看相关链接,并与作者交流