Webdriver多个浏览器测试

时间:2016-10-06 21:29:12

标签: selenium-webdriver webdriver selenium-chromedriver browserstack

在我的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)版本的测试?

我应该如何设计我的框架?有什么建议。非常感谢!

2 个答案:

答案 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{
       }
  }