因为之前搭建了接口测试平台,具体用例集执行仍然是调用 jenkins 来完成的,所以需要在服务端主动调用 jenkins,创建 job,远程构建
服务端:编写一个帮助类,提供连接 jenkins 服务,创建 job 的功能,构建等方法,下图中的1
Jenkins 端:提供一个 baseJob,服务端获取这个 job,并复制生成一个新的 job
Jenkins 中的 job,其实是一个 xml 文件,通过复制这个 xml 文件并修改就可以复制并编写一个 job
baseJob:
调用服务端的接口获取本次需要执行的用例,下图中的2
执行测试任务,下图中的3
任务完成后,上传测试结果,如果有失败的情况,则发送企业微信及钉钉消息通知,下图中的4
这是一个 github 项目,可以用来
<dependency>
<groupId>com.offbytwo.jenkins</groupId>
<artifactId>jenkins-client</artifactId>
<version>0.3.7</version>
</dependency>
package com.jolly.mobiletestservice.utils;
import com.offbytwo.jenkins.JenkinsServer;
import com.offbytwo.jenkins.model.Job;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
public class JenkinsUtils {
private static JenkinsServer jenkins;
static {
try {
jenkins = new JenkinsServer(new URI("http://ip:port/"), "username", "password");
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
private JenkinsUtils() {
}
public static JenkinsServer getJenkins() {
return jenkins;
}
public static String buildJobWithParameters(String jobName, Map<String, String> parameters) {
try {
Job job = jenkins.getJob(jobName);
job.build(parameters);
return job.getUrl();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
public static void main(String[] args) {
}
}