在我的UI-Tests Framework中,我有5个webdriver测试,目前只在firefox浏览器中运行。
我需要在chrome& amp;中运行我的测试firefox多个版本。
我们有一个浏览器堆栈许可证,可以使用RemoteWebdriver针对chrome和amp;的多个浏览器版本运行火狐。
1)我应该如何在BeforeMethod或BeforeClass中创建驱动程序实例? 2)我应该如何迭代所有浏览器组合让我们说一下火狐45,46,Chrome 51,52来自单个maven目标mvn测试一个接一个(浏览器? 3)如何跳过一个特定浏览器(firefox 45,而不是chrome 51)版本的测试?
我应该如何设计我的框架?有什么建议。非常感谢!
答案 0 :(得分:0)
这完全取决于您的实施。我们正在使用开源QMetry Automation Framework来实现并行执行和配置。它在代码之外有驱动程序配置。例如:
<suite name="AUT Test Automation" verbose="0" parallel="true">
<parameter name="brand.name" value="westin" />
<parameter name="target.platform" value="mobile" />
<test name="Mobile Web Tests on IPhone">
<parameter name="remote.server" value="10.12.49.180"/>
<parameter name="remote.port" value="3001" />
<parameter name="driver.name" value="iphoneRemoteDriver" />
...
</test>
<test name="Mobile Web Tests on android">
<parameter name="remote.server" value="10.12.48.87"/>
<parameter name="remote.port" value="8080" />
<parameter name="driver.name" value="androidRemoteDriver"/>
...
</test>
</suite>
有关详细信息,请参阅detailed documentation。
答案 1 :(得分:0)
如果您不想并行运行不同的浏览器。然后你可以使用Cucumber为你写自动化测试。
Cucumber允许您使用Scenario Outline,您可以这样使用。
test.feature
Feature: test different browser
Scenario Outline:test
GIVEN I select <browser>
WHEN I do something
THEN i get some result
Examples:
|browser|
|chrome|
|firefox|
上面是一个功能文件,您可以为其创建包含步骤定义的步骤文件。像下面的东西
stepfile.java
@Given("^I select (.+)")
public void selectBrowser(String browser) throws Throwable {
if(browser.equals("chrome")){
driver = new ChromeDriver();
}
else if(browser.equals("firefox")){
driver = new FirefoxDriver();
}
else{
}
}