这是我的第一个问题,我很乐意得到帮助。
我一直在使用TestNG作为我框架的一部分。 我今天遇到的问题是关于testng.xml配置 - 不要并行运行测试。不,我的测试都不依赖,它们都是独立的。但是,这是我的要求。
我的testng.xml文件如下所示:
<suite name="Smoke Test Suite" verbose="3" parallel="tests" thread-count="2">
<test name="Run on Firefox" preserve-order="true">
<parameter name="browser" value="firefox"/>
<classes>
<class name="com.test1"/>
<class name="com.test2"/>
<class name="com.test3"/>
<class name="com.test4"/>
</classes>
</test>
<test name="Run on IE9" preserve-order="true">
<parameter name="browser" value="iexplore"/>
<classes>
<class name="com.test1"/>
<class name="com.test2"/>
<class name="com.test3"/>
<class name="com.test4"/>
</classes>
</test>
<test name="Run on Google Chrome" preserve-order="true">
<parameter name="browser" value="chrome"/>
<classes>
<class name="com.test1"/>
<class name="com.test2"/>
<class name="com.test3"/>
<class name="com.test4"/>
</classes>
</test>
我希望测试以并行方式运行,但是要一个接一个地运行的类。 我目前看到的是,当测试被启动时,我有8个FF,IE9和Chrome实例打开。如何配置它以便执行“test1”,关闭浏览器,打开新实例然后运行“test2”等等?
我必须这样做的原因是,我的应用程序在每次测试期间都打开了多个窗口。 IE9(它是邪恶的浏览器)不知道如何处理这种情况,恐慌和失去对测试中途窗口的关注。有人建议,我也发现了同样的事情 - 最好让一个IE9实例运行而不打扰它。
将非常感谢您的建议和解决方案。
注意:所有类都在同一个包中。
谢谢, -Alister
答案 0 :(得分:1)
您可以在 @Before 方法中为DefaultSelenium创建三个对象。一个用于IE,一个用于FF,一个用于chrome。
如果您使用的是webdriver,则可以为其创建3个单独的驱动程序。
答案 1 :(得分:0)
您可以使用三个单独的套件(xml文件),然后在命令行中依次添加它们。这具有按顺序运行它们的效果。