TestNG我爱编程

TestNG.xml

2017-11-14  本文已影响49人  我为峰2014

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属性支持使用正则表达式

上一篇 下一篇

猜你喜欢

热点阅读