Testing.xml 文档结构:

<test name="xxxx" preserve-order="false">

  <!-- 参数定义的方法 -->

  <parameter name="first-name" value="Cedric"/>

  <!-- groups的用法,前提是需要存在classes的组,否则所有方法不被运行 -->

  <groups>

  <!-- 定义组中组的方法 -->

    <define name="groups_name">

      <include name="group1"/>

      <include name="group2"/>

    </define>

    <run>

      <!-- 此处用组名来区别 -->

      <inclue name="groups_name" />

      <exclue name="groups_name" />

      </run>

  </groups>

  <!-- classes的用法,classes中包含类名,类名底下可以包含方法名或排除方法名 -->

  <classes>

    <class name="class1">

      <methods>

        <!-- 此处用方法名来区别 -->

        <inclue name="method_name" />

        <exclue name="method_name" />

      </methods>

    </class>

  </classes>

</test>

1.例如以下代码

package yycuser13.test.testcase;

import org.testng.annotations.*;

public class Test1{

@Test(groups={"login"})

public void login(){

System.out.println("my name id login");

}

@Test(groups={"login"})

public void login1(){

System.out.println("my name id login1");

}

@Test(groups={"logout"})

public void logout(){

System.out.println("my name id logout");

}

@Test(groups={"logout"})

public void logout1(){

System.out.println("my name id logout1");

}

}

可以将测试用例分组,执行测试时,使用组来管理

Testng.xml 使用下列写法

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Suite" parallel="none">

<test name="testloginandlogout ">

 <groups>

  <run>

   <include name="logout"/>

   <exclue name="login"/>

  </run>

 </groups>

  <classes>

    <class name="yycuser13.test.testcase.Test1">

    </class>

  </classes>

</test>

<!-- Test -->

</suite> <!-- Suite -->

以上的xml中设置了  只运行logout组

2.例如下代码、

package yycuser13.test.testcase;

import org.testng.annotations.Test;

public class Test1{

@Test

public void login(){

System.out.println("my name id login");

}

@Test

public void login1(){

System.out.println("my name id login1");

}

@Test

public void logout(){

System.out.println("my name id logout");

}

@Test

public void logout1(){

System.out.println("my name id logout1");

}

}

Testing.xml 文件配置如下

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Suite" parallel="none" >

<test name="Test">

<classes>

<class name="yycuser13.test.testcase.Test1"  preserve-order="true">

<methods>

        <include name="login"/>

        <exclude name="login1"/>

     <exclude name="logout"/>

        <include name="logout1"/>

      </methods>

</class>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

当preserve-order="true"是,可以保证节点下面的方法是按顺序执行的

运行结果为:

my name id login

my name id logout1

===============================================

Suite

Total tests run: 2, Failures: 0, Skips: 0

===============================================

3.例如下代码

package yycuser13.test.testcase;

import org.testng.annotations.Test;

import org.testng.annotations.Test;

public class Test1{

@Test(priority=3)

public void login(){

System.out.println("my name id login");

}

@Test(priority=2)

public void login1(){

System.out.println("my name id login1");

}

@Test(priority=1)

public void logout(){

System.out.println("my name id logout");

}

@Test(priority=4)

public void logout1(){

System.out.println("my name id logout1");

}

}

运行结果为:

my name id logout

my name id login1

my name id login

my name id logout1

===============================================

Suite

Total tests run: 4, Failures: 0, Skips: 0

4.例如下代码 加入了 dependsOnGroups

package yycuser13.test.testcase;

import org.testng.annotations.Test;

public class Test1{

@Test(groups={"login"},dependsOnGroups={"logout"})

public void login(){

System.out.println("my name id login");

}

@Test(groups={"login"},dependsOnGroups={"logout"})

public void login1(){

System.out.println("my name id login1");

}

@Test(groups={"logout"})

public void logout(){

System.out.println("my name id logout");

}

@Test(groups={"logout"})

public void logout1(){

System.out.println("my name id logout1");

}

}

运行结果为:

my name id logout

my name id logout1

my name id login

my name id login1

PASSED: logout

PASSED: logout1

PASSED: login

PASSED: login1

===============================================

Default test

Tests run: 4, Failures: 0, Skips: 0

5.例如下代码 使用dependsOnMethods

package yycuser13.test.testcase;

import org.testng.annotations.Test;

public class Test1{

@Test(dependsOnMethods={"login1"})

public void login(){

System.out.println("my name id login");

}

@Test(dependsOnMethods={"logout"})

public void login1(){

System.out.println("my name id login1");

}

@Test

public void logout(){

System.out.println("my name id logout");

}

@Test(dependsOnMethods={"login"})

public void logout1(){

System.out.println("my name id logout1");

}

}

