TestNG的基本使用

一、TestNG介绍

适合测试人员使用的原因:

  1. 比Junit涵盖功能更全面的测试框架;
  2. Junit更适合隔离性比较强的单元测试;
  3. TestNG更适合复杂的集成测试。

二、安装

pom文件坐标如下:
TestNG的基本使用

三、注解实战

下面学习注解的实际应用

创建工程

之前已经引入testNG,IDEA中创建module—>>创建一个类
TestNG的基本使用

@Test

@Test是TestNG中最基本的注解,表示方法是测试的一部分。可以run查看执行结果。
TestNG的基本使用
TestNG的基本使用

@BeforeMethod和@AfterMethod

见名知意,这是一个在测试方法之前或之后执行的注解。
为了更好看到这两个注解的效果,在类中写了两个测试方法testCase1、testCase2,同时将@BeforeMethod和@AfterMethod分别写在对应的测试方法上。这时run一下这个类,看到@BeforeMethod和@AfterMethod对应的测试方法在testCase1、testCase2两个测试方法执行前后都运行了一遍。
TestNG的基本使用
TestNG的基本使用

@BeforeClass和@AfterClass

@BeforeClass和@AfterClass是在类执行前后运行
TestNG的基本使用
TestNG的基本使用

@BeforeSuite和@AfterSuite

TestNG中测试套件是很重要的,需要用到xml文件运行。
首先,创建一个名为suite的包,创建一个类SuiteConfig,用于suite套件的配置。
TestNG的基本使用
模拟淘宝登录和支付业务做为测试案例,分别创建LoginTest类和PayTest类,并补充测试方法。
TestNG的基本使用
TestNG的基本使用
在resources中创建一个xml,命名为suite.xml,并进行配置。这里需要注意,suite标签和test标签都需要命名,否则会报错。
TestNG的基本使用
右键suite.xml运行,从运行结果可以看出,@BeforeSuite和@AfterSuite在整个suite套件前后执行,@BeforeTest和@AfterTest在test标签前后执行。
TestNG的基本使用

四、忽略测试

当我们不想让某个测试方法执行时,直接删除肯定不是一个好的解决办法,这时可以使用忽略测试,将@Test的属性enabled设为false即可(enabled默认值为true)。
TestNG的基本使用

五、分组测试

方法分组测试

创建名为GroupsOnMethod的类,并创建4个测试方法,分为server组和client组,即**@Test(groups = “组名”)**。@BeforeGroups和@AfterGroups在组内测试方法执行前被执行一次。例如:
TestNG的基本使用
TestNG的基本使用
运行结果:
TestNG的基本使用

类分组测试

类分组测试的注解就需要写在类上,且需要xml文件进行配置。创建三个类,分为stu组和teacher组,并补充测试方法。如下:
TestNG的基本使用
TestNG的基本使用
TestNG的基本使用
创建xml文件,并配置三个类,在这里要运行所有分组的类
TestNG的基本使用
运行结果:
TestNG的基本使用
分了两个组,这里我们只运行stu组的类,则xml的配置为:
TestNG的基本使用
运行结果为:
TestNG的基本使用

六、异常测试

什么时候会用到异常测试呢?
在我们期望结果为某一个异常的时候。比如:我们传入了某些不合法的参数,程序抛出异常,也就是说我的预期结果就是这个异常。
书写方法为,在@Test注解的expectedExceptions属性设置异常类,即@Test(expectedExceptions = 异常类.class)。举例?
TestNG的基本使用
运行结果为,第一个测试方法执行失败,第二个测试方法执行成功。

七、依赖测试

当我们的测试需要一定的执行顺序时,这时就需要用到依赖测试。
如test2方法的执行需要在test1方法之后执行,可以在test2方法上配置@Test(dependsOnMethods = {“test1”})。如:
TestNG的基本使用