2017-04-10 62 views
1

我是自動化測試的新手。 目前正在進行手動測試,並嘗試使用Pyhton使用Selenium Webdriver自動執行此過程。 我正在創建一個測試套件,它將運行不同的腳本。每個腳本將在不同的功能上運行測試。 我被卡住了。 我正在從事金融Web應用程序。最初的腳本將創建財務交易,所有其他腳本將測試此交易的不同功能。 我不知道如何處理這種情況。我應該只將第一個腳本(新創建的交易)的URL傳遞到套件中的所有其他腳本中,因此所有測試都按照相同的交易運行,並且沒有爲每個測試創建一個新的腳本?我該怎麼做呢? 或者可能有更好的方法來做到這一點? 深切感謝任何建議!謝謝!如何在同一筆交易上運行所有測試。 Selenium Webdriver + Python

+0

歡迎來到Stack Overflow!請閱讀[問]。請提供您嘗試過的代碼以及執行結果,包括任何錯誤消息等。還請提供指向頁面和/或相關HTML的鏈接。 – JeffC

回答

0

最好你會讓每個測試都能獨立運行。如果您有辦法通過API或數據庫創建交易,而不是通過用戶界面創建交易,則可以爲每個測試調用該交易。並且,如果可能的話,在你的測試運行之後也清理那些數據。

如果這不可行,您還可以在數據庫中記錄一些測試數據,xmljson文件。然後,您的以下測試可以讀取該數據以獲取運行測試所需的內容。在這種情況下,它會提到你的財務交易。

第二個選項並不理想,但在某些情況下可能適用。

0

有一對夫婦在這裏的方法,可以幫助,而一些這取決於如果你使用一個框架,或使用硒API從頭開始只是建立。

  1. 在套件或測試級別使用setup和teardown方法。

這可能是最簡單的方法,並且接近您在帖子中詢問的內容。每一個框架,我在努力支持某種形式的安裝和拆卸方法的開箱即用,即使沒有,他們並不難寫。在你的情況中,你有一個調用每個測試用例的腳本,所以只需在套件的開頭添加一個before()方法,創建你正在處理的財務交易。

如果您想爲每個單獨的測試提出了新的交易,只是把之前()方法在父類中的每個測試用例,使他們繼承和每情況下運行它。

  • 使用自定義的測試數據
  • 這可能是更好的方式來做到這一點,但假設你有DB訪問或與DBM良好的關係。你一般不希望一個測試案例的成功依靠的另一個成功(什麼先來回答isolaton的意思)。如果文檔的創建以某種方式失敗,那下游的每一個測試也將失敗,即使他們正在測試不同的功能,可能是工作。這導致很多覆蓋範圍的丟失。

    因此,不要每次創建一個新的財務文檔,都要與您的DBM交談,看看是否有可能創建一組測試數據,這些測試數據位於您的測試數據庫中或插入到測試套件的開頭。

    這樣你就有1個測試文檔創建測試,X測試基於測試數據驗證它的功能,而且這些測試不相互依賴。

    相關問題