Appium安卓应用200次迭代测试:异常原因排查需求
长周期Appium迭代测试的异常实时排查方案
针对你用Robot Framework+Appium进行200次蓝牙硬件更新测试的场景,以下几种方案可以在不终止测试的前提下,实时获取异常触发原因:
1. 在EXCEPT块中捕获完整异常并实时输出
利用Robot Framework内置关键字直接获取异常的详细信息,输出到控制台或自动追加到日志文件,无需手动干预:
*** Test Cases *** Very Long Test FOR ${i} IN RANGE 200 TRY Doing testing... EXCEPT # 获取错误消息和堆栈追踪 ${error_msg} = Get Error Message ${error_stack} = Get Error Stacktrace # 控制台实时输出,方便即时查看 Log To Console [迭代${i}失败] 错误信息:${error_msg} Log To Console 堆栈详情:${error_stack} # 追加到日志文件,留底备查 Log File [${i}次迭代失败] 时间:${CURRENT_TIMESTAMP}\n错误:${error_msg}\n堆栈:${error_stack}\n--- append=True Increment a variable signifying the number of fails... ELSE Increment a variable signifying the number of successes FINALLY Cleanup of appdata etc.. END END
2. 开启Robot Framework的详细日志模式
启动测试时添加--loglevel DEBUG参数,框架会自动记录所有测试步骤的详细上下文,包括元素定位失败、蓝牙连接超时等具体错误细节。你可以在测试运行过程中,直接查看生成的log.html或output.xml文件(支持实时刷新的浏览器可直接打开监控),无需额外编码。
3. 异常触发时自动捕获屏幕状态
在EXCEPT块中加入截图逻辑,直观记录失败时的GUI状态,快速区分是导航错误还是蓝牙硬件交互问题:
EXCEPT Capture Page Screenshot filename=fail_${i}_${CURRENT_TIMESTAMP}.png ${error_msg} = Get Error Message Log To Console [迭代${i}失败] 已保存截图:fail_${i}_${CURRENT_TIMESTAMP}.png,错误:${error_msg} Increment a variable signifying the number of fails...
4. 维护失败详情列表并定期输出
用全局列表存储每次失败的迭代次数、时间戳和错误信息,定期(比如每10次失败或固定迭代间隔)输出汇总,避免控制台信息刷屏:
*** Variables *** @{failure_details} # 存储所有失败信息的列表 *** Test Cases *** Very Long Test FOR ${i} IN RANGE 200 TRY Doing testing... EXCEPT ${current_time} = Get Current Time format=%Y-%m-%d %H:%M:%S ${error_msg} = Get Error Message Append To List ${failure_details} 迭代${i} [${current_time}]:${error_msg} Increment a variable signifying the number of fails... # 每10次失败输出一次汇总 ${fail_count} = Get Length ${failure_details} Run Keyword If ${fail_count} % 10 == 0 Log To Console 累计失败${fail_count}次,最新详情:${failure_details}[-10:] ELSE Increment a variable signifying the number of successes FINALLY Cleanup of appdata etc.. END END # 测试结束输出完整失败列表 Log To Console 所有失败详情:${failure_details}
内容的提问来源于stack exchange,提问作者Benni
相关产品推荐
相关产品推荐

