2012-09-21 39 views
2

这是我的第一个问题,我很乐意为您提供帮助。使用TestNG提交Selenium测试 - 但不是并行

我一直在使用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

+1

理想情况下看到你的testng xml,我预计一次只能启动3个浏览器。你有并行设置测试,应该确保它按照你期望的方式运行。你正在使用的testng版本是什么? –

回答

1

您可以在@Before method.One的IE浏览器,一个用于FF和一个用于铬创造DefaultSelenium三个对象。

如果您使用的是webdriver,您可以为此创建3个单独的驱动程序。

0

您可以使用三个独立的套件(xml文件),然后在命令行中依次添加它们。这具有按顺序运行它们的效果。

相关问题