【问题标题】:Taking screenshots on failure using Robot framework使用 Robot 框架截取失败的屏幕截图
【发布时间】:2019-03-28 00:07:28
【问题描述】:

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

【问题讨论】:

  • 我相信它会在失败时自动完成。不是这样吗?

标签: robotframework


【解决方案1】:

这实际上是 Selenium2Library 的一项功能,如果您进行基于 Selenium 的测试,Robot 将需要此功能。

更多信息可以在这里找到:http://robotframework.org/Selenium2Library/doc/Selenium2Library.html

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

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

【讨论】:

  • “使用时间戳截屏”关键字未找到
  • 道歉 Sveatoslav,当我最初回答时,我没有发现它是自定义关键字。默认情况下,我已将关键字替换为 Selenium2Library 中的关键字。感谢您的呼唤!
  • 别担心,你也可以发布自定义的吗?
  • 抱歉 Sveatoslav,我不知道它来自哪个应用程序,所以无法访问它。从名字上说,我想它只是截取屏幕截图并将时间戳打印到控制台。
  • 哦,我还以为是带有时间戳的自定义截图名称
【解决方案2】:

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

Capture Page Screenshot

希望这对您有所帮助!

【讨论】:

  • 这将要求“可怜的家伙”在他的测试中的任何单个关键字下面添加该关键字.. 确实效率不高,但它会起作用 :-D
【解决方案3】:

在这种情况下,一旦测试用例执行/不执行,就会执行teardown,如果测试用例失败,则会截图:

[Teardown]    Run Keyword If Test Failed    Capture Page Screenshot

或者,如果您不需要针对特定​​测试进行不同的拆解,您可以在套件级别上做得更好:

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

【讨论】:

    【解决方案4】:

    到目前为止,所有其他答案都假设您使用的是 Selenium

    如果您不是,则有一个“屏幕截图”库,其中包含关键字“截屏”。要包含此库,您只需将“库屏幕截图”放入设置表中即可。

    在我的机器人框架代码中,我的拆解都只是引用了一个名为“默认拆解”的关键字,其定义为:

    Default Teardown
        Run Keyword If Test Failed    Take Screenshot
        Close All
    

    (我认为 Close All 可能是我的自定义关键字之一)。

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

    另外,如果您开始测试然后锁定屏幕以便在运行时稍作休息,那么您的所有屏幕截图都将只是锁定屏幕的图片。

    我也在我的 Jenkins 服务器上使用它,它使用 xvfb-run 命令创建一种假 GUI 来运行机器人框架测试。如果您也这样做,请确保在您的 xvfb-run 命令中包含类似于

    的内容
    xvfb-run --server-args="-screen 0 1024x768x24" <rest of your command>
    

    您必须决定哪种屏幕分辨率最适合您,但我发现使用默认屏幕分辨率时,我的应用只捕获了一小部分。

    长话短说,如果您使用 selenium,我认为最好使用 Capture Page Screenshot。但是,如果您不是,这可能是您最好(或唯一)的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多