0

我在一个大项目中工作,我想在不同的浏览器中并行运行eature cucumber 我有步骤定义的特征?webdriverfactory 和共享首选项。

我在 webfactory 有这个方法,它可以工作,我写了 testng.xml

 public WebDriver driver;
    public static WebDriver get() {
          WebDriver driver = null ;
        System.setProperty("webdriver.chrome.driver","D:\\Drive\\chromedriver_win32\\chromedriver.exe");
        driver= new ChromeDriver();
        return(driver);
    }


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="SuiteSopraHR" parallel="tests">


      <test  name="testie">
    <!--   <parameter name="myBrowser" value="ie" /> -->
        <classes>
          <class name="com.driver.WebDriverFactory"/>
        </classes>
      </test> <!-- Test -->


        <test  name="testchrome">
    <!--   <parameter name="myBrowser" value="chrome" /> -->
        <classes>
          <class name="com.driver.WebDriverFactory"/>
        </classes>

      </test> <!-- Test -->
    </suite> <!-- Suite -->

我不知道如何更改其他方法,因为它没有要传递的任何参数并且它返回一个 Web 驱动程序。当我更改了其他类中的所有其他方法时,请提出任何建议。cucumber-jvm 是否可以在不同的浏览器中并行运行?还是在控制台???

4

3 回答 3

1

您确实可以使用Courgette-JVM并行运行 Cucumber功能场景

当您运行测试时,您可以设置一个系统属性,该属性将针对您希望并行使用的浏览器。

另一个管理驱动程序二进制文件的有用库是WebDriver Binary Downloader

然后,您可以使用以下命令指定要在运行时使用的浏览器:

System.setProperty("浏览器", "chrome");

或者

虚拟机选项 -Dbrowser="chrome"

private WebDriver driver;

public void createDriver() {
    final String browser = System.getProperty("browser", "chrome").toLowerCase();

    switch (browser) {
        case "chrome":
            WebDriverBinaryDownloader.create().downloadLatestBinaryAndConfigure(BrowserType.CHROME);
            driver = new ChromeDriver();

        case "firefox":
            WebDriverBinaryDownloader.create().downloadLatestBinaryAndConfigure(BrowserType.FIREFOX);
            driver = new FirefoxDriver();

        default:
            throw new RuntimeException("Invalid browser specified!");
    }
}
于 2018-04-06T09:30:01.007 回答
0

我们正在使用QAF-Gherkin-client,您可以在其中使用一个或多个 xml 测试节点对其进行配置。您也可以并行运行场景。您无需为驱动程序管理或其他功能测试常见需求编写任何代码。

<suite name="AUT Test Automation" verbose="0" parallel="methods">
      <test name="Tests on chrome">
            <parameter name="driver.name" value="chromeDriver"/>         
            <classes>
                  <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
            </classes>
      </test>
      <test name="Tests FF">
            <parameter name="driver.name" value="firefoxDriver"/>         
            <classes>
                  <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
            </classes>

      </test>
 </suite>
于 2018-04-08T02:27:29.463 回答
0

我认为,您需要在您的方法和参数中添加开关构造 - 来自 testng.xml 的浏览器类型。另外,据我所知,并行执行仅适用于非静态驱动程序。

于 2018-04-06T07:16:25.773 回答