黄瓜跨浏览器测试
回答
当你提到“三个平行的不同的浏览器”你的意思是像的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。 –