运行结果为:

my name id logout

my name id login1

my name id login

my name id logout1

PASSED: logout

PASSED: login1

PASSED: login

PASSED: logout1

===============================================

Default test

Tests run: 4, Failures: 0, Skips: 0

===============================================

testng 控制case运行顺序的更多相关文章

  1. testng入门教程3用TestNG执行case的顺序

    本教程介绍了TestNG中执行程序的方法,这意味着该方法被称为第一和一个接着.下面是执行程序的TestNG测试API的方法的例子. 创建一个Java类文件名TestngAnnotation.java在 ...

  2. testng标签运行顺序

    testng的annotations运行顺序为: @BeforeSuite @BeforeTest @BeforeClass @BeforeMethod @AfterMethod @AfterClas ...

  3. Java类的基本运行顺序

    不看不知道,一看还真吓了一跳!Java类的基本运行顺序你真的知道吗?如果你有疑惑,那就看下面这篇文章吧.   原文出自:[url]http://column.ibeifeng.com/chenchen ...

  4. unity脚本运行顺序具体的解释

    unity脚本自带函数执行顺序例如以下:将以下脚本挂在随意物体执行就可以得到 Awake ->OnEable-> Start ->-> FixedUpdate-> Upd ...

  5. Jmeter结构体系及运行顺序

    一:jmeter运行原理: jmeter时以线程的方式来运行的(由于jmeter是java开发的所以是运行在JVM虚拟机上的,java也是支持多线程的) 二:jmeter结构体系 1.取样器smapl ...

  6. Jmeter 结构体系及运行顺序

    一.Jmeter 运行原理: Jmeter 时以线程的方式来运行的(由于Jmeter 是 java 开发的所以是运行在 JVM 虚拟机上的,java 也是支持多线程的) 二.Jmeter 结构体系 1 ...

  7. Spring AOP之多切面运行顺序

    多切面运行顺序 当一个方法的执行被多个切面共同切的时候,环绕通知只影响当前切面的通知顺序,例如创建两个切面logUtil,validateUtil两个切面共同监视计算器类的加法运算,add(int a ...

  8. Java类的基本运行顺序是怎样

    我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...

  9. lishell学习之路:流程控制(case)

    流程控制case语句: 介绍:多分支case条件语句 1.case语句和if..elif..else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而i ...

随机推荐

  1. redhat6.4安装storm集群-4节点

    0.搭建ftp服务器并建立yum源 1.在每个节点上安装java并设置环境变量 2.在三个节点上安装zookeeper 3.安装zeromq 过程中发现运行./configure时出现问题: conf ...

  2. Adaboost 2

    本文不定期更新.原创文章,转载请注明出处,谢谢. Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类 ...

  3. poj1502 spfa最短路

    //Accepted 320 KB 16 ms //有n个顶点,边权用A表示 //给出下三角矩阵,求从一号顶点出发到各点的最短路的最大值 #include <cstdio> #includ ...

  4. [蟒蛇菜谱]Python获取任意xml节点的值

    # -*- coding: utf-8 -*- import xml.dom.minidom ELEMENT_NODE = xml.dom.Node.ELEMENT_NODE class Simple ...

  5. Python学习路程day11

    SqlAlchemy ORM SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据A ...

  6. 使用HelloCharts绘制柱状图

    首先下载依赖库 ,有现成的jar包:hellocharts-library-1.5.8.jar 在需要的布局中直接使用: <lecho.lib.hellocharts.view.ColumnCh ...

  7. 学习笔记:The Log(我所读过的最好的一篇分布式技术文章)

    前言 这是一篇学习笔记. 学习的材料来自Jay Kreps的一篇讲Log的博文. 原文很长,但是我坚持看完了,收获颇多,也深深为Jay哥的技术能力.架构能力和对于分布式系统的理解之深刻所折服.同时也因 ...

  8. 一些相关的github

    https://github.com/LTS4/DeepFool 貌似是说可以愚弄深度神经网络? https://github.com/tflearn/tflearn TF学习指南 http://gi ...

  9. day17算法

    http://www.360doc.com/content/14/0804/11/1073512_399302715.shtml

  10. jquery 中的几个函数方法

    1.$.map(data,function(item,index){return XXX})处理每一个元素的函数.第一个参数是数组元素,第二个参数是该元素的索引值. 遍历data数组中的每个元素,并按 ...