Robotframework 使用Robot框架拍摄故障截图

Robotframework 使用Robot框架拍摄故障截图,robotframework,Robotframework,我是机器人框架的新手。我想知道如何捕捉失败的截图。 如果脚本失败,robot框架不会自动截图吗? 举个例子会很有帮助 这实际上是Selenium2库的一个功能,如果您正在进行基于硒的测试,Robot将需要它 更多信息可在此处找到: 正如文档中所说,设置故障屏幕截图非常容易,例如,这里是我正在使用的一个测试套件: Library Selenium2Library timeout=10 implicit_wait=1.5 run_on_failure=Capture Page Scr

我是机器人框架的新手。我想知道如何捕捉失败的截图。 如果脚本失败,robot框架不会自动截图吗?
举个例子会很有帮助

这实际上是Selenium2库的一个功能,如果您正在进行基于硒的测试,Robot将需要它

更多信息可在此处找到:

正如文档中所说,设置故障屏幕截图非常容易,例如,这里是我正在使用的一个测试套件:

Library    Selenium2Library  timeout=10   implicit_wait=1.5   run_on_failure=Capture Page Screenshot

您可以使用以下关键字在您想要的任何步骤后捕获屏幕快照:

Capture Page Screenshot

希望这是有帮助的

在这种情况下,一旦执行/未执行测试用例,将执行拆卸,如果测试用例失败,将截图:

[Teardown]    Run Keyword If Test Failed    Capture Page Screenshot
或者,如果您不需要对特定测试进行不同的拆分,您可以在套件级别上做得更好:

[Test Teardown]    Run Keyword If Test Failed    Capture Page Screenshot

到目前为止,所有其他答案都假设您正在使用硒

如果没有,则有一个“截图”库,其关键字为“拍摄截图”。要包含此库,只需将“库截图”放在设置表中即可

在我的robotframework代码中,我的拆卸都只是引用了一个名为“Default Teardown”的关键字,该关键字定义为:

Default Teardown
    Run Keyword If Test Failed    Take Screenshot
    Close All
(我认为closeall可能是我自定义的关键字之一)

我注意到Take Screenshot关键字有一些问题。其中一些可能是可配置的,但我不知道。首先,它将拍摄您的屏幕截图,不一定只是您感兴趣的应用程序。因此,如果您正在使用此功能,并且允许其他人查看生成的屏幕截图,请确保您的屏幕上没有其他您不想共享的内容

此外,如果您启动测试,然后锁定屏幕,以便在它运行时快速休息,那么所有屏幕截图将只是锁定屏幕的图片

我也在Jenkins服务器上使用它,它使用xvfb run命令来创建一种伪GUI来运行robot框架测试。如果您也在这样做,请确保在xvfb run命令中包含以下内容:

xvfb-run --server-args="-screen 0 1024x768x24" <rest of your command>
xvfb运行--server args=“-screen 0 1024x768x24”
你必须决定什么屏幕分辨率最适合你,但我发现,使用默认屏幕分辨率,我的应用程序只有一小部分被捕获


长话短说,如果您使用的是selenium,我认为您最好使用捕获页面截图。然而,如果您不是,这可能是您最好(或唯一)的解决方案。

我相信它会在失败时自动完成。不是吗?“拍摄带有时间戳的屏幕截图”关键字未找到抱歉Sveatoslav,当我最初回答时,我没有意识到这是一个自定义关键字。默认情况下,我已将该关键字替换为Selenium2库中的关键字。谢谢你叫出来!不用担心,你也可以发布自定义的吗?对不起,Sveatoslav,我不知道它来自哪个应用程序,所以我无法访问它。从名字上说,我想象它只是简单地截图并在控制台上打印一个时间戳。哦,我以为这是一个带有时间戳的自定义截图名称