自动化工具 基于 Jenkins Remote API 的二次开发

· November 24, 2021 · 3676 hits

一、 JenkinsAPI 的鉴权

1. CSRF Protection(方式一)

通过下面的方式获取到 Jenkins-Crumb,调 Jenkins API 时在 header 中加上该参数,用于跨站访问 Jenkins 的接口
curl --location --request GET 'http://ip:port/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)' \
--header 'Authorization: Basic eXV5dTp5dXl1'

Authorization: Basic eXV5dTp5dXl1 为账密 base64 之后的结果,等同于用 postman 在 auth 里选择 Basic Auth,输入账密

获取到的结果如下,不过该值每隔一段时间会失效,需要重新获取:
Jenkins-Crumb:d8e75b26e5cdc27f29df857ccb3d979690b85f9418119e9117f813fc939cc462

2. API TOKEN(方式二)

进入用户列表 --- 点击用户 --- 设置 --- 添加 api token
yuyu_token 110deceb3c13c5e16d809b8b6426a7d6e3

curl --location --request POST 'http://yuyu:110deceb3c13c5e16d809b8b6426a7d6e3@3.1.250.199:6001/job/AutoTestByApi/build' \
--header 'Jenkins-Crumb: d8e75b26e5cdc27f29df857ccb3d979690b85f9418119e9117f813fc939cc462' \
--header 'Authorization: Basic eXV5dTp5dXl1'

二、测试平台实现功能

公司使用开源测试平台 meterSphere 主要用来做测试用例管理、测试跟踪和性能测试。
由于公司本身已经有一套接口自动化框架,所以没有用 ms 的接口自动化功能。

此次基于 ms 进行二次开发,扩展了适配自己公司的功能,仅涉及前端开发,使用 vue+elementui 框架,直接调用 Jenkins-Remote-Api。

1.参数化调度构建 Jenkins-job,实时获取 job 运行结果

2.报告查看

3.报表分析
基于 Echarts 做的图表


curl --location --request POST 'http://ip:port/job/AutoTestByApi/build' \
--header 'Jenkins-Crumb: d8e75b26e5cdc27f29df857ccb3d979690b85f9418119e9117f813fc939cc462' \
--header 'Authorization: Basic eXV5dTp5dXl1'

用到的一些 api

参考文档:

官方文档:https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

网友博客整理的常用 api
https://www.cnblogs.com/anliven/p/13642675.html?ivk_sa=1024320u
https://blog.csdn.net/qq_34832393/article/details/88210942
https://blog.csdn.net/qq_34832393/article/details/88229804

No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up