黃瓜跨瀏覽器測試
回答
當你提到「三個平行的不同的瀏覽器」你的意思是像的Chrome,Firefox和探險家在Chrome僅的平行 OR 三種不同的情況下運行。
如果是秒請參閱本文 - https://opencredo.com/running-cucumber-jvm-tests-in-parallel/。這背後的基本邏輯是爲所需的並行實例的數量分成單獨的JVM。這是使用Maven surefire插件完成的。
如果第一個的情況下,那麼你將需要修改某些方面。該插件將'fork number'傳遞給JVM,您可以使用它來實例化該JVM的特定瀏覽器驅動程序。
我使用Java 8, junit 4.12, picocontainer for Dependency Injection, Maven 3
(不會以較低的版本一起爲「叉號」傳遞空),selenium 2.53
(u需要弄清楚的硒3碼的變化,如果在驅動程序的創建需要)和瀏覽器Chrome and Firefox
(你需要添加代碼爲IE)。
代碼從文章的github
- 更改
ShareDriver.java
- 這個覆蓋靜態塊,並添加其他方法。
static { instantiateDriver(); Runtime.getRuntime().addShutdownHook(CLOSE_THREAD); } private static void instantiateDriver() { //numFork will be passed in the maven command line or eclipse //--- clean install -DnumFork=${surefire.forkNumber} int browserType = Integer.parseInt(System.getProperty("numFork")); System.out.println("BROWSER TYPE "+browserType); if(browserType == 1) instantiateChromeDriver(); else if (browserType == 2) instantiateFirefoxDriver(); else if (browserType == 3) { instantiateIEDriver(); } } private static void instantiateIEDriver() { //Implement this } private static void instantiateFirefoxDriver() { REAL_DRIVER = new FirefoxDriver(); REAL_DRIVER.manage().window().maximize(); } private static void instantiateChromeDriver() { System.setProperty("webdriver.chrome.driver", "location of chromedriver.exe"); ChromeOptions chop = new ChromeOptions(); chop.addArguments("test-type"); chop.addArguments("start-maximized"); chop.addArguments("--disable-extensions"); REAL_DRIVER = new ChromeDriver(chop); }
更改
feature files
- 取下標籤。更改其中一個功能文件以包含其他一些步驟。編碼步驟定義類中的新步驟。更改爲
runner classes
- 從cucumber選項中刪除標籤選項,您可能需要添加glue選項以指向您的步驟定義類。所以有效的跑步者類都是一樣的。如果需要,可以刪除其中一個跑步者類。其他測試將在每個瀏覽器中重複兩次。pom.xml
- 確保定義的分叉數量(<surefire.fork.count>5</surefire.fork.count>
)大於您正在使用的瀏覽器數量。否則邏輯將失敗。
運行Maven中 - 您可以從Eclipse在目標選擇使用命令clean install -DnumFork=${surefire.forkNumber}
插件運行。或從命令行使用mvn clean install -DnumFork=${surefire.forkNumber}
。
這應該在所有瀏覽器實例中的所有功能文件中運行所有方案。您可以優化標籤和功能等cucumberoptions以運行特定方案或功能文件。
我的意思是第一個案子。 –
我會選擇執行構建三次。我將爲每個執行決定使用哪個瀏覽器設置一個環境變量。
要並行運行它們,我會編寫一個shell腳本來設置環境變量並啓動三次執行。
- 1. 黃瓜硒 - 並行瀏覽器測試
- 2. 從Jenkins運行黃瓜測試時瀏覽器未打開
- 3. 黃瓜測試
- 4. 跨瀏覽器UI測試
- 5. 跨瀏覽器測試
- 6. 跨瀏覽器測試
- 7. 的黃瓜測試
- 8. 黃瓜is_admin?測試
- 9. 等着黃瓜,不關閉瀏覽器
- 10. 運行黃瓜試驗時;瀏覽器文本太小
- 11. 我黃瓜測試場景
- 12. 用黃瓜測試SWFUpload
- 13. 黃瓜測試重定向
- 14. 黃瓜Junit測試代碼
- 15. 黃瓜+測試JS警報
- 16. 黃瓜和JUnit測試
- 17. NoMethodError運行黃瓜測試
- 18. 黃瓜/ RSpec的測試
- 19. 黃瓜測試框架
- 20. 用黃瓜測試外鍵
- 21. 測試設計與黃瓜
- 22. jQuery.live()和黃瓜測試
- 23. 黃瓜測試停止
- 24. 在黃瓜堆積測試
- 25. 黃瓜測試java示例?
- 26. 重複小黃瓜測試
- 27. 如何寫黃瓜測試?
- 28. 如何測試與黃瓜
- 29. 尋找一個「無頭瀏覽器」相當於用於黃瓜測試的PHP
- 30. 當瀏覽器被最小化時,水豚黃瓜測試未能找到xpath
你使用的是testng還是junit? – Grasshopper
我正在使用junit。 –