1. 将testng.xml分割成多份
image.png
2. 按照以下方式改造pom.xml
<properties>
<!--设置testng.xml为变量,从外部动态获取-->
<xmlFileName>${xmlFileName}</xmlFileName>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<suiteXmlFiles>
<!--代表的是要执行的测试套件名称,放置在src.test.resources下-->
<suiteXmlFile>src/test/resources/${xmlFileName}</suiteXmlFile>
</suiteXmlFiles>
<!--设置参数命令行-->
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
3. 部署到Jenkins上,创建构建任务
- 选择参数化构建,如下图
name:xmlfile
value:testng2.xml
image.png
-
选择要运行的slave节点(Restrict where this project can be run)
image.png -
Build设置调用目标
Goals:clean test -DxmlFileName=$xmlfile
$xmlfile为上面设置的参数名
image.png
同理可创建另一个构建任务,指定参数值为testng3.xml,以及另一个节点Slave
以上就实现了用Master_Slave来实现分布式,不需要修改代码。