jenkins+python自动化测试项目持续集成

1 jenkins的介绍与安装

1.1 应用场景

众所周知,写好一个自动化测试项目的代码之后,需要在命令行使用"pytest"进行运行,然后再使用命令“allure generate report/ -o report/html --clean”生成allure报告。但使用Jenkins可以自动地完成这些操作。

1.2 介绍

jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成成为可能。

1.3 安装

关于jenkins的安装,可参考小编的其他博客----使用运行war的形式安装jenkins

2 jenkins插件安装

2.1 安装Allure插件

要想使用Jenkins生成allure的xml文件,必须安装此插件
安装步骤

  1. 进入Jenkins,点击“系统管理” -》 “管理插件” -》 “可选插件”
  2. 搜索框中输入:allure,搜索结果中选中allure,点击“直接安装”即可
    在这里插入图片描述
    或者,离线安装,方式如下:
    ① 在下列网址找到要安装的插件,并下载。
    https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/
    http://mirror.esuni.jp/jenkins/plugins/
    http://mirror.xmission.com/jenkins/plugins/
    ② 选择“高级”,在Upload Plugin中选择①中下载好的.hpi文件,再点击Upload即可。
    在这里插入图片描述

2.2 安装Allure Commandline工具

要想使用Jenkins把allure的xml文件转成html文件,必须安装此工具
安装步骤

  1. 确保allure插件已经安装成功
  2. 点击“系统管理” -》“全局工具配置”
  3. 找到Allure Commandline,点击“Allure Commandline安装”
  4. 输入一个别名(随意)
  5. 输入安装目录
    1)https://bintray.com/qameta/generic/allure2下载 allure-2.6.0.zip2.
    2)解压缩到一个目录(不经常动的目录)
    3)输入解压后的目录。(目录下应该包含四个文件夹,如图所示)
    在这里插入图片描述
  6. 取消“自动安装”的选择
  7. 点击“save”进行保存
    在这里插入图片描述

3 Jenkins持续集成

配置完成后,会自动执行一套流程:
1)自动从GitHub下载自动化测试项目
2)自动执行pytest进行运行
3)自动生成allure报告
4)如果项目中有不通过的脚步,会自动给相关人员发邮件

3.1 准备自动化项目

让Jenkins自动化执行某个项目并生成报告以及出错发邮件这些功能,必须先准备一个可以使用pytest运行的自动化项目。使用pytest+allure,并确保可以生成对应的allure报告。

在这里插入图片描述

3.2 将项目上传到GitHub

1)新建GitHub项目,输入项目名,点击创建。
在这里插入图片描述
2)将本地仓库的项目push到git上
3)查看项目的git地址

