提升TestNG测试效率是用好几个特性,性价比最高的,往往是并行执行。
实战方法:
并行执行:
是测试提速最有效的手段,配置起来也简单:在 testng.xml 文件中设置parallel和thread-count属性。
可以选择三种不同的并行粒度:methods(方法级)、classes(类级)和 tests(套件级),具体取决于测试独立性。
测试组织:
使用 @Test(groups = { "smoke", "checkout" }) 注解分组,并在testng.xml中配置执行方法,可以做到代码零修改、灵活运行。同时通过 @Test(priority = 1) 控制顺序,或利用 @Test(dependsOnMethods = { "testMethod1" }) 建立依赖,能让思路更清晰。还可以用 @Test(timeOut = 5000) 为测试设置超时,防止长时间卡死。
数据驱动DataProvider
@DataProvider是避免重复代码、提高包括率的,一个方法可多次运行包括不同输入场景。在处理海量测试数据(如从数据库读取)时,建议让DataProvider返回Iterator<Object[]> 而不是一次性加载所有数据可以节省内存。
测试流程的监听器:
通过实现 ITestListener 等接口,可以集中管理自定义思路,让测试代码保持简洁。
失败自动重试:在 onTestFailure() 方法中编写重试思路,能提高测试在偶发环境问题下的稳定性。
生成增强报告:在 onTestSuccess() 或 onTestFailure() 中记录详细信息,用于创建自定义报告。
运行时动态修改:使用IAnnotationTransformer监听器可在运行时动态修改测试属性。