【问题标题】:Configure testng.xml to run tests serially without typing each class配置 testng.xml 以连续运行测试而不键入每个类
【发布时间】:2014-02-19 17:19:26
【问题描述】:

我正在使用 selenium 自动化销售点应用程序的一些测试。因为外部程序用于管理应用程序和外部设备(打印机、钱箱...)之间的通信,所以一次只能打开一个浏览器会话,否则外部程序会混淆(例如:现金抽屉事件一个浏览器会话在另一个浏览器会话中触发)。

我目前一直在我的 testng.xml 文件中执行以下操作:

<suite name="Test Suite" verbose="10" preserve-order="True">
  <test name="Item Entry -- Quantity Required -- Basic" annotations="JDK">
    <parameter name = "filepath" value = "C:\Java Projects\Gravity\config\US\" />
    <classes>
      <class name="tests.itementry.quantityrequired.BasicPath"/>
    </classes>
  </test>
    <test name = "Item Entry -- Quantity Required -- Cancel">
        <classes>
            <class name = "tests.itementry.quantityrequired.Cancel" />
        </classes>
    </test>
</suite>

我之前尝试指定包而不是类,但这导致测试并行运行(同时打开多个浏览器)。我知道另一种选择是将测试组合到一个类中(这可能是最好的设计选择???),但我认为最好让每个场景都有自己的类。

关于如何配置我的 testng.xml 文件或将测试场景转换为 testng 测试的任何建议都会很棒。

【问题讨论】:

    标签: java selenium-webdriver testng


    【解决方案1】:

    如果套件的并行属性中未指定任何内容,则默认情况下,Testng 将按顺序运行。指定包应该可以解决您的问题。您可以在套件声明中专门定义 parallel = false 并检查并行调用测试的原因。您可以参考here 了解如何操作。还要检查您的代码,看看是否没有正确完成拆卸。

    来自xml的dtd..

    !ATTLIST suite
        name CDATA #REQUIRED
        junit (true | false) "false"
        verbose CDATA #IMPLIED
        parallel (false | methods | tests | classes | instances) "false"
    

    是的,在一个类中定义所有测试并不是一个好主意。

    【讨论】:

    • 我尝试添加parallel="false",但没有成功。我将尝试一些日志记录,看看我是否可以弄清楚在当前类执行期间新浏览器打开的时间点。我在关闭浏览器的最终方法中使用了@AfterClass 注释,所以我可能误解了它的用法。
    【解决方案2】:

    我也遇到了同样的问题。使用 parallel="false" 和 ;仍然启动了多个浏览器。 作为一种解决方法,我将我的所有类都注释为 @Test 并为它们分配了一个组名。在类的这个@Test 注释中,您可以使用dependOnGroups 定义顺序并设置alwaysRun="true"。 您可以包含该包,但需要在 testNG xml 中包含所有组。

    <test name="My suite">   
     <groups>
        <dependencies>
          <group name="c" depends-on="a  b" />
          <group name="z" depends-on="c" />
        </dependencies>  
     </groups> 
    </test>
    

    希望有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-20
      • 2012-03-28
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      相关资源
      最近更新 更多