<think>我们正在讨论使用JenkinsPython实现自动化接口测试的持续集成实践。 首先,我们需要明确持续集成成的流程:代码提交 -> 触发Jenkins构建 -> 拉取代码 -> 安装依赖 -> 执行Python测试脚本 -> 生成测试报告 -> 通知结果。 具体步骤: 1. 编写Python接口测试脚本(通常使用requests库) 2. 将测试脚本存放在代码仓库(如Git) 3. Jenkins安装必要插件(如Git插件、邮件通知插件等) 4. 配置Jenkins任务:设置源码管理(Git仓库地址)、构建触发器(如定时构建或代码提交触发)、构建步骤(执行Python脚本) 5. 配置构建后操作(如发布测试报告、发送邮件) 接下来,我们给出一个简单的案例。 案例:使用Python编写一个简单的接口测试脚本,然后通过Jenkins定时执行。 步骤1:编写Python测试脚本(test_api.py) 假设我们要测试一个简单的GET接口(例如:https://api.example.com/users) 我们使用requests库发送请求,并使用pytest框架进行测试。 注意:需要安装requests和pytest库(pip install requests pytest) 脚本示例: ```python import requests import pytest def test_get_users(): url = "https://api.example.com/users" response = requests.get(url) assert response.status_code == 200 data = response.json() assert isinstance(data, list) # 假设返回的是用户列表 ``` 步骤2:将脚本推送到Git仓库(例如GitHub) 步骤3:在Jenkins中创建自由风格项目 - 源码管理:配置Git仓库地址 - 构建触发器:可以设置定时构建(例如H/5 * * * * 表示每5分钟构建一次)或轮询SCM - 构建步骤:选择“执行Shell”或“执行Windows批处理命令”(根据Jenkins所在操作系统) 命令示例(Linux): pip install -r requirements.txt # 如果依赖多,可以写requirements.txt pytest test_api.py --junitxml=report.xml - 构建后操作:发布JUnit测试结果报告(指定报告路径,如report.xml),并配置邮件通知 这样,每次构建后,Jenkins会运行测试脚本并生成测试报告。如果有测试失败,会发送邮件通知。 优化建议: 1. 使用Jenkins Pipeline(流水线)进行更复杂的流程控制 2. 将测试配置(如测试环境URL)参数化 3. 使用Allure报告生成更美观的测试报告 下面展示一个简单的Jenkinsfile(Pipeline脚本)示例: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/your-repo/api-tests.git' } } stage('Install Dependencies') { steps { sh 'pip install -r requirements.txt' } } stage('Test') { steps { sh 'pytest --junitxml=report.xml' } } } post { always { junit 'report.xml' // 这里可以添加邮件通知或其他后处理 } } } ``` 这样,我们就实现了使用JenkinsPython进行自动化接口测试的持续集成。 §§相关问题§§ 1. 如何配置Jenkins的邮件通知? 2. 如何使用Allure生成更美观的测试报告? 3. 如何设置Jenkins的构建触发器(如GitHub webhook)以实现代码提交自动触发? 4. 在接口测试中如何处理认证(如Token)? </think> ### JenkinsPython实现自动化接口测试持续集成实践 #### 1. 核心组件与工具 - **Jenkins**:开源的持续集成工具,负责自动化流程调度 - **Python测试框架**:推荐使用 `pytest` + `requests`(或 `httpx`) sed - **测试报告**:Allure/Pytest-html 生成可视化报告 - **依赖管理**:`requirements.txt` 管理Python包 - **版本控制**:Git仓库存储测试代码 #### 2. 实践步骤 ##### (1) 创建接口测试脚本(Python) ```python # test_api.py import pytest import requests def test_login(): url = "https://api.example.com/login" data = {"username": "test", "password": "123456"} response = requests.post(url, json=data) assert response.status_code == 200 assert "token" in response.json() def test_get_user(): url = "https://api.example.com/users/1" headers = {"Authorization": "Bearer <TOKEN>"} response = requests.get(url, headers=headers) assert response.status_code == 200 assert response.json()["id"] == 1 ``` ##### (2) 配置Jenkins流水线 ```groovy // Jenkinsfile pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/your-repo/api-tests.git' // 测试代码仓库 } } stage('Install Dependencies') { steps { sh 'pip install -r requirements.txt' // 安装依赖 } } stage('Run Tests') { steps { sh 'pytest --alluredir=./report' // 执行测试并生成Allure报告 } } stage('Generate Report') { steps { allure includeProperties: false, jdk: '', results: [[path: 'report']] // 生成可视化报告 } } } post { always { emailext body: '${currentBuild.result}: ${BUILD_URL}', subject: '接口测试报告: ${JOB_NAME}', to: 'team@example.com' // 邮件通知 } } } ``` ##### (3) 关键配置项 1. **触发器设置**: - 定时构建:`H/15 * * * *`(每15分钟) - Git Hook:Git提交时自动触发 2. **环境管理**: - 使用Jenkins的 `Environment variables` 管理测试环境URL - 凭据库存储API密钥等敏感数据 3. **报告集成**: ```mermaid graph LR pytest执行 --> 生成Allure原始数据 Jenkins读取数据 --> 渲染HTML报告 报告链接 --> 邮件通知团队 ``` #### 3. 最佳实践案例 **电商订单API测试流水线**: 1. 每日凌晨2点自动执行全量测试 2. 测试范围: - 订单创建接口(POST /orders) - 支付状态查询(GET /orders/{id}) - 库存校验(GET /inventory) 3. 异常处理: - 自动重试失败用例 - 接口超时自动标记失败 4. 结果反馈: - Allure报告展示成功率趋势图 - 企业微信机器人实时推送报警 #### 4. 常见问题解决方案 - **环境差异**:使用Docker容器统一测试环境 - **数据依赖**:通过 `pytest.fixture` 创建测试数据 - **并发执行**:Jenkins分布式构建 + `pytest-xdist` 并行测试 - **敏感数据处理**:Jenkins凭据绑定到环境变量: ```groovy environment { API_TOKEN = credentials('api-access-token') // 安全密钥管理 } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值