第一:注解

(1)@test

(2)@BeforeMethod,@AfterMethod

(3)@BeforeClass,@AfterClass

(4)@BeforeSuite,@AfterSuite

第二:套件测试

(1) SuiteConfig:公共方法

public class SuiteConfig{

@BeforeSuite

public void beforesuit(){

  system.out.println("beforesuit 运行啦");

}

@AfterSuite

public void aftersuit(){

  system.out.println("aftersuit 运行啦");

}

}

(2) LoginTest:

public class LoginTest{

@Test

public void logintaobao(){

  system.out.println("login taobao");

}

}

(3) PayTest

public class PayTest{

@Test

public void paysuccess(){

  system.out.println("zhifubao success");

}

}

(4) resource:Testng.xml(名字随意)

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

<suite name="test">

  <test name ="login">

    <classes>

      <class name="com.curse.testng.suite.suiteconfig"/>

      <class name="com.curse.testng.suite.LoginTest"/>

    </classes>

  </test>

  <test name ="pay">

    <classes>

      <class name="com.curse.testng.suite.suiteconfig"/>

      <class name="com.curse.testng.suite.PayTest"/>

    </classes>

  </test>

</suite>

右键执行testng.xml,结果如下:

beforesuit 运行啦

login taobao

zhifubao success

aftersuit 运行啦

如果在suiteconfig文件中增加beforetest和aftertest,执行结果为:

beforesuit 运行啦

beforetest

login taobao

aftertest

beforetest

zhifubao success

aftertest

aftersuit 运行啦

第三:忽略测试

@test(enabled=false)

第四:分组测试

(1)group在方法上

public class groupsonMethod{

@test(groups="server")

public void test1(){

system.out.println("test1");

}

@test(groups="server")

public void test2(){

system.out.println("test2");

}

@test(groups="client")

public void test3(){

system.out.println("test3");

}

@beforegroups("server")

public void beforegroupsonserver(){

system.out.println("beforeservergroups");

}

@aftergroups("server")

public void aftergroupsonserver(){

system.out.println("afterservergroups");

}

}

运行结果:

beforeservergroups

test1

test2

afterservergroups

test3

(2)groups在类上

@test(groups="stu")

public class groupsonclass1{

}

testng.xml:

<test name="onlyrunstu">

  <groups>

    <run>

      <include name="stu"/>

    </run>

  </groups>

</test>

第五:异常测试

第六:依赖测试

public class DpendTest{

  @test

  public void test1(){

    system.out.println("test1");

    throw new RuntimeException();//打印要写在异常前面,因为抛出异常后,后边的代码都不执行

}

  @test(dependsOnMethods={"test1"})

  public void test2(){

    system.out.println("test2");

}

}

结果:test1

test1执行,test2被忽略了,因为test2的依赖测试test1抛出了异常,执行失败了

第七: 超时测试

public class TimeOutTest{

  @test(timeout=3000)//单位为ms

  public void testsuccess(){

    Thread.sleep(millis:2000);

    system.out.println("test1");

}

@test(timeout=2000)//单位为ms

  public void testfailed(){

    Thread.sleep(millis:3000);

    system.out.println("test1");

}

}

