如何获取Robot Framework失败测试用例逗号分隔列表用于Jenkins重跑?
两种简便实现方案
方案一:用Robot Framework自带的rebot命令提取(无需修改测试代码)
在Jenkins构建步骤中,测试执行完成后添加一个shell步骤,用rebot工具直接从output.xml中提取失败用例,再转成逗号分隔格式:
# 提取所有失败用例的名称(每行一个) failed_tests=$(rebot --list failed output.xml) # 将换行替换为逗号,并移除末尾多余的逗号 failed_test_list=$(echo "$failed_tests" | tr '\n' ',' | sed 's/,$//') # 可选:将结果写入环境变量文件,供后续构建步骤使用 echo "FAILED_TESTS=${failed_test_list}" >> ${WORKSPACE}/failed_tests.env
执行后,failed_test_list就是你需要的逗号分隔字符串,直接传给后续重跑任务即可。
方案二:用Robot Framework内置关键字生成(轻量代码实现)
如果想在测试过程中直接生成结果,不用额外命令行工具,可利用Robot 3.2+自带的内置关键字,在全局套件拆解中统一处理:
*** Settings *** Suite Teardown Collect & Export Failed Tests *** Keywords *** Collect & Export Failed Tests # 直接获取所有失败测试用例的名称列表 ${failed_test_names}= Get Failed Tests # 将列表拼接为逗号分隔的字符串 ${failed_test_string}= Join List ${failed_test_names} , # 输出到控制台,方便Jenkins捕获 Log To Console [FAILED_TESTS] ${failed_test_string} # 可选:写入文件,便于后续读取 Create File ${OUTPUT_DIR}/failed_tests.txt ${failed_test_string}
这个方案比手动维护全局变量的思路更简洁,Get Failed Tests会自动收集所有层级的失败用例,无需在每个测试拆解里单独处理。
内容的提问来源于stack exchange,提问作者JollyJoker
相关产品推荐
相关产品推荐

