TestNg 顺序依赖

1. 在TestNG的测试中,一个测试方法的执行往往需要依赖其他测试方法的先期或延后执行,这种测试方法的执行先后顺序就被称为测试方法之间的依赖关系。

@Test  
public void serverStartedOk() {}//被依赖的测试方法  
   
@Test(dependsOnMethods = { "serverStartedOk" })  
public void method1() {}  

2.多个被依赖的测试方法

一个测试方法可能依赖一个测试方法,也可能依赖多个测试方法。对于多个被依赖的测试方法,可以通过方法名直接给出,也可以通过组名给出被依赖的测试方法。

1) 在测试类中通过方法名给出被依赖的测试方法,示例如下:

@Test  
public void serverStartedOk1() {}  
   
@Test  
public void serverStartedOk2() {}  
  
@Test(dependsOnMethods = { "serverStartedOk1",  "serverStartedOk2" })  
public void method1() {}  

2) 在测试类中通过组名给出被依赖的测试方法.

3) 在testng.xml配置文件中通过组名给出被依赖的测试方法:

<test name="Alice Test">  
  <groups>  
    <dependencies>  
      <group name="c" depends-on="a  b" />  
      <group name="d" depends-on="c" />  
    </dependencies>  
  </groups>  
</test>  

 

强制依赖: 如果被依赖的某一个方法发生了异常,那么之后的方法都不会被执行(默认)

@Test(dependsOnGroups = { "init.*" })  
    public void method1() {  
        System.err.println("I am over here.....");  
    }  

 

顺序依赖:无论被依赖的方法是否出现异常,后续的方法都会被执行,通过alwaysRun=“true”来配置

 @Test(dependsOnGroups = { "init.*" }, alwaysRun = true)  
    public void method1() {  
        System.err.println("I am over here.....");  
    }  

 

另外

使用<groups>标记在testng.xml文件中指定分组。 它可以在<test><suite>标签下找到。 <suite>标签中指定分组适用于其下的所有<test>标签。

在测试类里面,“分组”可以在类上应用。 在下面的示例中,此时每个公共方法都属于分组: 

 

@Test(groups = "smoke-test")
public class TestGroupOnClass{

    .....
}

 

posted on 2018-06-12 09:21  alicegu  阅读(175)  评论(0编辑  收藏  举报