TestNG系列(二)TestNG注解

左手的ㄟ右手 2023-06-20 09:01 22阅读 0赞

前言

TetsNG提供了很多注解,允许测试人员灵活地组织测试用例

一、@Test

@Tets是TestNG的核心注解,被注解的方法,表示为一个测试方法。

description属性

  1. @Test(description = "yuhao")
  2. public void case1(){
  3. System.out.println("case1方法");
  4. }

在测试报告中体现出来

enabled属性

设置为false时,被注解的方法将不会执行

groups属性

对测试方法进行分组,可在类级别或方法级别添加组,类级别分组,表示类里面的所有方法都属于该分组。分组在XML中的调用与普通方法不同,在说XML时会详细介绍。

  1. @Test(groups = "yuhao")
  2. public void case1(){
  3. System.out.println("case1方法");
  4. }

dependsOnMethods属性

测试方法case1依赖于case2,case2先于case1执行。如果case2失败了则case1也不执行,这叫硬依赖。

  1. @Test(dependsOnMethods = {"case2"})
  2. public void case1(){
  3. System.out.println("case1方法");
  4. }
  5. @Test
  6. public void case2(){
  7. System.out.println("case1方法");
  8. }

dependsOnGroups属性

类似于dependsOnMethods一个用方法名做依赖,一个使用组名做依赖。

invocationCount属性

方法执行次数

  1. @Test(invocationCount = 5)
  2. public void case1(){
  3. System.out.println("case1方法");
  4. }

threadPoolSize属性

线程池的内线程的个数

timeOut属性

超时时间-毫秒

alwaysRun属性

在添加依赖关系时,加上alwaysRun=“true”的属性,无论依赖是否成功,此方法都会继续执行。

二、@Before

@BeforeClass,被注解的方法在此类所有测试方法前执行

@BeforeMethod,被注解的方法在每个@Tets方法前执行

@BeforeSuite,被注解的方法在当前Suite中方法执行前执行

@BeforeTest,被注解的方法在每个@Test方法前执行

@BeforeGropu,被注解的方法在指定组内方法执行前执行

三、@After

@AfterClass,被注解的方法在此类所有测试方法后执行

@AfterMethod,被注解的方法在每个@Tets方法后执行

@AfterSuite,被注解的方法在当前Suite中方法执行后执行

@AfterTest,被注解的方法在每个@Test方法后执行

@AfterGropu,被注解的方法在指定组内方法执行后执行

四、@Lgnore

被此方法注解的方法在测试时都将被忽略执行

五、@Listeners

定义一个测试类的监听器,只能添加到测试类上,不能添加的具体方法。

六、@Parameters

此注解用来传递参数,可以传递单个、多个、默认值

传递单个参数

测试用例

  1. @Parameters({ "user" })
  2. @Test
  3. public void testcase1(String user) {
  4. System.out.println(user);
  5. }

XML文件

  1. <suite name="Suite" parallel="false">
  2. <parameter name="user" value="yogouo"/>
  3. <test name="autotest">
  4. <classes>
  5. <class name="com.TetsNG.testcase"/>
  6. </classes>
  7. </test>
  8. </suite>

传递多个参数

测试用例

  1. @Parameters({ "user","data" })
  2. @Test
  3. public void testcase1(String user,String data) {
  4. System.out.println(user+data);
  5. }

XML文件

  1. <suite name="Suite" parallel="false">
  2. <parameter name="user" value="yogouo"/>
  3.  <parameter name="data" value="2019-12-09">
  4. <test name="autotest">
  5. <classes>
  6. <class name="com.TetsNG.testcase"/>
  7. </classes>
  8. </test>
  9. </suite>

默认值

测试用例

  1. @Parameters({ "user" })
  2. @Test
  3. public void testcase1(@Optional("yogouo") String user) {
  4. System.out.println(user);
  5. }

XML文件

  1. <suite name="Suite" parallel="false">
  2. <test name="autotest">
  3. <classes>
  4. <class name="com.TetsNG.testcase"/>
  5. </classes>
  6. </test>
  7. </suite>

发表评论

表情:
评论列表 (有 0 条评论,22人围观)

还没有评论,来说两句吧...

相关阅读

    相关 TestNG基本注解

    BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次。 @AfterSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次。 ...

    相关 TestNG

    经常在使用TestNG的注解时,忘记这些差异不大的注解的执行顺序;或者忘记用什么注解。所以这里归纳总结一下。 注解 说明 @BeforeSuite The annotat

    相关 TestNG注解

    注解 描述 @BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次 @AfterSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次 @...