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关键字


有关该关键字的更多信息,请参阅。

是的,您是对的,我的情况很奇怪。实际上,浏览器上的“慢速脚本错误弹出”阻止了测试,但我最初的猜测是错误的,我误解了超时。