Robotframework 最大重试次数
我遇到了一个冻结测试,但实际上它陷入了重试循环Robotframework 最大重试次数,robotframework,Robotframework,我遇到了一个冻结测试,但实际上它陷入了重试循环 等待关键字成功| 60秒| 12秒 第一个参数是尝试超时,第二个参数是重试间隔。然而,如果任务类似于大型数据集上的“Xpath应匹配X次”,则在给定时间内可能永远不会成功,下一次尝试将从头开始 在这种情况下,有没有办法限制最大重试次数?您的情况有点奇怪,因为理论上不存在“无限重试循环”和“等待”关键字成功,因为第一个参数不是“尝试超时”,而是“所有尝试的全局超时”。因此,在您的情况下,它将每12秒尝试一次,并在60秒后停止。也许你应该重新考虑你使用
等待关键字成功| 60秒| 12秒
第一个参数是尝试超时,第二个参数是重试间隔。然而,如果任务类似于大型数据集上的“Xpath应匹配X次”,则在给定时间内可能永远不会成功,下一次尝试将从头开始
在这种情况下,有没有办法限制最大重试次数?您的情况有点奇怪,因为理论上不存在“无限重试循环”和“等待”关键字成功,因为第一个参数不是“尝试超时”,而是“所有尝试的全局超时”。因此,在您的情况下,它将每12秒尝试一次,并在60秒后停止。也许你应该重新考虑你使用这些信息的价值 要回答您的问题,没有办法(AFAIK)给出最大尝试次数。我非常需要一些关键字,我想出了自己的自定义关键字:
Run_keyword_n_times_and_stop_if_success
[Arguments] ${keyword} ${number_tries}
:FOR ${index} IN RANGE ${number_tries}
\ ${result} ${error_message} = Run Keyword And Ignore Error ${keyword}
\ Pass Execution If '${result}' == 'PASS' keyword execution was successful
Fail ${error_message}
这只适用于没有参数的关键字,但可能会对您有所帮助(因为您没有参数,或者您可以详细说明第一个版本)谢谢您提供的重试关键字。将其与带参数的关键字一起使用
Run Keyword N Times And Stop If Success
[Arguments] ${number_tries} ${keyword} @{args}
: FOR ${index} IN RANGE ${number_tries}
\ ${result} ${error_message} = Run Keyword And Ignore Error ${keyword} @{args}
\ Pass Execution If '${result}' == 'PASS' keyword execution was successful
Fail ${errorLog_message}
示例用法:
@{args} Create List @{User} ${Url} ${Browser}
Run Keyword N Times And Stop If Success 5 Login @{args}
此后,这已作为关键字的参数实现。
使用的一个例子可以看作是:
等待关键字成功| 5x | 30秒| Flaky关键字
有关该关键字的更多信息,请参阅。是的,您是对的,我的情况很奇怪。实际上,浏览器上的“慢速脚本错误弹出”阻止了测试,但我最初的猜测是错误的,我误解了超时。