1--Test NG--常见测试和注解的更多相关文章

  1. 使用Spring+Junit4.4进行测试(使用注解)

    http://nottiansyf.iteye.com/blog/345819 使用Junit4.4测试 在类上的配置Annotation @RunWith(SpringJUnit4ClassRunn ...

  2. 用Spring+Junit4.4进行测试(使用注解)

    http://nottiansyf.iteye.com/blog/345819 使用Junit4.4测试 在类上的配置Annotation @RunWith(SpringJUnit4ClassRunn ...

  3. maven解析xml+测试test+注解

    条件:maven项目 测试图: 创建maven项目,在maven项目中scr目录下有main.test(没有就创建) 一.解析XML文件方式 在main目录下有java.resources.webap ...

  4. spring + myBatis 常见错误:注解事务不回滚

    最近项目在用springMVC+spring+myBatis框架,在配置事务的时候发现一个事务不能回滚的问题. 刚开始配置如下:springMVC.xml配置内容: spring.xml配置内容 从上 ...

  5. web端常见测试

    一.登录注册功能 1.页面调转 2.tab键与enter键 3.密码加密显示,是否支持复制粘贴 4.账号密码校验 5.刷新页面,更新验证码 二.界面测试 1.样式.颜色.整体布局风格 2.最大化.最小 ...

  6. mac使用brew安装配置常见测试工具

    Homebrew 包管理工具可以让你安装和更新程序变得更方便,目前在 OS X 系统中最受欢迎的包管理工具是 Homebrew. 安装 在安装 Homebrew 之前,需要将 Xcode Comman ...

  7. Spring整合JUnit4测试使用注解引入多个配置文件

    转自:https://kanpiaoxue.iteye.com/blog/2151903 我们使用spring写junit单测的时候,有的时候我们的spring配置文件只有一个.我们在类的注释上面会这 ...

  8. java 日志脱敏框架 sensitive-v0.0.4 系统内置常见注解,支持自定义注解

    项目介绍 日志脱敏是常见的安全需求.普通的基于工具类方法的方式,对代码的入侵性太强.编写起来又特别麻烦. 本项目提供基于注解的方式,并且内置了常见的脱敏方式,便于开发. 特性 基于注解的日志脱敏. 可 ...

  9. Java日志脱敏框架 sensitive-v0.0.4 系统内置常见注解,支持自定义注解

    项目介绍 日志脱敏是常见的安全需求.普通的基于工具类方法的方式,对代码的入侵性太强.编写起来又特别麻烦. 本项目提供基于注解的方式,并且内置了常见的脱敏方式,便于开发. 特性 基于注解的日志脱敏. 可 ...

随机推荐

  1. 在html后面拼接字符串后页面的跳转

    我就举一个简单的栗子,主要目的是实现页面跳转时后面获取的参数 <div class="active"> 点击我可以跳转 </div> 样式就随便写一下 之后 ...

  2. git设置用户名和邮箱

    用git config --global user.name "your name"命令来设置你的用户名 用git config --global user.email " ...

  3. HIT2019春软件构造->Git&Github学习笔记

    由于软件构造课程需要,学习使用git,以下作为学习笔记. 一.Git初始化及仓库创建和操作  1.基本信息设置(设置签名)  命令        项目级别/仓库级别:仅在当前本地库范围内有效 git ...

  4. 小程序批量获取input的输入值,监听输入框,数据同步

    在使用小程序时,跟vue的数据绑定不一样,没有v-model这个属性了,官网也只是给了一些事件监听. 但是我们如果有多个表单时,需要写多个事件来同步数据.这样做很麻烦.下面的方法可以解决,只需要一个方 ...

  5. 启动Cognos时报0106错误

    1. 问题描述 启动Cognos失败,报错代码为0106. 2. 问题分析 是jdk版本不兼容. 3. 解决方案 方案一:更换jdk1.6,可以使用免安装版,不需要卸载原有的jdk将java_home ...

  6. ES5原型琏继承

    function add(){}; add.prototype.showName = "MAN";add.prototype.name = function(){ console. ...

  7. 微信或QQ屏蔽域名,爆红域名如何在微信打开,如何进行微信域名防封?

    近很多朋友都会遇到这个问题,为什么我的微信域名或者QQ域名怎么总是提示拦截呢?在这里跟大家说一下吧: 第一点:就是域名里面的内容违规或者诱导被举报而导致的拦截 第二点:就是被用户或者同行恶意举报而导致 ...

  8. Flex 弹性盒基本语法

    网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...

  9. iis 支持 .netcore 环境

    1,安装 dotnet-win-x64 https://dotnet.github.io/2,安装 DotNetCore.1.0.4_1.1.1-WindowsHosting.exe  https:/ ...

  10. Python 字典删除元素clear、pop、popitem

    同其它python内建数据类型一样,字典dict也是有一些实用的操作方法.这里我们要说的是字典删除方法:clear().pop()和popitem(),这三种方法的作用不同,操作方法及返回值都不相同. ...