Python 测开27期 - WL - 学习笔记 - 跨平台 api 对接

跨平台 api 对接

测试平台需求

  • 稳定
  • 功能
    ** 调用脚本
    ** 报告获取
    ** 分布式
    ** 支持 API 调用
  • 开源

Jenkins 环境准备

  • Jenkins 满足所有调度平台的需求
需求 Jenkins 对应关系
调用脚本 在构建的shell中可以直接执行命令
分布式 节点管理
支持 API 调用 Jenkins 对外开放的 API
报告获取 多种报告插件
  • Docker 搭建的 Jenkins
    ** 主节点:Docker 服务
    ** 丛节点:宿主机
  • 其他方式搭建的 Jenkins (可以直接调用)

Jenkins Slave 节点配置 ----没有使用docker搭建的话,推荐

  • 添加节点
    ** Remote root directory:Slave 节点的工作路径
    ** Launch method:启动的配置
    ** Host Key Verification Strategy:取消验证
  • 丛节点配置节点属性
    ** JAVA_HOME
    ** Git
    image
    image

Jenkins API 的使用

JenkinsAPI 使用-添加 token

使用 Jenkins API

Jenkins 常用 API

  • 根据 job 名称获取 job 对象
  • 构建 job
  • 获取当前 job 最后一次完成构建的编号

Jenkins 参数配置

  • 通过 build_params 关键字传递构建参数
    ** 要求使用字典格式
    ** key 值为 Jenkins 中设定的参数名
    ** value 为给参数传递的值
# 安装 Jenkins 插件
# pip install jenkinsapi

# 获取 Jenkins 版本
from jenkinsapi.jenkins import Jenkins
# Jenkins 服务
BASE_URL = "http://www.loseweight.ren:8080/"
# Jenkins 服务对应的 用户名 和 token
USERNAME = "admin"
PASSWORD =
# 获得 Jenkins 实例对象,关联Jenkins 服务
jenkins_hogwarts = Jenkins(BASE_URL,USERNAME,PASSWORD)
print(jenkins_hogwarts.version)
# 获取 Jenkins 的 job 对象
job = jenkins_hogwarts.get_job("hogwarts")
# 构建获取的 job, 参数是字典格式,key 是Jenkins中设置的参数名
job.invoke(build_params={"task":"hogwarts"})
# 获取最后一次完成构建的编号
job.get_last_stable_buildnumber()