簡體   English   中英

記錄在Browserstack中運行的RSpec硒/水豚測試

[英]Logging for rspec selenium/capybara tests running in Browserstack

我正在使用rspec和capybara在ruby中構建一套自動回歸測試。 為了給您一個測試的想法,想象一下登錄一個網站,添加一個帶有其所有字段的新數據項,保存它,驗證新行,更新行,更改字段,以及更新/驗證它。

例如:

describe "auto regression test #1", :type => :feature, js: true do
  it  "should add and update my data" do
    # login
    # go to page
    # press new button
    # fill in fields
    # etc.
  end
end

這是一個簡化的版本,“ it”中可能發生了許多事情。 最初,我認為我應該將單個測試分為多個案例,但隨后我必須登錄並返回頁面(我認為這是多余的時間,我不需要浪費在自動化測試中-同意?)。

盡管如此,我還是想記錄我正在做的事情,以便它顯示在Browserstack自動記錄選項卡中。 當前的內容與硒操作或屏幕截圖有關。 我想要一些自定義日志記錄。 原因是當我的測試失敗時,我當前會得到一個堆棧跟蹤-行號(很棒)以及失敗的測試。 由於我的測試包含許多功能(因為我不希望rspec反復登錄),如果測試失敗,並且有人正在瀏覽瀏覽器堆棧以查看失敗的地方,那么很難知道邏輯在哪里失敗而無需進行其他操作自定義日志記錄。 如何放置自定義日志記錄,以便可以在瀏覽器堆棧中看到文本? (還是我全都錯了,即使有問題,我也應該將測試分成幾小部分)?

我可以給您的建議是:

1 :. 每個測試都應該是單個用例場景。 如果失敗,你知道為什么

2 :. 如果您需要執行許多步驟來實現用例場景,則應該將元素抽象為代表頁面的類( https://code.google.com/p/selenium/wiki/PageObjects ),甚至可以走得更遠並添加抽象多個頁面操作的流程。 因此,如果在驗證之前的某個步驟中失敗了,您將知道失敗的元素/頁面,並知道出了什么問題。

3:。 如果即使使用BrowserStack日志記錄和屏幕截圖,您仍然無法理解測試中出了什么問題,那么您的問題就不是缺少日志記錄,而是測試的編寫方式

首先,我同意在每個方案/示例的開頭進行登錄會浪費時間,並且肯定是多余的。 有關在每個測試之間保持cookie會話的信息,請參見此問題 另請閱讀此方法的利弊。

您的測試需要正確編碼。 這意味着每一行代碼應與用戶將執行的手動執行步驟對齊。 這應該使您可以輕松地跟蹤和重現發生的任何故障。

測試絕對可能在任何地方失敗,並且在您可能想到的每個地方都內置自定義消息傳遞/異常處理會帶來太多開銷。 首先編寫可靠的確定性測試,然后縮小故障范圍(應該是很少的數量),這會更有幫助。

什么你不可能做的是包裝在一個異常塊中的每個場景/例子,並采取截圖應該故障發生。 這比在整個套件中添加自定義錯誤消息要少得多的開銷。

您可以通過執行Selenium測試中的以下JavaScript,嘗試在BrowserStack的“自動”儀表板上生成的日志中創建自己的自定義消息:

(例如,在Ruby中)

driver.execute_script("\\" <Write your custom log here> \\";")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM