last_build_number: Jenkins最后一次构建number
last_build_result: Jenkins最后一次构建结果
last_build_report: Jenkins最后一次构建输出报告
last_build_report = jenkins_url + "job/" + job_name + "/HTML_20Report/" + job_name + "_" + str(last_build_number) + ".html"
last_build_number, last_build_result = jenkins_build()
data = {
"msg_type": "interactive",
"card": {
"config": {
"wide_screen_mode": True,
"enable_forward": True
"elements": [{
"tag": "div",
"text": {
# 这是卡片的内容,也可以添加其他的内容:比如构建分支,构建编号等
"content": "项目名称: {}".format(job_name),
"tag": "lark_md"
"tag": "div",
"text": {
# 这是卡片的内容,也可以添加其他的内容:比如构建分支,构建编号等
"content": "构建编号: 第{}次构建".format(last_build_number),
"tag": "lark_md"
"tag": "div",
"text": {
# 这是卡片的内容,也可以添加其他的内容:比如构建分支,构建编号等
"content": "用例执行结果 - {}".format(last_build_result),
"tag": "lark_md"
"tag": "div",
"text": {
# 这是卡片的内容,也可以添加其他的内容:比如构建分支,构建编号等
"content": "构建URL: {}job/{}/{}".format(jenkins_url, job_name, last_build_number),
"tag": "lark_md"
"actions": [{
"tag": "button",
"text": {
# 这是卡片的按钮,点击可以跳转到url指向的构建日志路径
"content": "构建日志",
"tag": "lark_md"
# JOB_URL 调用python定义的变量,该url是服务器下的build log路径
"url": f"{jenkins_url}job/{job_name}/{last_build_number}/console",
"type": "default",
"value": {}
"tag": "button",
"text": {
# 这是卡片的按钮,点击可以跳转到url指向的report路径
"content": "查看测试报告",
"tag": "lark_md"
"url": f"{last_build_report}",
"type": "default",
"value": {}
"tag": "action"
"header": {
"template": "red",
"title": {
# JOB_NAME 调用python定义的变量,这是卡片的标题
"content": "【接口自动化构建报告】 - build#{}".format(last_build_number),
"tag": "plain_text"
response = requests.request(method=method, url=url, headers=headers, json=data)
print(response)
print(response.json())
获取正在排队
构建
的job队列 即pending状态中的所有job,如果没有 pending状态的job即返回1个空列表
queue_info = server.get_queue_info()
获取job
构建
结果
server.get_
build
_info(name,
build
_number)[
'result'] #
构建
结束 SUCCESS|FAILURE ABORTED
构建
1 获取jobs的当前任务状态
server_1 =
jenkins
.
Jenkins
(‘http://%s:%s@192.168.37.134:8081/’,username, password)
获取状态前先确认2019文件夹下的get_node_list任务是否存在:
server_1.assert_job_exists(‘2019/get_node_list’)
获取最后一次
完成
(不包括执行中的)的job任务执行number:
server_1.get_job_info(‘2019/get_node_list’)[‘lastCompleted
Build
’][‘number’]
save_job_xml - 显示如何使用
jenkins
api下载作业 config.xml
job_
build
er_simple - 展示如何使用
jenkins
-job-
build
er创建简单的作业
job_
build
er_template - 展示如何使用
jenkins
-job-
build
er模板和用户定义的变量为每个分支创建
构建
作业
basic_flow - 展示如何创建简单的
jenkins
flow脚本来执行
构建
管
jenkins
通知
插件
Jenkins
插件使用可配置的JSON负载将POST请求
发送
为
构建
后操作。
默认情况下,提交的有效负载包含
构建
的详细信息(
构建
号,
构建
结果,作业和日志URL),生成的工件的URL,Git分支和提交SHA。
但是,作为可配置的它可以包含您可能想到的任何
Jenkins
,作业或
构建
细节!
JSON有效负载呈现为,范围内具有以下变量:
jenkins
-实例
build
- 实例
env - 实例对应于当前的
构建
过程
这是提交默认有效负载的 :
此外,还提供json( Object ) helper函数,可将提供的任何Object呈现为JSON。
"items": ${ json(
jenkins
.allItems ) },
"computers": ${ json(
jenkins
.computers.collect{
代码
send
_notice.py中拿到
Jenkins
引用变量参数,放到https://www.sojson.com/ 进行格式压缩。
send
_notice.py 代码 需要上传
Jenkins
服务器。得到一行参数,放到
Jenkins
中引用。
send
_notice.py最后面。
get
Build
State(){
build
Nr=$1
curl -u #
jenkins
账号密码信息 ${JOB_URL}/${
build
Nr}/api/json |grep -Po '"result":\s*"\K\w+'
state=$(get
Build
Sta
get
Build
State(){
build
Nr=$1
curl -v ${JOB_URL}/${
build
Nr}/api/json --header 'Authorization: Basic YWRtaW46VWF0NjY2IQ==' | grep -Po '"result":\s*"\K\w+'
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
# 写成了一个通用的函数接口,想直接用的话,把参数的注释去掉就好
def
send
_email(msg_from, passwd,.
import pprint
import time
# 在
jenkins
的Configure Global Security下 , 取消“防止跨站点请求伪造(Prevent Cross Site Request Forgery exploits)”的勾选
server =
jenkins
.
Jenkins
('http://192.168.100.151:8081', username='admin', password='admin')
# 下次
构建
的id
(因为
飞书
截图有水印,所以这里用别人的博客的图)图1图2图3图4!!我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。