TestNG记录

一、官方文档:

http://testng.org/doc/documentation-main.html

二、基本介绍

1、作用:单元测试、集成测试框架
2、特性:使用注解、线程池、参数化、数据驱动
3、步骤:(提前配置好testng)代码中使用注解——配置testng.xml——运行TestNG

三、常用注解:

1. @DataProvider

1.1、作用:提供数据的给test方法
1.2、格式必须返回Object[][],并且里面的元素必须是Object[],可以理解为返回的是一个Sheet,元素都是每条记录
1.3、属性:
 name:数据驱动名称,不填写默认为数据驱动方法名
 parallel:并行进程,默认false,若设置为true,则需要在.xml文件中的suite标签中添加属性data-provider-parallel-count="?"

2. @Test

2.1、作用:提供测试方法
2.2、注意:参数类型与数据驱动中返回的每列的数据一致
2.2、属性:
 dataProvider:数据驱动,值等于数据驱动名称
 dataProviderClass:数据驱动类,设置的话值为指定的提供数据驱动的类。
 在test方法中先写dataProviderClass属性,在写dataProvider属性
 groups:设定groups可以把多个测试方法放一个组中,值为组名,用花括号和双引号
 dependsOnGroups:先执行指定组里面的测试方法,再执行本测试方法,值为指定组名,用花括号和双引号,多个组名使用逗号隔开
 dependsOnMethods:先执行指定方法,再执行本测试方法,值为指定的方法名,用花括号和双引号,多个方法名使用逗号隔开
 invocationCount:调用次数
 invocationTimeout:单位毫秒,若invocationCount未设置,则此属性无意义
 successPercentage:成功百分率,只有在invocationCount设置时才有意义,一般都写100
 ThreadPoolSize:线程池大小,只有在invocationCount设置时有效
 timeout:超时,不需要跟着invocationCount出现,使用超时常用此属性
 priority:优先级,值越低越优先
 enabled:是否执行,默认true
 parameters:参数化,引用外部文件,

3.@Parameters:

3.1、作用:参数化,将外部的数据文件批量引入
3.2、属性:
 value:参数化的名字,也就是,当.xml文件中有parameter标签时,parameter标签的name属性的值,值使用花括号和引号
3.3、注意:和Before系列的注解一起使用,需在@dataProvider前执行;有该注解后,则不能单独运行TestNG类,而要运行testng.xml文件TestSuit,因为属性引用了testng.xml的标签属性
3.4、举例子:

 <!-- testng.xml文件内容 -->

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
   <!-- 使用parameter标签,引入外部文件,name:起一个名字;value:文件的路径 -->
  <parameter name="filePathParam" value="D:\\app_testcase.xlsx"/>

  <test name="Test">
    <classes>
       <class name="com.youce.test.TestRun"/>
    </classes>
  </test>  
</suite> 
public class TestRun {
        // 初始化文件地址为null
    private String filePath = null;
  // 使用@Parameters注解引入外部文件,括号内的属性为testng.xml中parameter标签的name的值
  @Parameters({"filePathParam"})
  // 需使用先于@dataProvider的注解
  @BeforeTest
  // 该方法的作用主要是给文件地址变量filePath赋值
 //testng.xml中parameter标签的value的值,也就是文件的地址自动赋值给方法中的参数fromTestngXMLParam
  public void beforeTest(String fromTestngXMLParam){          
      this.filePath = fromTestngXMLParam;     
  }
    
  @Test(dataProvider="data")
  public void f(Object a,Object b,Object c,Object d,
          Object e,Object f) {
      System.out.println(a + "\t" + c);
  }
  
  @DataProvider
  public Object[][] data(){
      Object[][] value = null;
      try{
          // 该类是自己手动写的一个处理.xlsx文件,用来获取单元格内容
          // 该处传参为文件地址 
          ExcelUtil excel = new ExcelUtil(this.filePath);
          value = excel.getArrayCellVale(0);
      }catch(Exception e){
          e.printStackTrace();
      }   
      return value;
  }
}

4.按对记的:

@BeforeSuite
@AfterSuite

@BeforeTest
@AfterTest

@BeforeGroups
@AfterGroups

@BeforeClass
@AfterClass

@BeforeMethod
@AfterMethod

四、.xml文件测试配置

1、作用:测试套件TestSuit,可编辑测试配置,例如:运行指定的类或包,线程数,测试名称等

2、标签:

2.1、suite标签:
测试套件,属性name为套件名称,属性parallel并行开关,默认false ;若parallel为true,则它的值可为"method"/"tests"/"classes"/"instances",且要新增属性thread-count,指定线程数

2.2、test标签:
测试用例,属性name为测试名称,可以有子标签classes和packages,他们下面继续可以有子class和package

2.3、parameter标签:
参数化标签,属性name为参数化名称,注解@Parameters与之保持一致,属性value为外部文件地址

<!--testng.xml文件  -->

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
<!-- <suite name="Suite" parallel="method" thread-count="5"> -->
<!-- <suite name="Suite" parallel="tests" thread-count="5"> -->
    <!-- <parameter name="filePathParam" value="D:\\test01.xlsx"/> -->
    <parameter name="filePathParam" value="D:\\app_testcase.xlsx"/>
    
  <test name="Test">
    <classes>
      <!-- <class name="com.youce.test.TestRun"/> -->
        <!-- <method>
            <exclude name="f"/>
            <include name="f"/>
            </method> -->
      <class name="com.youce.test.NewTest2"/>
    </classes>
  </test> <!-- Test -->  
</suite> 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容