Selenium + PO 框架进阶实践:接入 Allure 报告与 Jenkins 持续集成
前言
在上一篇文章中,我们已经完成了 从零搭建 Selenium + PO 模式的 CRM(悟空)自动化测试框架。
一个完整的自动化框架不仅要能编写用例,还需要具备:
-
测试报告可视化:清晰展示执行结果、失败原因、截图等;
-
持续集成:在代码更新后自动执行测试,减少人工干预。
本文将带大家进阶实践:
-
在已有框架中接入 Allure 报告;
-
使用 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
-
前往 Jenkins 官网 下载并安装。
-
启动 Jenkins 服务并访问
http://localhost:8080/
。 -
按照提示完成初始配置,并安装推荐插件。
2. 配置 Python 环境
-
在 Jenkins 全局工具配置中,添加 Python 环境。
-
确保能执行
pytest
、allure
命令。
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 插件
-
在 Jenkins 插件管理中安装 Allure Jenkins Plugin。
-
在任务配置中,添加 Post-build Actions →
Allure Report
。 -
指定结果目录:
result
这样,每次执行任务后,Jenkins 会自动生成并展示 Allure 报告。
5. 持续集成触发方式
你可以配置不同的触发器,例如:
-
定时任务(每天凌晨执行一次);
-
Git webhook(每次代码提交后触发)。
三、最佳实践
-
报告截图:失败用例自动截图,提升可读性。
-
分环境执行:区分测试/预发/生产环境,通过参数控制。
-
流水线方式:使用 Jenkins Pipeline(Jenkinsfile)实现更灵活的 CI/CD。
-
报告归档:将历史 Allure 报告打包归档,便于追溯。
四、总结
通过将 Allure 报告 接入 Selenium 框架,我们获得了直观、美观的测试结果展示;结合 Jenkins 持续集成,则实现了代码更新后自动化测试的执行和报告生成。
这让测试工作更专业、高效,也让团队更容易接受和信任自动化测试结果。
🚀 下一步,我们可以继续探索 Docker 容器化运行 + Jenkins 分布式节点,进一步提升项目的可扩展性。