2016-12-20 67 views
1

我的appium/python測試套件具有所有需要先登錄應用程序的測試。 GitHub示例僅顯示套件中每個測試的setUp/tearDown Web驅動程序。在我的情況下,重用所有測試的現有webdriver會話將會很好。如何在AWS設備場的課堂測試中重複使用webdriver會話?

但是,會在AWS Device Farm環境中爲每個測試方法執行setUpClass/tearDownClass方法。我嘗試創建webdriver作爲類變量在AWS Device Farm中不起作用(儘管在本地工作)。

什麼是設置webdriver會話,登錄到應用程序,然後運行套件中的所有測試重用相同的Web驅動程序會話,然後從應用程序註銷並退出webdriver的最佳方式是什麼?

回答

0

我爲AWS Device Farm團隊工作。 對於在每次測試之前和之後運行的測試中的安裝和拆卸類,您都是正確的。

設備場中的每個測試都針對一個新的appium服務器/會話實例運行。這有助於我們向用戶提供更詳細的報告和測試工件。

我們也沿用了大多數測試框架定義的用戶測試模塊。這意味着測試中不存在依賴關係。

一種方法,而不是最好的方法,實現你正在尋找的就是讓所有的測試方法按照你喜歡的順序在一箇中心測試用例中調用。通過這種方式,您可以在該測試用例中登錄並執行其他操作。缺點顯而易見的是,如果這些測試中的任何一個測試失敗,它會報告主測試失敗,您將不得不編寫測試,以便在日誌中顯示測試失敗的部分。

第二種方法是在需要它的測試之前設置登錄步驟。這樣你的測試也是模塊化的,不依賴於對方。

我們隨時歡迎您的反饋,並且我已經注意到這是一項功能要求。 希望這有助於。

+0

謝謝,我將你的答案標記爲問題解決者,僅僅是因爲它明確地證實了問題:)可能這個問題在ADF中沒有直接的解決方案。這兩種方法都有很大的侷限性。將我所有的測試放在一個巨大的ADF測試中會隱藏很多我想避免的測試數據。在每個測試的setUp/tearDown方法中放置webdriver實例化/發佈和登錄/註銷顯然是可行的,但可能會顯着增加運行這些測試的成本(希望它不是這種ADF方法測試分離背後的主要原因) – Ken

+0

肯,不,這不是因爲這樣設置它的原因。 我們基於分離的主要前提是用戶測試將是模塊化的,因爲沒有很多用戶擁有依賴測試模型。儘管我完全認爲它在某些情況下可能會有用。 讓我知道,如果我可以幫助其他任何事情。 – NikofTime