功能测试的流程:
分析需求 → 排测试计划 → 设计测试用例 → 执行测试用例
TestNG说明
TestNG 最重要的是注脚 @Test 的使用,一个方法加上 @Test 就表示其是一个测试方法,我们把每一个测试用例封装在不同的 @Test 方法中,那么也就用自动化代码实现了功能测试用例的设计。
常用注脚:
@BeforeClass/@AfterClass
(1)表示的意义:每个测试类运行前和运行后进行执行。
(2)运行次数:每次启动一个测试类,无论其中有多少个测试方法,这对注脚都只执行一次。
(3)应用场景:可以用于启动浏览器和退出浏览器。
@BeforeMethod/@ AfterMethod
(1)表示的意义:
@BeforeMethod 在每个 @Test 方法之前会自动被执行;
@AfterMethodz 在每个 @Test 方法之后会自动被执行;
(2)运行次数:这对注脚的运行次数与同一个测试类中包含多少个 @Test 方法有关,如果一个测试类中有 N( N>0 的整数)个 @Test 方法,那么这对注脚就别被执行 N 次。
(3)应用场景:我们知道浏览器是会产生缓存的,所以可以在这对注脚里写清除或者刷新浏览器缓存的代码。
其他注脚
还有@BeforeSuite/@AfterSuite与@BeforeTest/@AfterTest 。但是写在 TestNG 启动的 XML 文件中。
TestNG 的优点
(1)用例可以依据 testng-customsuite.xml 进行执行顺序、个数的优化;
(2)可以通过数据驱动进行多线程测试;
(3)可以不再依靠主方法 Main 进行方法的执行。
断言类方法:
(1)通过获取 UI 上的某个控件对象的某种属性值和期望值进行比较来验证是否正确。
(2)页面跳转后通过验证页面上某个控件对象是否存在,来判断是否缓冲完成。
Assert 类常用的方法:
(1)Assert.assertEquals 判断是否相等,Object 类型的对象需要实现 haseCode及equals 方法。
(2)Assert.assertFalse(condition) 判断是否为 false。
(3)Assert.assertNotEquals(actual1, actual2) 判断是否不相等。
(4)Assert.assertNotNull(object) 判断是否不为 null。
(5)Assert.assertNotSame(actual, expected, message) 判断引用地址是否不相同。
(6)Assert.assertNull(object, message) 判断是否为 null。
(7)Assert.assertSame(actual, expected) 判断引用地址是否相同。
(8)Assert.assertTrue(condition) 判断是否为 True。
总结
(1)掌握 TestNG 的使用方法。
(2)切记 Assert 断言类的使用场景,场景不清晰就根本设置不好断言,另外断言并不是越多越好,代码过多会影响程序的执行效率。
网友评论