簡體   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