测试平台
MobileGym Test Platform
GUI Agent 测试与评测平台
在开源移动仿真环境基础上扩展的测试与评测控制面:执行计划、串并行执行、版本配对比较与质量门禁,并用可复现的失败测试驱动修复。
流程示意
- 计划
- 执行
- 比较
- 报告
阶段验证完成,持续演进
TEST ENGINEERING · PORTFOLIO
我是 朱思汉,测试开发工程师。我在测试平台、GUI Agent 评测与性能采集中,记录构建工具、定位问题和验证结果的过程——这个站点就是这些记录的入口。
BUILD THE TOOL · ISOLATE THE PROBLEM · PROVE THE RESULT
测试平台
GUI Agent 测试与评测平台
在开源移动仿真环境基础上扩展的测试与评测控制面:执行计划、串并行执行、版本配对比较与质量门禁,并用可复现的失败测试驱动修复。
流程示意
阶段验证完成,持续演进
测试平台
Android 自动化与可靠性工程
在现有 Android 自动化平台上做工程化改造与验证:设备资源互斥、实时投屏遥控、步骤回放与失败证据链,以及断开 / 崩溃 / USB 断连后的故障恢复。
流程示意
核心链路与步骤回放阶段验收
以一次真实缺陷为例:MobileGym 多进程执行后,一个分片"缺失结果",落库出现结果类型与错误码不一致的矛盾组合——outcome=FAIL 说测试失败,error_code=WORKER_CRASH 说执行器崩溃。执行器明明崩溃了,为什么结果类型被落成测试失败?
我的做法是:先写一个会失败的测试复现问题,定位到非取消场景的返回被错误缩进到取消分支的 return 之后而不可达,缺失结果以 None 进入落库,同时又套用了 WORKER_CRASH 错误码;把这个返回移回可达的默认路径、落库修正为ERROR / WORKER_CRASH后,再验证 SQLite 落库、终态事件、报告聚合、重试选择四条链路语义一致,并保留取消语义。
修复于 2026-07-11 完成验证并留下公开 evidence 文档——结论可回溯,而不是"改了应该就好了"。
验证记录日期 2026-10-28 · 基于 2026-10-25 后台化与一致性验证记录、2026-10-28 历史流程验收整理(验证记录日期 2026-10-28)
把停止摘要与导出从 UI 线程移到后台只是第一步;真正要验证的是旧会话的迟到结果不会写进新会话,这要靠请求对象身份,而不是 UUID。
验证记录日期 2026-10-16 · 基于项目阶段验收记录整理(验证记录日期 2026-10-16)
600/600 次真实像素反馈成功、P95 220.6ms——这些数字只有在说清测量口径、设备条件和失败分母之后才有意义。
验证记录日期 2026-07-11 · 基于项目公开 evidence 文档整理(验证记录日期 2026-07-11)
多进程执行中一个分片缺失结果,落库出现 outcome=FAIL 与 error_code=WORKER_CRASH 的矛盾组合——结果类型与错误码不一致。根因是非取消返回被错误缩进到取消分支的 return 之后而不可达,故障被当成了测试失败。
我的代码和记录都在 GitHub 上:github.com/zhusihan-python。其中 MobileGym 扩展为公开仓库,其他项目以本站的记录为准。