在我的UI-Tests框架中,我有5个webdriver测试,目前只在firefox浏览器中运行。
我需要在chrome和firefox的多个版本中运行我的测试。
我们有一个浏览器堆栈许可证,可以使用RemoteWebdriver在chrome和firefox的多个浏览器版本上运行。
1)我应该如何在BeforeMethod或BeforeClass中创建驱动程序实例?2)我应该如何迭代所有浏览器组合,比如Firefox45,46,Chrome51,52,从单个maven目标mvn测试中逐一迭代(浏览器?3)如何跳过一个特定浏览器(Firefox45,而不是Chrome51)版本的测试?
我应该如何设计我的框架?有什么建议吗。非常感谢!
发布于 2016-10-07 11:59:55
这完全取决于您的实现。我们使用开源的QMetry自动化框架来实现并行执行和配置。它具有代码之外的驱动程序配置。例如:
<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。
发布于 2016-10-11 23:56:11
如果你不想并行运行不同的浏览器。然后,您可以使用Cucumber来编写自动化测试。
Cucumber允许您正确的场景轮廓,您可以这样使用。
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|
上面是一个特征文件,您可以为其创建包含步骤定义的step文件。类似于下面的内容
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{
}
}
https://stackoverflow.com/questions/39905907
复制相似问题