Java 如何在同一台机器上运行多个selenium测试套件
我正在使用Java/Selenium webdriver和testng来运行我的测试自动化,我有许多自动化项目,每个项目都使用一个testing suite.xml,如何在同一台机器上同时运行两个或更多套件, 以下是我创建driverInstance对象的代码:Java 如何在同一台机器上运行多个selenium测试套件,java,selenium,selenium-webdriver,testng,selenium-grid,Java,Selenium,Selenium Webdriver,Testng,Selenium Grid,我正在使用Java/Selenium webdriver和testng来运行我的测试自动化,我有许多自动化项目,每个项目都使用一个testing suite.xml,如何在同一台机器上同时运行两个或更多套件, 以下是我创建driverInstance对象的代码: public WebDriver getDriverInstance( String Url,
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;
}
您需要在testng xml中将属性设置为parallel=“tests”
<suite name="Parallel test runs" parallel="tests" thread-count="2">
有一个“平行”参数。设置为“tests”,因为我们希望并行运行测试。另一个参数是“线程数”。如果设置为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>
<!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>
如果您想并行运行两个类
<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 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>
<!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>
...
希望它能帮助你:)
如果仍然面临任何问题,请与我联系:)Hi Shubham,非常感谢您的回复,因此根据您的回答,我应该编辑的唯一地方是testng xml套件?还有,我的测试用例是根据它们所在的组运行的,我可以指定项目名称而不是类名吗?因为每个项目都有它自己的依赖项,所以无法将所有类分组在一个组中。是的,您只需要更改testng.xml文件。不,根据我所知,您无法通过项目,甚至对于组,这取决于如何根据组构造测试用例。因此,无法使用testng同时运行两个不同的xm套件?您可以使用两个不同的套件,并将它们放在testng.xml中。但我从来没有试过一步一步地管理两套套房。。我已经更新了我的答案。请复习不应该使用类或方法。它给我的错误如下:-套件级别属性“parallel”的未知值:“套件文件”。