Pytest、Jenkins 部署构建自动化测试(亲测无坑分享)

目录

前言

一、基础准备

二、Jenkins 配置

三、代码文件

四、示例效果


前言

从 0-1 配置 Jenkins 流水线,自动化执行 Pytest 测试用例

功能支持:

  • Jenkins 自动拉取构建

  • 执行 Pytest 测试

  • Allure 报告(后续支持)

  • 邮件/飞书/企微通知(后续支持)

一、基础准备

1. Jenkins 下载安装Download and deploy

2. Jenkins 启动:

下载文件夹目录路径输入 cmd 调起命令提示符执行:java -jar jenkins.war

访问默认地址 http://localhost:8080/

3. Jenkins 登录:

按页面引导进行初始化

进入 C:\Users\用户名\.jenkins\secrets 打开 initialAdminPassword 文件,复制密码粘贴到 管理员密码,点击继续

4. Jenkins 插件:

快速安装可以点击 选择插件来安装,下个页面点击 ,最后点击 确认

按需设置创建管理员用户,也可点击使用 admin 账户继续(这里账号密码即为 admin 与前面的那串密码)

5. 实例配置:

本地环境 Jenkins URL 填写 http://localhost:8080/ 默认即可,点击保存完成就可以开始使用了~

二、Jenkins 创建

1. New Item - 输入名称、点击选择 Freestyle project 后点击 OK 按钮

2. Configure - General - Source Code Management

勾选 Git(需要先在 Manage Jenkins - Plugins - Available plugins 下载 Git 插件)

Repositories

填写 Repository URL、Credentials

Branches to build - Branch Specifier:*/main

3. Triggers - Build periodically - Schedule:H 0 * * *(每天 24:00 定时触发)

三、代码文件

1. 项目结构

TestDemo/
├── Jenkinsfile
├── requirements.txt
├── pytest.ini
├── run.py
├── conftest.py
├── tests/
    └── test_selenium.py
└── report/        # allure 生成报告目录

2. 完整代码 

# tests/test_web.py

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

def test_goto_chrome():
    """测试百度首页"""

    # 创建 Chrome 浏览器的配置对象
    options = Options()

    # 添加无头模式参数
    options.add_argument('--headless')

    # 禁用 GPU 加速
    options.add_argument('--disable-gpu')

    # 关闭沙盒模式(在 Linux 和部分 Windows 环境中避免权限问题)
    options.add_argument('--no-sandbox')

    # 防止 /dev/shm 空间不足问题(主要在 Linux Jenkins 上用到)
    options.add_argument('--disable-dev-shm-usage')

    # 创建 Chrome 服务对象,自动下载并使用匹配版本的 chromedriver
    # ChromeDriverManager().install() 会自动下载/更新合适版本驱动并返回路径
    service = Service(ChromeDriverManager().install())

    # 启动 Chrome 浏览器实例,使用无头配置和服务驱动路径
    driver = webdriver.Chrome(service=service, options=options)

    driver.get("https://www.baidu.com")
    assert "百度" in driver.title
    driver.quit()
# run.py

import pytest
import sys

if __name__ == "__main__":
    sys.exit(pytest.main(["-v"]))
# Jenkinsfile

pipeline {
    agent any

    stages {
        stage('Install requirements') {
            steps {
                bat 'pip install -r requirements.txt'
            }
        }
        stage('Run tests') {
            steps {
                bat 'python run.py'
            }
        }
    }

    post {
        success {
            echo '测试成功'
        }
        failure {
            echo '测试失败,请检查控制台日志'
        }
    }
}
# pytest.ini

[pytest]
addopts = -v
# requirements.txt

pytest
selenium
webdriver-manager

四、示例效果

1. Builds 构建历史:

2. 查看 Console Output 控制台输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ohhhzm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值