TestNG的testng.xml配置概述

TestNG提供的annotaions用来辅助定义测试类。

TestNG的testng.xml配置文件用来辅助定义执行什么样的测试,即testng.xml更像是一个测试规划。

testng.xml配置文件的元数据引用http://testng.org/testng-1.0.dtd,其中定义了testng.xml中的元素、属性和顺序等。

1.<suite>

<suite>元素是testng.xml文件的根元素。

从DTD文件(如下所示)可以看出,<suite>可以包含一个<groups>元素,用以定义全局的组,该组对所有的测试可见。

<suite>可以包含多个<test>元素,一个<test>就定义了一个测试用例(其中可能包含多个测试方法)。

<!ELEMENT suite (groups?,(listeners|packages|test|parameter|method-selectors|suite-files)*) >


示例如下:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  
<suite name="Suite1" verbose="1" >
  <groups>
    <run>
       <include name="..." />
       <exclude name="..." />
    </run>
  </groups>
 
  <test name="Regression1">
       ...
  </test>
</suite>



2.<test>

<test>元素是<suite>的子元素,用以定义一个测试用例。定义测试用例可以通过<classes>或<packages>。

<!ELEMENT test (method-selectors?,parameter*,groups?,packages?,classes?) >

1). <classes>表示以测试类的方式定义测试用例,粒度较小。示例如下:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  
<suite name="Suite1" verbose="1" >
  <test name="Regression1">
    <classes>
      <class name="test.sample.ParameterSample"/>
      <class name="test.sample.ParameterTest"/>
    </classes>
  </test>
</suite>

2). <packages>表示以测试类所在的包的方式定义测试用例,包中的所有测试类都被涉及,粒度较大。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
 
<suite name="Suite1" verbose="1" >
  <test name="Regression1"   >
    <packages>
      <package name="test.sample" />
   </packages>
 </test>
</suite>

3). <test>元素中的<groups>元素

我们知道,<suite>中可以定义一个全局的<groups>。而这里<test>元素中也可以定义一个自己的<groups>,其中定义的组仅对当前所在的测试用例可见。示例如下:

<test name="Regression1">
  <groups>
    <run>
      <exclude name="brokenTests"  />
      <include name="checkinTests"  />
    </run>
  </groups>
  
  <classes>
     ...
  </classes>
</test>

注意:在testng.xml配置文件中,<suite>中可以定义多个<test>,那么这些<test>的执行顺序默认按照其在<suite>中出现的先后顺序。当然,也可以提供<test>的preserve-order='false'改变默认顺序。

3. <classes>

<test>可以通过<classes>或<packages>定义测试用例,但只是在测试类或类包的层次上,那么能不能具体到测试类的某个方法呢?

对于<classes>中的一个<class>,可以提供<methods>设置测试方法。示例如下:

<test name="Regression1">
  <classes>
 
    <class name="test.Test1">
      <methods>
        <include name="m1" />
        <include name="m2" />
      </methods>
    </class>
 
    <class name="test.Test2" />
 
  </classes>
</test>



总结:这里只是介绍了testng.xml的基本结构和组成,详情还要参考TestNG的文档手册。


  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
testng.xmlTestNG测试框架中的配置文件,用于定义测试套件、测试类和测试方法的执行顺序、参数和其他设置。以下是一个典型的testng.xml文件的示例: ```xml <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" > <suite name="Test Suite" verbose="1"> <test name="Test Case 1"> <parameter name="browser" value="chrome" /> <classes> <class name="com.example.TestClass1" /> </classes> </test> <test name="Test Case 2"> <parameters> <parameter name="username" value="john" /> <parameter name="password" value="secret" /> </parameters> <classes> <class name="com.example.TestClass2" /> </classes> </test> <listeners> <listener class-name="com.example.CustomListener" /> </listeners> </suite> ``` 在这个示例中,testng.xml包含一个suite元素,表示整个测试套件。suite元素中包含了两个test元素,分别代表两个测试用例。每个test元素可以包含一个或多个classes元素,其中定义了要执行的测试类。 通过parameter元素,我们可以为测试方法提供参数值。在示例中,Test Case 1使用了一个名为"browser"的参数,并将其值设置为"chrome"。Test Case 2使用了两个参数:"username"和"password",并分别设置为"john"和"secret"。 listeners元素用于指定自定义的测试监听器。在示例中,我们指定了一个名为"com.example.CustomListener"的监听器类。 这只是testng.xml文件的一个简单示例,可以根据您的需求进行扩展和定制。在运行测试时,您可以使用testng.xml文件来配置测试套件的执行方式和参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值