如何在同一台机器上运行多个硒测试套件
Posted
技术标签:
【中文标题】如何在同一台机器上运行多个硒测试套件【英文标题】: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;
【问题讨论】:
【参考方案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 ..我已经更新了我的答案。请查看 不,你应该使用类或方法。它给了我类似的错误:-套件级别的属性“并行”的未知值:“套件文件”。以上是关于如何在同一台机器上运行多个硒测试套件的主要内容,如果未能解决你的问题,请参考以下文章
如何在机器人框架中并行运行多个测试套件上的多个测试用例 | Python
如何在 3 个不同浏览器中的同一台电脑上并行运行 selenium html 套件?