TestNG.xml

testng.xml文件是为了更方便的是配置测试用例,测试套件,利用这个文件,我们可以跑同一个类或者多个不同类里面的测试用例

TestNG通过设置testng.xml文件能做以下事情

  • 创建来源不同包、类、方法的测试套件
  • 包括一些选项,例如失败的用例可以重跑。
  • 支持使用正则表达式
  • 运行把外部参数传入测试方法
  • 支持配置多线程的执行环境

例子

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">  
//TestNG的XML文件声明
<suite name="Default Suite">  
  <test name="Java_Learn">  
    <classes>  
      <class name="com.java.learn.TestNG_Demo1"/>  
    </classes>  
  </test> <!-- Java_Learn -->  
</suite> <!-- Default Suite -->  

suite管理多个test,而test管理多个class,最小单元是一个class文件。

创建来源不同包、类、方法的测试套件

复制一份测试文件到同一个包下,修改下文件名称,和用例输出内容。然后新建一个包,复制一份刚才的用例类,当做我们的第三个测试类文件

image.png

把新建的测试类添加到testng.xml文件中

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">  
<suite name="Default Suite">  
  <test name="Java_Learn">  
    <classes>  
      <class name="com.java.learn.TestNG_Demo1"/>  
     <!-- 添加不同测试类文件 -->  
     <class name="com.java.learn.TestNG_Demo2"/>  
     <class name="demo2.TestNG_Demo3"/>  
    </classes>  
  </test>   
</suite> 

保存这个文件,并拷贝到你当前Java工程的根目录,这个文件名称随便取

image.png

也可以指定包名来替代类名

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">  
<suite name="Default Suite">  
  <test name="Java_Learn">  
    <packages>  
      <package name="com.java.learn"/>  
     <!-- 添加不同测试类文件 -->  
     <package name="demo2"/>  
    </packages>  
  </test>   
</suite> 

在这个例子中,TestNG会查看所有在com.java.learn···和demo2···的类,并且只保留含有```TestNG annotations···的类

也可以指定要包含和排除掉的组和方法

<test name="***">
  <groups>
    <run>
      <exclude name="***"  />
      <include name="***"  />
    </run>
  </groups>

  <classes>
    <class name="***">
      <methods>
        <include name="***" />
      </methods>
    </class>
  </classes>
</test>

也可以在testng.xml定义新的group,并且在属性中指明额外的详细信息,例如是否并行运行,使用多少个线程,并且是否正在运行JUnit测试等等……

让失败的用例重新跑

在运行自动化测试用例的时候,经常会出现一些异常的情况的情况导致用例失败的问题。所以我们可能会希望对于失败的测试用例再重新运行一次

在github找到了一个现有的轮子:arrow

image.png

支持使用正则表达式

TestNG中的include/exclude属性支持使用正则表达式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 感谢原作者的奉献,原作者博客地址:http://blog.csdn.net/zhu_ai_xin_520/arti...
    狼孩阅读 14,152评论 1 35
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • TestNG系列:TestNG和Junit4的参数化测试对比TestNG运行指定测试套件TestNG整合Repor...
    测试你个头阅读 4,042评论 0 1
  • 2月13日,新学期开学第一天。 一大早我赶到学校时,远远望见教室里灯火通明,五六个孩子已在自己的座位上整理书籍。不...
    格桑美朵1阅读 425评论 4 2
  • ‘是啊,不会。’白璐无奈的说道。 其实白璐在美国没有读书,一直在治疗,所以对高中的知识有些不懂。 ‘什么,你居然不...
    MissGirls组合Anne阅读 246评论 0 6