繁体   English   中英

拍摄场景失败截图

[英]Take a scenario failure screenshot

在我使用 Ruby / Capybara / Cucumber / Selenium 的自动化测试中,当我的测试的某些步骤失败时,有必要执行以下步骤:

  • 截取浏览器截图
  • Stacktrace 取出的图片
  • 执行下一个场景。

知道如何帮助我解决这个问题吗?

今天系统截屏作为场景成功的证据,但现在我想在不干扰我所有测试的执行的情况下截取失败的截图,跟随下一步或场景的执行。

当前用作截屏钩子的示例代码:

After do | scenario |
  screenshot = "log / screenshots / # {scenario.name} .png"
  page.save_screenshot (screenshot)
  embed (screenshot, 'image / png', 'Screen_Evidence')
end

这应该为您在故障点创建一个屏幕截图。

  config.after(:each) do |example|
    if example.exception
      screenshot = "log / screenshots / # {scenario.name} .png"

page.save_screenshot(screenshot) embed(screenshot, 'image/png', 'Screen_Evidence') end end

您可能希望将其限制为功能测试,并且您可以选择尝试将现有屏幕截图代码重构为相同的功能。

试试这个方法。

After do |scenario|
if scenario.failed?
    timestamp = "#{Time.zone.now.strftime('%Y-%m-%d-%H:%M:%S')}"
    screenshot_name = "screenshot-#{scenario.name}-#{timestamp}.png"
    screenshot_path = "#{Rails.root.join(provide path to save screenshots)}/#{screenshot_name}"
    Capybara.page.save_screenshot(screenshot_path, full: true)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM