testng xml配置文件

发表于:2018-10-15 10:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:超级宝宝11    来源:51testing采编

#
TestNG
分享:
  简单介绍
  运行TestNG测试脚本有两种方式:一种是直接通过IDE运行(例如使用eclipse中的“Run TestNG tests”),另一种是从命令行运行(通过使用xml配置文件)。当我们想执行某个包或者某个类中的一部分测试脚本的时候,使用xml配置文件是非常便利的。在xml配置文件里,不仅可以选择某些需要执行的测试脚本,还可以排除某些不需要运行的测试脚本。
  创建testng.xml文件
  创建xml文件很容易,只需要在其中填充一些内容。
  1)首先要声明一个suite的名字,用于描述将要运行的测试脚本集,可以根据自己需要任意命名,最终这个名字会在testng的测试报告中看到。
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="SuiteName" verbose="1" >
  <test name="TestName" >
  2)如果选择的测试脚本是基于组的(使用了@Test (groups={"student"})这样的注解),那么接下来需要声明如何使用这些组:包含或者排除。如果使用了include标签标注某些组,那么在选择的测试脚本中,只有属于那些组的测试脚本会被运行。那些未被选中的测试脚本,或者被选中却不属于某些组的测试脚本都不会被运行。需要注意,一个测试脚本可以属于很多个组,只要有一个组被include标签标注,那么它就会被运行。如果使用了exclude标签标注某些组,那么在选择的脚本中,只有不属于那些组的测试脚本会被运行。如果同时使用了include标签和exclude标签,那么拥有被include标注的组的那些脚本会被运行,拥有被exclude标注的脚本不会被运行。有一个例外是,一个组同时被include和exclude标注了,那么拥有这个组的脚本会被运行。include和exclude标签的使用方式如下:
  <groups>
  <run>
  <include name = "includedGroupName" />
  <exclude name = "excludedGroupName" />
  </run>
  </groups>
  3)选择测试脚本可以从包、类、方法三个层级进行。
  选择一个包
  <packages>
  <package name = "packageName" />
  </packages>
  选择一个类
  <classes>
  <class name = "className" />
  </classes>
  选择一个方法
  <classes>
  <class name = "className" />
  <methods>
  <include name = "methodName" />
  </methods>
  </class>
  </classes>
  xml文件样例
  1)选择一个包中的全部测试脚本(包含子包)
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="First suite" verbose="1" >
  <test name = "allTestsInAPackage" >
  <packages>
  <package name = "whole.path.to.package.* />
  </packages>
  </test>
  </suite>
  2)选择一个类中的全部测试脚本
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="Second suite" verbose="1" >
  <test name = "allTestsInAClass" >
  <classes>
  <class name="whole.path.to.package.className />
  </classes>
  </test>
  </suite>
  3)选择一个类中的部分测试脚本
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="Third suite" verbose="1" >
  <test name = "aFewTestsFromAClass" >
  <classes>
  <class name="whole.path.to.package.className >
  <methods>
  <include name = "firstMethod" />
  <include name = "secondMethod" />
  <include name = "thirdMethod" />
  </methods>
  </class>
  </classes>
  </test>
  </suite>
  4)选择一个包中的某些组
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="Fourth suite" verbose="1" >
  <test name = "includedGroupsInAPackage" >
  <groups>
  <run>
  <include name = "includedGroup" />
  </run>
  </groups>
  <packages>
  <package name = "whole.path.to.package.* />
  </packages>
  </test>
  </suite>
  5)排除一个包中的某些组
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="Fifth suite" verbose="1" >
  <test name = "excludedGroupsInAPackage" >
  <groups>
  <run>
  <exclude name = "excludedGroup" />
  </run>
  </groups>
  <packages>
  <package name = "whole.path.to.package.* />
  </packages>
  </test>
  </suite>
  在maven的pom.xml文件中配置testng.xml
  需要在pom文件中,指明testng.xml文件的位置。
  maven使用surefire这个插件进行测试,可以执行testng或者Junit脚本。
  语法为 <suiteXmlFile>src/test/resources/testNGFilesFolder/${testNgFileName}.xml</suiteXmlFile>
  <dependencies>
  <dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.8</version>
  </dependency>
  </dependencies>
  <build>
  <plugins>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.19</version>
  <configuration>
  <suiteXmlFiles>
  <suiteXmlFile>testng.xml</suiteXmlFile>//该文件位于工程根目录时,直接填写名字,其它位置要加上路径。
  </suiteXmlFiles>
  </configuration>
  </plugin>
  </plugins>
  </build>
  运行测试脚本
  方法一:在IDE,例如IntellJ IDEA中,鼠标右击testng.xml文件,选择run即可。
  方法二:进入到项目工程的根目录,使用 mvn clean test -Dtestng.xml 命令,结果如下:
  [INFO] Scanning for projects...
  [INFO]
  [INFO] ------------------------------------------------------------------------
  [INFO] Building ArtifactIdWang 1.0-SNAPSHOT
  [INFO] ------------------------------------------------------------------------
  .
  .
  .
  -------------------------------------------------------
  T E S T S
  -------------------------------------------------------
  Running TestSuite
  now start test
  Test started runningtemplistener1at:1487125608088
  i'm listenerTest1
  Result success
  Test started runningtemplistener2at:1487125608660
  i'm listenerTest2
  Result success
  now finish test
  Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.125 sec - in TestSuite
  Results :
  Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
  [INFO] ------------------------------------------------------------------------
  [INFO] BUILD SUCCESS
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 01:13 min
  [INFO] Finished at: 2017-02-15T10:26:51+08:00
  [INFO] Final Memory: 22M/182M
  [INFO] ------------------------------------------------------------------------

    上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号