我很惊讶没有找到任何智能解决方案如何使用Selenium网格但使用了多个浏览器每次测试运行Selenium测试的webdriver。 最好我想有一些样的配置(文件或硬编码),在那里我可以指定我想我的测试运行所有的浏览器。 然后,每个测试将在每个浏览器上运行。
我想这是可以编写自己的TestRunner并放置一个迭代循环每次测试过所有的浏览器响了。 但也许有人知道一个更优雅的解决方案吗? 有人已经做到了这一点?
PS我已经发现了劝复制测试,每个测试指定浏览器参数的解决方案。 我不希望出现这种情况。
我不熟悉硒电网,但我知道你可以在不同的线程运行的每个测试同时具有硒打开多个浏览器。 你可能想在看看这个。
我在我的每一个TestNG的套件指定不同的浏览器参数的方式解决了这个。
我做的是运行在我的一流水平测试,然后创建一个的testng.xml然后里边有规定什么课我希望运行和什么浏览器应该运行。 所以,我的TestNG的文件看起来是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<suite name = "suite1" verbose = "6" preserve-order="true" parallel = "false" thread-count="1">
<test name = "Any Test">
<parameter name = "browser" value ="chrome">
<parameter name = "port" value = "5555">
</parameter>
</parameter>
<classes>
<class name = "name of class to run"/>
</classes>
</test>
</suite>
然后,因为我对硒电网运行我通过对浏览器和端口参数在我的代码如下所示:
@BeforeMethod()
@Parameters({"browser","port"})
public void launchBrowsers(String browser, String port) throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName(browser);
capabilities.setJavascriptEnabled(true);
setSelenium(new RemoteWebDriver(new URL("http://localhost:".concat(port).concat("/wd/hub")), capabilities));
getSelenium().get(baseUrl);
getSelenium().manage().window().maximize();
}
希望这可以帮助