Robot Framework中验证失败时不终止用例执行的实现方法
Robot Framework 多组列表循环验证:失败不终止全用例执行方案
要实现单个验证失败时不终止整个测试用例、记录失败日志并继续执行剩余验证的需求,核心是利用Robot Framework的错误控制关键字,同时封装重复逻辑提升代码复用性。以下是优化后的实现方案:
优化后代码
*** Keywords *** Validate List Pair [Arguments] ${list1} ${list2} ${group_name} # 校验两个列表长度一致,避免索引越界 Run Keyword And Continue On Failure Should Be Equal As Integers ${list1 length}=Get Length ${list1} ${list2 length}=Get Length ${list2} msg=${group_name} 两组列表长度不一致 ${count}= Get Length ${list1} FOR ${i} IN RANGE ${count} ${item1}= Get From List ${list1} ${i} ${item2}= Get From List ${list2} ${i} # 执行断言并捕获失败,继续后续步骤 ${status}= Run Keyword And Return Status Should Be Equal ${item1} ${item2} msg=${group_name} 第${i+1}个元素不匹配:预期[${item1}],实际[${item2}] # 记录每条验证的状态 IF ${status} Log ${group_name} 第${i+1}个元素验证通过 INFO ELSE Log ${group_name} 第${i+1}个元素验证失败 ERROR END END *** Test Cases *** Validating Dropdown # 第一组列表验证 ${sums}= Create List 1234 455 4689 9837 ${sum2}= Create List 1234 455 46 9837 Validate List Pair ${sums} ${sum2} 第一组 # 第二组列表验证 ${sums3}= Create List 12 455 4689 9837 ${sum4}= Create List 34 455 46 9837 Validate List Pair ${sums3} ${sum4} 第二组 # 第三组列表验证 ${sums5}= Create List 1234 455 4689 9837 ${sum6}= Create List 1234 455 4689 9837 Validate List Pair ${sums5} ${sum6} 第三组
关键实现说明
- 错误控制:使用
Run Keyword And Return Status执行断言,它会返回布尔值表示断言是否成功,且失败时不会终止测试执行;搭配Run Keyword And Continue On Failure处理列表长度校验,确保长度不一致时仍能继续执行元素验证。 - 状态记录:通过
IF判断断言结果,分别记录INFO级别的成功日志和ERROR级别的失败日志,清晰追踪每条验证状态。 - 代码复用:封装
Validate List Pair关键字,统一处理两组列表的循环验证逻辑,避免重复代码。 - 修正原代码问题:原代码中第二个循环错误使用了第一组列表的长度变量
${sum_count},优化后通过关键字内部获取列表长度,彻底避免索引越界问题。
内容的提问来源于stack exchange,提问作者Machindra Kale
相关产品推荐
相关产品推荐

