Robotframework 获取等待关键字成功的重试次数
我们正在使用Robot框架测试一个很容易出错的组件,我们无法调试它。该组件的行为有些不稳定,因此在一些地方,我们使用关键字Robotframework 获取等待关键字成功的重试次数,robotframework,built-in,Robotframework,Built In,我们正在使用Robot框架测试一个很容易出错的组件,我们无法调试它。该组件的行为有些不稳定,因此在一些地方,我们使用关键字等待,直到关键字成功通过SSH连接10x 1s进行多次尝试,即使它在第一次尝试时应该可以工作 不,最好获取关键字的重试次数,以便在需要多次重试时发出警告Log消息 以下片段说明了我想要实现的目标: ${result} ${noRetries}= Wait Until Keyword Suceeds with Return 10x 1s Connect Vi
等待,直到关键字成功通过SSH连接10x 1s
进行多次尝试,即使它在第一次尝试时应该可以工作
不,最好获取关键字的重试次数,以便在需要多次重试时发出警告Log
消息
以下片段说明了我想要实现的目标:
${result} ${noRetries}= Wait Until Keyword Suceeds with Return 10x 1s Connect Via SSH
Run Keyword If ${noRetries}>1 Log ${noRetries} were necessary for Connect Via SSH level=WARN
有没有一种方法可以通过Robot框架轻松实现这一点?我会创建一个更高级别的关键字,其中包含一个不稳定的关键字,并在其中进行增量尝试 编辑。用自定义库示例更新答案(选项B) 库解决方案使Robot文件更干净,因为复杂性被转移到Python端 选项A. 使用Robot框架测试变量
*** Settings ***
Test Setup Set Test Variable ${KW_RUNS} ${0}
*** Keywords ***
Flaky Keyword
Set Test Variable ${KW_RUNS} ${KW_RUNS+1}
Connect Via SSH
*** Test Cases ***
Trying something here
${result} Wait Until Keyword Succeeds 10 1s Flaky Keyword
Run Keyword If ${KW_RUNS}>1 Log ${KW_RUNS} were necessary for Connect Via SSH level=WARN
选项B.
使用Robot框架自定义库
flakylib.py
withlib.robot
我将创建更高级别的关键字,其中包含的关键字是片状的,并在其中进行增量尝试 编辑。用自定义库示例更新答案(选项B) 库解决方案使Robot文件更干净,因为复杂性被转移到Python端 选项A. 使用Robot框架测试变量
*** Settings ***
Test Setup Set Test Variable ${KW_RUNS} ${0}
*** Keywords ***
Flaky Keyword
Set Test Variable ${KW_RUNS} ${KW_RUNS+1}
Connect Via SSH
*** Test Cases ***
Trying something here
${result} Wait Until Keyword Succeeds 10 1s Flaky Keyword
Run Keyword If ${KW_RUNS}>1 Log ${KW_RUNS} were necessary for Connect Via SSH level=WARN
选项B.
使用Robot框架自定义库
flakylib.py
withlib.robot
不使用vanilla关键字-它只返回被调用关键字的结果;它实际上是这样做的:
在try-catch块中返回self.run_关键字(name,*args)
。您可能需要创建一个自定义关键字或python方法,该方法会同时返回结果和重试次数;它实际上是这样做的:在try-catch块中返回self.run_关键字(name,*args)
。您可能需要创建一个自定义关键字或python方法,该方法将返回结果和重试次数。感谢您的快速回复。我经常使用Wait-Until关键字成功。也许还有一个更通用的解决方案,但我真的不知道怎么做。仍然非常感谢您的解决方案,它至少起作用了。:-)很好,它可以工作:)另一个解决方案是使用关键字创建您自己的customlibrary,它基本上可以完成我在示例中发布的内容。使用选项2,调用方将无法返回被调用关键字的返回值,这在很多情况下可能是必需的。最可靠的方法是重新实现等待\u,直到\u关键字成功
关键字,同时返回重试次数。感谢您的快速回复。我经常使用Wait-Until关键字成功。也许还有一个更通用的解决方案,但我真的不知道怎么做。仍然非常感谢您的解决方案,它至少起作用了。:-)很好,它可以工作:)另一个解决方案是使用关键字创建您自己的customlibrary,它基本上可以完成我在示例中发布的内容。使用选项2,调用方将无法返回被调用关键字的返回值,这在很多情况下可能是必需的。最可靠的方法是重新实现等待\u,直到\u关键字成功
关键字,但也返回重试次数。
*** Settings ***
Library flakylib.py
*** Test Cases ***
Trying something here
${status} ${runs}= Run Flaky KW name=Connect Via SSH