🔄 letmego(任我行)— 测试用例断电续跑方案
"机器重启了,测试也能从中断处接着跑。"
概述
letmego(任我行)是一个控制 Python 函数执行的方案,核心功能是实现测试用例的断电续跑。当自动化测试遇到不得不中断的场景(如机器重启)时,重启后能自动跳过已执行过的步骤,从断点处继续执行。
GitHub: https://github.com/linuxdeepin/letmego
文档站: https://linuxdeepin.github.io/letmego
PyPI: https://pypi.org/project/letmego/
版本: 2023.10.16
解决的痛点
- 自动化测试包含重启步骤,机器重启后测试进程丢失,无法继续
- 重启后需要手动判断哪些步骤已执行,重新编排测试流程
- 系统升级、内核更新等必须重启的场景下,自动化测试中断不可恢复
- 需要一套轻量级的执行状态追踪机制,不依赖外部数据库
核心设计
每条执行标记格式:
- 方法被执行前,生成唯一标记写入跟踪文件
- 重启后重新运行测试,已标记的步骤自动跳过
- 实现无缝续跑,无需手动编排
核心特性
@mark 类装饰器
挂载到页面类上,自动追踪该类所有方法是否已执行:
自动跳过已执行步骤
首次运行:所有方法正常执行,标记写入文件
机器重启后再次运行:@mark 检查标记文件,已执行过的步骤自动 return None
重启自启注册
通过 systemd 实现机器重启后自动启动测试:
自动创建 systemd service 文件,systemctl enable 开机自启。
注销自启服务
清理执行标记
用例状态追踪
支持 reruns 参数:多次重跑场景下,检查是否某次已 passed。
调试模式
技术栈
项目结构
架构设计
_trace 追踪器工作流程
systemd 自启服务模板
使用方式
安装
基本用法
配置项
许可证
Apache 2.0
声明:本站所有文章,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。-- mikigo