当前位置: 首页 > news >正文

Selenium + PO 框架进阶实践:接入 Allure 报告与 Jenkins 持续集成

前言

在上一篇文章中,我们已经完成了 从零搭建 Selenium + PO 模式的 CRM(悟空)自动化测试框架
一个完整的自动化框架不仅要能编写用例,还需要具备:

  • 测试报告可视化:清晰展示执行结果、失败原因、截图等;

  • 持续集成:在代码更新后自动执行测试,减少人工干预。

本文将带大家进阶实践:

  1. 在已有框架中接入 Allure 报告

  2. 使用 Jenkins 实现自动化测试的持续集成。


一、Allure 报告接入

1. 安装 Allure 依赖

在 Windows 环境下,先安装 Python 依赖:

pip install allure-pytest

如果你使用的是虚拟环境(推荐),请确保在虚拟环境中安装。

2. 下载 Allure 命令行工具

  • 前往 Allure Release 页面 下载最新版本。

  • 解压后,将 bin 目录配置到环境变量 PATH 中。

  • 验证是否安装成功:

allure --version

3. 在用例中添加 Allure 标签

在测试用例中添加 feature、story、step 等标记:

import allure@allure.feature("登录模块")
class TestLogin:@allure.story("登录成功")def test_login_success(self, driver):with allure.step("输入用户名"):driver.find_element("id", "username").send_keys("admin")with allure.step("输入密码"):driver.find_element("id", "password").send_keys("123456")with allure.step("点击登录"):driver.find_element("id", "loginBtn").click()assert "欢迎" in driver.page_source

📌 小技巧:当用例失败时,可以在 teardown 或封装的 BaseCase 中自动截图,并添加到 Allure 报告:

import alluredef take_screenshot(driver, name):allure.attach(driver.get_screenshot_as_png(), name=name, attachment_type=allure.attachment_type.PNG)

4. 生成 Allure 报告

执行 pytest 时,添加参数:

pytest --alluredir=./result

生成并打开报告:

allure serve ./result

这样就能在浏览器中查看 美观的交互式测试报告


二、Jenkins 持续集成

1. 安装 Jenkins

  1. 前往 Jenkins 官网 下载并安装。

  2. 启动 Jenkins 服务并访问 http://localhost:8080/

  3. 按照提示完成初始配置,并安装推荐插件。

2. 配置 Python 环境

  • 在 Jenkins 全局工具配置中,添加 Python 环境。

  • 确保能执行 pytestallure 命令。

3. 新建 Jenkins 任务

  • 创建一个 自由风格(Freestyle project) 任务。

  • 在源码管理中配置 Git 仓库地址,例如:

https://github.com/yourname/crm-selenium-po.git
  • 构建步骤 中添加执行 Shell 命令:

pytest --alluredir=./result
allure generate ./result -o ./report --clean

4. 配置 Allure 插件

  1. 在 Jenkins 插件管理中安装 Allure Jenkins Plugin

  2. 在任务配置中,添加 Post-build ActionsAllure Report

  3. 指定结果目录:

result

这样,每次执行任务后,Jenkins 会自动生成并展示 Allure 报告。

5. 持续集成触发方式

你可以配置不同的触发器,例如:

  • 定时任务(每天凌晨执行一次);

  • Git webhook(每次代码提交后触发)。


三、最佳实践

  1. 报告截图:失败用例自动截图,提升可读性。

  2. 分环境执行:区分测试/预发/生产环境,通过参数控制。

  3. 流水线方式:使用 Jenkins Pipeline(Jenkinsfile)实现更灵活的 CI/CD。

  4. 报告归档:将历史 Allure 报告打包归档,便于追溯。


四、总结

通过将 Allure 报告 接入 Selenium 框架,我们获得了直观、美观的测试结果展示;结合 Jenkins 持续集成,则实现了代码更新后自动化测试的执行和报告生成。

这让测试工作更专业、高效,也让团队更容易接受和信任自动化测试结果。

🚀 下一步,我们可以继续探索 Docker 容器化运行 + Jenkins 分布式节点,进一步提升项目的可扩展性。

http://www.dtcms.com/a/358435.html

相关文章:

  • macOs上ffmpeg带入libx264库交叉编译
  • docker 启动一个clickhouse , docker 创建ck数据库
  • Python远程文件管理移动端适配与跨平台优化实战
  • vue3多个el-checkbox勾选框设置必选一个
  • 【OpenGL ES】光栅化插值原理和射线拾取原理
  • Day17(前端:JavaScript基础阶段)
  • Cocos游戏中自定义按钮组件(BtnEventComponent)的详细分析与实现
  • HAProxy 负载均衡全解析:从基础部署、负载策略到会话保持及性能优化指南
  • Spring : 事务管理
  • 音视频学习(六十一):H265中的VPS
  • Prompt Engineering:高效构建智能文本生成的策略与实践
  • 深层语义在自然语言处理中的理论框架与技术融合研究
  • AI大模型:(二)5.2 文生视频(Text-to-Video)模型训练实践
  • FPGA增量式方差与均值计算
  • 响应式编程框架Reactor【4】
  • FPGA学习笔记——SPI读写FLASH
  • 优化器全指南:从原理到调优实战
  • 原子操作与锁实现
  • 由于不对称GND过孔配置,差分信号过孔上的差模到共模转换
  • SQL相关知识 CTF SQL注入做题方法总结
  • seafile-setup-troubleshooting_# Seafile 安装与问题解决记录 # Seafile/Seahub 启动问题记录文档
  • Scikit-learn Python机器学习 - Scikit-learn加载数据集
  • C/C++:AddressSanitizer内存检测工具
  • 《以奋斗者为本》读书笔记(上篇:价值管理)
  • Ethan开发者创新项目日报 | 2025-08-30
  • MySQL之事务
  • 渲染数据列表:`map` 方法与 `key` 的奥秘
  • Rust 泛型:抽象与性能的完美融合(零成本抽象的终极指南)
  • sql简单练习——随笔记
  • Deepseek法务提示指令收集