【问题标题】:how to run more then one selenium testing suite on the same machine如何在同一台机器上运行多个硒测试套件
【发布时间】:2015-12-11 06:41:14
【问题描述】:

我正在使用 Java/Selenium webdriver 和 testng 来运行我的测试自动化,我有很多自动化项目,每个项目都使用一个测试套件.xml,我如何在同一台机器上同时运行两个或更多套件, 这是我创建 driverInstance 对象的代码:

public WebDriver getDriverInstance(
                                    String Url,
                                    String browser ) throws MalformedURLException {

    WebDriver driver = null;
    URL url = new URL( Url );
    if( browser.equals( "firefox" ) ) {
        DesiredCapabilities capability = DesiredCapabilities.firefox();
        driver = new RemoteWebDriver( url, capability );
    } else if( browser.equals( "chrome" ) ) {
        DesiredCapabilities capability = DesiredCapabilities.chrome();
        driver = new RemoteWebDriver( url, capability );
    } else if( browser.equals( "IE" ) ) {
        DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
        driver = new RemoteWebDriver( url, capability );
    }
    return driver;
}

【问题讨论】:

    标签: java selenium selenium-webdriver testng selenium-grid


    【解决方案1】:

    您需要在 testng xml 中将属性设置为 parallel="tests"

    <suite name="Parallel test runs" parallel="tests" thread-count="2">
    

    有“parallel”参数。设置为“测试”,因为我们想并行运行测试。另一个参数是“线程数”。如果设置为 2,则将打开两个浏览器,并从列表中运行前两个测试。如果线程数为 5,则将打开五个浏览器,并且所有五个测试都将并行执行!

    对于测试,您的 testng.xml 结构应如下所示:-

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="Parallel test runs" parallel="tests" thread-count="2">
    
    <test name="T_01">
        <classes>
            <class name="testNG.Parallel.Test01" ></class>
        </classes>
    </test>
    
    <test name="T_02">
        <classes>
            <class name="testNG.Parallel.Test02" ></class>
        </classes>
    </test>
    
    <test name="T_03">
        <classes>
            <class name="testNG.Parallel.Test03" ></class>
        </classes>
    </test>
    
    <test name="T_04">
        <classes>
            <class name="testNG.Parallel.Test04" ></class>
        </classes>
    </test>
    
    <test name="T_05">
        <classes>
            <class name="testNG.Parallel.Test05" ></class>
        </classes>
    </test>
    
    </suite>
    

    如果你想并行运行 2 个类

    <suite name="Parallel test suite" parallel="classes" thread-count="2">
    

    对于类,您的 testng.xml 结构应如下所示:-

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="Parallel test suite" parallel="classes" thread-count="2">
      <test name="Test 1">
        <classes>
          <class name="com.parallel.TestParallelClassOne"/>
          <class name="com.parallel.TestParallelClassTwo"/>
        </classes>
      </test>
    </suite>
    

    现在的事情是你需要在同一个项目的不同包中添加两个项目类,并使用我的 1 示例 testng 结构并添加上面的属性。

    如何运行两个套件:-

    <suite name="allSuites">
      <suite-files>
        <suite-file path="suite1.xml" />
        <suite-file path="suite2.xml" />
        ...
      </suite-files>
    </suite>
    

    希望对你有帮助:)

    如果仍然遇到任何问题,请回复我 :)

    【讨论】:

    • 嗨,Shubham,非常感谢您的回复,所以根据您的回答,我应该编辑的唯一地方是 testng xml 套件?还有我的测试用例根据它们所在的组运行,我可以指定项目名称而不是类名吗?由于每个项目都有自己的依赖项,因此无法将所有类分组到一个组中。
    • 是的,您只需要更改您的 testng.xml 文件。不,据我所知,您无法通过该项目,即使对于组而言,这也取决于如何根据组来构建您的测试用例。
    • 所以没有办法用testng同时运行两个不同的xm套件?
    • 您可以使用两个不同的套件并将它们放在 testng.xml 中。但我从来没有尝试过运行两个套件parrelly ..我已经更新了我的答案。请查看
    • 不,你应该使用类或方法。它给了我类似的错误:-套件级别的属性“并行”的未知值:“套件文件”。
    猜你喜欢
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多