目录
1下载python包
2使用
1、初始化
2、构建项目
3、参数化构建项目
4、停止一个正在运行的项目
5、激活项目状态为可构建
6、变更项目状态为不可构建
7、删除项目
8、获取项目当前构建的最后一次编号
9、通过构建编号获取任务状态
10、获取项目控制台日志
11、获取项目测试报告
3封装
pip install python-jenkins
jk = jenkins.Jenkins(url='Jenkins地址', username='用户名', password='授权令牌')
jk.build_job(name='构建的job名称')
jk.build_job(name='构建的job名称', parameters='构建的参数,字典类型')
jk.stop_build('job名称', '构建编号ID')
jk.enable_job('job名称')
jk.disable_job('job名称')
jk.delete_job('job名称')
last_build_number = jk.get_job_info('job名称')['lastBuild']['number']
status = jk.get_build_info('job名称', last_build_number)['result']
状态有4种:SUCCESS|FAILURE|ABORTED|pending
result = jk.get_build_console_output(name='job名称', number=last_build_number)
result = jk.get_build_test_report(name='job名称', number=last_build_number)
# -*- coding:utf-8 -*-
import time
import jenkins
# jenkins地址
jenkins_server_url = 'http://127.0.0.1:8081/'
# 登陆jenkins的用户名
user_id = '####'
# 登陆jenkins后,在用户名>设置>API Token,下可以生成一个token
api_token = 'm###'
class jenkins_job_build(object):
def __init__(self):
# 初始化jenkins对象,连接远程的jenkins master server
self.server = jenkins.Jenkins(jenkins_server_url, username=user_id, password=api_token)
# 启动任务
def build_jenkins_job(self, job_name, parameters=None):
item_number = self.server.build_job(job_name, parameters=parameters)
# print(item_number)
return item_number # 返回的是启动任务列队号,不是构建号,下面这个方法才是获取构建编号
# 获取启动任务对应的构建编号
def build_number(self, item_number):
while True:
time.sleep(1)
build_info = self.server.get_queue_item(int(item_number))
print('build',build_info)
if 'executable' in build_info:
build_number = build_info['executable']["number"]
return build_number
# 获取jenkins任务最后次构建号
def get_job_lastBuild_number(self, job_name):
lastBuild_number = self.server.get_job_info(job_name)['lastBuild']['number']
return lastBuild_number
# 判断任务是否构建完成,正在构建返回的是True
def job_is_building(self, job_name, build_number):
is_building = self.server.get_build_info(job_name, build_number)['building']
return is_building
# 获取构建完成后的结果
def get_job_build_status(self, job_name, build_number):
job_status = self.server.get_build_info(job_name, build_number)['result']
return job_status
# 获取所有正在构建中的jenkins任务
def get_all_building_jobs(self):
building_jobs = self.server.get_running_builds()
return building_jobs
# 获取所有jenkins任务
def get_all_jobs(self):
jobs = self.server.get_jobs()
return jobs
# 获取jenkins构建时控制台输出的日志
def get_build_job_log(self, job_name, job_number):
return self.server.get_build_console_output(job_name, job_number)
example_jenkins = jenkins_job_build()
# # 启动任务
# begin = example_jenkins.build_jenkins_job("自动化测试")
# print(begin)
# 获取启动任务对应的构建编号
# buld_number = example_jenkins.build_number(11)
# print(buld_number)
# 获取jenkins任务最后次构建号
# num = example_jenkins.get_job_lastBuild_number("自动化测试")
# print(num)
# # 判断任务是否构建完成,正在构建返回的是True
# result1 = example_jenkins.job_is_building("自动化测试",num)
# print(result1)
# # 获取构建完成后的结果
# result = example_jenkins.get_job_build_status("自动化测试",num)
# print(result)
# # 获取所有jenkins任务
# all_task = example_jenkins.get_all_jobs()
# print(all_task)
# # 获取jenkins构建时控制台输出的日志
# console = example_jenkins.get_build_job_log("自动化测试",num)
# print(console)