我们每天都使用java webdriver运行大量测试。我们使用TestNG,我们使用bat文件来执行TestNG XML,使用Eclipse编译的类。不过,我想知道,如果有更好的方法可以做到这一点。由于我们每天运行数百(数千?)个测试用例,我们不得不求助于创建执行整个包的testng XML,否则我们必须为每个测试手动创建一个xml,这是不切实际的。
执行包含数百个类的大型测试的一个问题是,如果存在一个主要问题(例如webdriver停止或挂起),则整个测试将无法运行。此外,我们有一个在测试结束时上传到服务器的监听器,因此我们必须等待几个小时才能立即上传所有结果(更多“实时”更好)。另一个问题是,如果虚拟机因任何原因重新启动,所有“进度”都会丢失,我们必须从头开始运行测试。
我已经看到了在testng网站上提到的Ant版本,但我不确定ant的优势在于仅仅使用bat文件来执行XML。任何人都可以阐明这一点吗?或者提供任何解决方案来执行大量测试,使用比bat文件更优雅的东西?
谢谢!
答案 0 :(得分:1)
我建议不要使用Eclipse进行构建(或Ant),而是建议使用Gradle(http://gradle.org/)。它对TestNG有很好的支持,你可以使用gradlew clean test
之类的命令(而不是bat文件)运行测试
您可以在@Test
注释中使用测试组,而不是手动创建XML,这样您就可以不仅在包上选择基于组的测试。您也可以通过gradle传递组名称 - 例如gradlew clean build -PtestGroup=smoke,unit
(然后将其传递给build.gradle
文件http://gradle.org/docs/current/groovydoc/org/gradle/api/tasks/testing/testng/TestNGOptions.html中的TestNG)
更多"实时"结果您可以使用org.testng.TestListenerAdapter
在每个测试/配置方法之后上传您的结果(取决于您的结果处理结构)
如果你想更快地执行Selenium测试,基本上有一个选项(如果你已经优化了DOM处理等)和它的并行性 - 两个或更多的VM和基于组/包的拆分测试等。或者使用一些更复杂/程序化的方法。