通过Jenkins Master_Slave实现分布式

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来实现分布式,不需要修改代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容