Jenkins 完成 Jenkins+GitHub+Allure 的结合

本文详细介绍如何使用Jenkins创建job实现自动化测试流程,包括环境配置、job创建、shell命令执行及Allure报告生成等关键步骤。

1.关于使用Jenkins创建job完成自动化测试,核心在于项目的拉取和执行,至于job的创建大同小异,需要了解的可以参考文章:[Jenkins之job创建、参数化与定时构建以及时区偏差填坑]
2.另外还需要的就是执行机的环境(以GitHub拉取项目为例),需要具体细节操作可自行百度Google或参考文章:[Jenkins如何管理、配置、运行node节点,用slave进行分布式运行]

  • 需要配置Java运行环境(我用的是jdk1.8)
  • 需要有maven环境
  • 需要有git环境
  • 需要将git的公钥加入GitHub的SSH key
    3.已经存在一个接口自动化测试的项目
    下面就仅重点介绍需要注意的点。
    1)新建job后,在【源码管理】中选中Git,Repository URL中填入GitHub中的项目地址:
    2)在【Credentials】中我们需要Git的认证才可以使用git去拉取代码,点击【添加】,这里选择的是SSH的方式。
    【Username】中填写你Git的用户名,可以使用git config user.name命令查看。
    【Private Key】中填入你Git的私钥,可以使用cd ~/.ssh进行查找,将id_rsa中的内容填入即可。
    在构建中我们选择以shell的方式执行:
  • . ~/.bash_profile是为了引入我的环境变量配置
  • cd …ApiTest是为了进入我设置的项目目录下
  • mvn clean install -Dtest=SearchTest目的是为了使用maven制定执行SearchTest
    踩坑时刻:
    这里有一个坑需要注意,如果是用docker启用的Jenkins服务,在你创建完job直接在master上构建后,会报找不到你写的这些shell命令的错误,因为你这个服务时跑在容器里的,而这些shell命令是需要在容器外执行的,解决方法有两种:
    4.重新构建一个带有环境的Jenkins变量
    5.将master创建成一个slave,在slave节点上运行即可
    我使用的是第二种方法:
    创建好slave后在job中设置运行在master_slave节点上:
    执行构建,在控制台输出中查看log,BUILD SUCCESS!构建成功,用例执行了11个,失败了3个。
    1)插件安装,先在Jenkins的【插件管理】中搜索安装Allure插件,如下:
    2)回到job中,在【构建后的操作】中选择Allure Report,填入allure-result的路径
    踩坑时刻:
    这里Results的路径要注意填写你实际的存放路径,Jenkins例子和网上很多文章都直接写了填写target/allure-results,如果你的路径不对,肯定就找不到数据;比如我这里在前面已经设置了一个项目子目录,所以要填入子目录的路径。
    再次执行构建,查看结果:
  • 构建完成后我们可以看到已经有了allure报告的标识
  • 点击查看,报告完美展示
    以上,欢迎大家一起交流探讨。

更多技术文章

### 概述 搭建集成 **GitHubJenkins、Pytest 和 Allure** 的自动化测试平台,主要涉及以下几个方面: 1. 使用 Docker 部署 Jenkins 环境; 2. 在 Jenkins 中配置 Pytest 测试任务; 3. 集成 Allure 报告生成插件; 4. 与 GitHub 进行连接,实现代码推送后自动触发测试流程。 --- ### 使用 Docker 部署 Jenkins 环境 可以使用 `docker-compose.yml` 文件快速部署 Jenkins 容器,并确保其具备运行 Python 自动化测试的能力。以下是一个完整的配置示例: ```yaml version: '3' services: jenkins: image: jenkins/jenkins:lts privileged: true user: root ports: - "8080:8080" - "50000:50000" volumes: - jenkins_home:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 volumes: jenkins_home: ``` 启动容器后,在浏览器中访问 `http://<服务器IP>:8080` 即可进入 Jenkins 初始化界面。初始化完成后,登录并进行必要的插件安装和全局工具配置[^3]。 --- ### Jenkins 中配置 Pytest 测试任务 在 Jenkins 中创建一个新的自由风格项目(Freestyle Project),并进行如下配置: #### 1. 源码管理(Source Code Management) 选择 Git,并填写你的 GitHub 仓库地址以及凭据(建议使用 Personal Access Token): ``` Repository URL: https://github.com/yourname/yourrepo.git Branches to build: */main 或 */master ``` #### 2. 构建环境(Build Environment) 勾选 “Delete workspace before build starts”,确保每次构建都是干净的环境。 #### 3. 构建步骤(Build Steps) 选择“Execute shell”或“Windows Batch Command”,根据系统类型执行以下命令: ```bash # 安装依赖 pip install -r requirements.txt # 执行 Pytest 测试并将结果输出到 allure-results 目录 pytest test_your_module.py --alluredir=./allure-results --clean-alluredir ``` --- ### 配置 Allure 报告插件 在 Jenkins 插件管理中安装 **Allure Report Plugin**,然后在项目的“Post-build Actions”中添加“Report Generation”,指定 Allure 结果目录为 `./allure-results`。 完成配置后,每次构建成功后会自动生成可视化的 Allure 测试报告页面。 --- ### 与 GitHub 集成实现持续集成 在 GitHub 仓库中设置 Webhook,指向 Jenkins 的钩子地址,例如: ``` http://<jenkins-server>:8080/github-webhook/ ``` 这样当有新的提交推送到 GitHub 时,Jenkins 就会自动拉取代码并触发构建任务,从而实现完整的 CI/CD 流程。 --- ### 示例:完整 Jenkinsfile 实现(适用于 Pipeline) 如果使用 Jenkins Pipeline,可以在项目根目录下创建 `Jenkinsfile`,内容如下: ```groovy pipeline { agent any stages { stage('Clone Repository') { steps { git branch: 'main', url: 'https://github.com/yourname/yourrepo.git' } } stage('Install Dependencies') { steps { sh 'pip install -r requirements.txt' } } stage('Run Tests') { steps { sh 'pytest test_your_module.py --alluredir=./allure-results --clean-alluredir' } } } post { always { allure includeProperties: false, jdk: '', results: [[path: 'allure-results']] } } } ``` 该文件定义了从代码拉取、依赖安装、执行测试到生成 Allure 报告的全过程。 --- ### 注意事项 - 确保 Jenkins 容器内已安装 Python、Pytest 及相关依赖库; - 若 Jenkins 运行在 Linux 系统上,推荐使用虚拟环境(如 `venv`)隔离测试依赖; - Jenkins 容器需要具有读写权限以生成 Allure 报告; - 如果遇到权限问题,可在容器启动时加上 `-uroot` 参数以提升权限级别。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值