📜  TestNG-写作测试(1)

📅  最后修改于: 2023-12-03 15:20:36.693000             🧑  作者: Mango

TestNG-写作测试

什么是TestNG?

TestNG是一个基于Java的测试框架,能够构建更好的测试,并且打破了JUnit框架的约束。TestNG提供更多的功能和灵活性,例如:测试方法分组、依赖、先决条件、测试套件等。TestNG是业界最好的测试框架。

TestNG中的Annotations

TestNG中的注解是在执行测试的时候被读取和执行的方法或类级别的标记。下面是几种最常用的TestNG注解:

  • @Test: 这个注解表示一个方法是测试方法。TestNG框架在运行时,只有被@Test标注的方法才会被运行。此注解中还有一些属性,例如:enabled,该属性表示是否执行该测试方法; priority属性表示方法运行的优先级,数字越小优先级越高。

  • @BeforeMethod: 在每个测试方法运行之前运行。适用于设置前置条件,并初始化测试数据等操作。

  • @AfterMethod:在每个测试方法运行之后运行。适用于清理测试数据等操作。

  • @BeforeClass: 在类的第一个测试方法运行之前运行。在所有测试方法运行前进行一次性的准备工作,比如加载配置文件等操作。

  • @AfterClass: 在类的所有测试方法都运行完之后运行。在所有测试方法运行之后进行清理工作,比如关闭数据库等操作。

TestNG的Asserts

TestNG通过提供一些Asserts的形式,来确定一个测试是否成功或失败。下面是几种TestNG中的Asserts:

  • assertEquals(): 确保两个值相等。

  • assertNotEquals(): 确保两个值不等。

  • assertTrue(): 确保一个条件为真。

  • assertFalse(): 确保一个条件为假。

  • assertNull(): 确保一个对象为null。

  • assertNotNull(): 确保一个对象不为null。

  • assertSame(): 确保两个对象引用同一个对象。

  • assertNotSame(): 确保两个对象不是同一个对象引用。

TestNG的分组

TestNG的分组是为了方便你在不同的场景下执行测试。TestNG允许你根据不同的测试场景,将不同的测试方法分配到不同的分组中。可以通过在注解:@Test(groups = { “group1”, “group2” }) 中指定测试方法所属的组。

TestNG的依赖性

TestNG的依赖性是为了有序地执行测试而存在的。在TestNG中,一个测试方法依赖于另一个测试方法。TestNG在执行测试的时候会先执行依赖的测试方法,如果依赖的测试方法失败了,那么依赖它的测试方法就不会运行。

可以通过在注解: @Test(dependsOnMethods = { “loginTest”, “homePageTest” } )中指定当前测试方法所依赖的测试方法。

TestNG的参数化

TestNG允许以参数化的形式来组织测试,这样就可以使得同一个测试方法可以运行多次并检查不同参数所产生的结果。

可以通过在注解:@Test(dataProvider = “dataProvider”)中指定数据源提供参数。

TestNG的并行执行

TestNG支持并行执行测试,这样可以提高执行测试的效率。TestNG支持四种不同的并行执行测试的方式:测试方法级别并行、测试类级别并行、测试套件级别并行和测试库级别并行。可以通过在注解:@Test(threadPoolSize = 3, invocationCount = 6)中指定线程池大小来控制并行执行的线程数量。

结束语

TestNG是一个功能强大的测试框架,在测试自动化中起着越来越重要的作用。它提供了很多有用的注解来帮助程序员构建更好的测试。同时,TestNG也提供了多种方便的运行测试的方法,例如:分组、依赖、参数化、并行执行等。