有没有办法在testng.xml并行运行两个.xml文件?
我目前有两个不同的TestSuite(SUITE1.XML和SUITE2.xml),配置不同(例如浏览器,Os)……
我把testng.xml里面的两个SUIT调用在saucelabs上运行……它运行良好……只有我关心的是,我希望这些套件能够并行而不是顺序运行……
我得到的输出是
[TestNG]正在运行: /Users/muzamilabbasi/Automation/BaublebarTest/Suite1.xml 这是浏览器字符串FIREFOX 这是Platform String WIN8 这是版本字符串25 这是浏览器字符串FIREFOX 这是Platform String WIN8 这是版本字符串25 log4j:WARN没有为logger找到appender(org.apache.http.client.protocol.RequestAddCookies)。 log4j:WARN请正确初始化log4j系统。 log4j:WARN没有为logger找到appender(org.apache.http.client.protocol.RequestAddCookies)。 log4j:WARN请正确初始化log4j系统。 页面标题是谷歌 页面标题是谷歌 =============================================== mysuite1 总测试运行:2,失败:0,跳过:0 =============================================== [TestNG]正在运行: /Users/muzamilabbasi/Automation/BaublebarTest/Suite2.xml 这是浏览器字符串FIREFOX 这是Platform String XP 这是Version String 7 这是浏览器字符串FIREFOX 这是Platform String XP 这是Version String 7 页面标题是谷歌 页面标题是谷歌
我搜索过很多网页,而且我得到的答案大部分都是使用我可以实现的ANT {PARALLEL}任务,但是如何? 我需要一个例子..请帮忙。
我正在使用macOS和TESTNG 6.8.6
另一种选择是使用套件套件。 我会说这已经有一段时间了,因为我已经使用了这个设置,但希望你能在这里找到足够的细节至少开始。
首先,您将定义两个(或更多)套件XML文件:
和…
然后,您将定义套件套件XML文件:
请注意, suite-file
路径值是从当前套件XML文件到您正在调用的XML文件的相对路径。 如果它们在同一目录中,只需文件名就足够了。
此外,两种XML类型都支持
标记。 标准套件XML将在
和
级别读取,我发现套件XML文件的
级别的
标签也可以正常工作。
最后,在执行时,您只需要传递套件套件XML文件作为套件文件参数。
编辑:这是我能够让我的两个套件并行运行的方式。 诀窍是正确设置我的main()
方法。
public class TestRunner { public static void main(String[] args) { TestNG testng = new TestNG(); TestListenerAdapter adapter = new TestListenerAdapter(); List suites = new ArrayList (); testng.addListener(adapter); suites.add(args[0]); testng.setTestSuites(suites); testng.setParallel("parallel"); testng.setSuiteThreadPoolSize(5); testng.setOutputDirectory("path to output"); testng.run(); } }
然后,在命令行上:
java -jar ParallelSuiteDemo.jar SuiteOfSuites.xml
请注意,我的jar和所有xml文件都与此配置位于同一目录中。 如果希望使用目录结构,则需要正确配置命令行args和
条目。
这产生了我在Selenium Grid上并行运行的两个suite.xml文件。
说实话,可能有更好的方法。 当我尝试做类似的事情时,这正是对我有用的。
你不需要并行运行套装….相反,你可以在单个testng.xml套装中编写两个测试,并且可以并行运行它。
如果要为不同的测试(浏览器/操作系统等)使用两种不同的配置,请将其作为testng.xml中的参数,并使用selenium grid将每个线程重定向到适当的节点
看看下面的例子
也可以使用ANT或MAVEN运行两个testng.xml套装。 但我更喜欢第一个。 请在MAVEN项目的pom.xml中添加以下部分
src org.apache.maven.plugins maven-surefire-plugin 2.17 testng1.xml testng2.xml ${basedir}/src/test/java/ true
是的,您可以使用testng的“suitethreadpoolsize”属性来完成此操作
有关详细信息,请访问testng的官方网站http://testng.org/doc/documentation-main.html#parallel-running
谢谢!