在使用selenium+Java进行web自动化测试时,并行运行测试用例一般会在以下两个场景下使用:一是需要加快测试用例执行速度,减少测试时间;一是为了验证不同类型浏览器下web页面的兼容性。由于testNG支持多线程并发运行,在这里简单介绍一下testNG关键字+数据驱动框架下实现多个浏览器并行测试用例的方法。整个关键字+数据驱动框架结构如下:
其中testng.xml的配置如下所示:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="tests" thread-count="2"> <test thread-count="5" name="Test1"> <classes> <class name="selenium_Run.baidu_Test"/> </classes> </test> <!-- Test --> <test thread-count="5" name="Test2"> <classes> <class name="selenium_Run.shop_Test"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
以此配置运行测试类即可同时打开两个浏览器并行运行各自的测试类,其中<suite name="Suite" parallel="tests" thread-count="2">
parallel 表示并发线程的级别,其可以有三个级别,即tests级别,classes级别,method级别。tests级别即表示并发运行测试类。运行用例时在控制台可以看到同时打开了两个浏览器,运行各自的测试类。
如果想要同一份测试用例使用不同类型的浏览器同时并行,则只需要复制一份测试用例数据,修改测试数据中打开的浏览器类型,同时修改testng.xml,将class name分别执行两个测试用例数据即可。