暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

selenium持续集成和交付

IT那活儿 2025-04-28
189

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!


  
本文档介绍如何在 Windows 环境下配置 Jenkins 和 Python 以实现 Selenium测试的持续集成和持续交付,测试结束查看Allure报告。

通过以下步骤,可以自动化执行 Selenium 测试,确保代码质量,并将测试结果集成到流程中。



环境准备

测试环境为:python + jenkins + selenium + allure

运行jenkins前提是安装好jdk,并配置好环境变量,jdk下载链接:

https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.exe

1.1 安装jenkins
1)下载jenkins

访问 Jenkins 官网:https://www.jenkins.io/download/

并下载适合 Windows 的 jenkins.war 文件。

2)启动 Jenkins

打开cmd并运行以下命令启动 Jenkins:

java -Dfile.encoding=UTF-8 -jar F:\jenkins.wa--httpPort=8081

注:jenkins默认端口为8080和tomcat冲突,所以指定端口--httpPort=8081。

3)访问 Jenkins 管理界面 (http://localhost:8081)

创建管理员用户 ---> 解锁jenkins ---> 安装基本插件

详细安装步骤:https://blog.csdn.net/xhmico/article/details/125622955

1.2 配置python环境
1)安装python官网
https://www.python.org/downloads/

下载并安装python。

2)安装必要的python库,selenium和pytest库

命令:

pip install selenium    pip install pytest
3)配置WebDriver

Selenium 需要通过 WebDriver 与不同的浏览器进行交互。

根据使用的浏览器下载相应的 WebDriver:

  • Chrome 浏览器用户

    下载 ChromeDriver(https://sites.google.com/chromium.org/driver/)

  • Firefox 浏览器用户

    下载 GeckoDriver(https://github.com/mozilla/geckodriver/releases)

将下载的 WebDriver 解压,并将其路径添加到系统的 PATH环境变量中。

1.3 配置allure环境
1)Allure工具下载地址
https://github.com/allure-framework/allure2/releases

解压并配置环境变量。

2)下载可以运行allure的pytest命令行工具
pip install allure-pytest
Selenium测试用例配置。

编写selenium测试用例

2.1 用例介绍

页面登录用例,脚本中有两个用例:

  • 一个登录成功用例;

  • 一个登录失败用例。

脚本路径为:

C:\Users\songz\PycharmProjects\selenium_project\testcase\log\test_admin_login.py

2.2 脚本文本

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pytest


class TestAdminLogin(object):

    def setup_class(self):
        self.driver = webdriver.Chrome()
        self.driver.get('http://localhost:8080/jpress/user/login')
        self.driver.maximize_window()

    #测试登录失败
    def test1_admin_login_code_error(self):
        username = 'admin'
        pwd = '12345'
        captcha = '666'
        expected = '用户名或密码不正确'

        self.driver.find_element(By.NAME, 'user').send_keys(username)
        self.driver.find_element(By.NAME, 'pwd').send_keys(pwd)
        self.driver.find_element(By.CLASS_NAME, 'btn').click()

        WebDriverWait(self.driver, 5).until(EC.alert_is_present())
        alert = self.driver.switch_to.alert

        #py断言
        assert alert.text == expected
        alert.accept()

        sleep(5)

    #测试登录成功
    @pytest.mark.dependency(name='admin_login')
    def test2_admin_login_code_ok(self):
        username = 'admin'
        pwd = '123456'
        captcha = '666'
        expected = '用户中心'

        self.driver.find_element(By.NAME, 'user').clear()
        self.driver.find_element(By.NAME, 'user').send_keys(username)
        self.driver.find_element(By.NAME, 'pwd').clear()
        self.driver.find_element(By.NAME, 'pwd').send_keys(pwd)
        self.driver.find_element(By.CLASS_NAME, 'btn').click()

        WebDriverWait(self.driver, 5).until(EC.title_is(expected))
        assert expected == self.driver.title

        sleep(5)

if __name__ == '__main__':
    pytest.main(['test_admin_login.py'])


配置jenkins作业

3.1 安装Allure Jenkins插件
登录到jenkins管理界面,进入插件管理系统,点击左侧菜单中Manage Jenkins:
查找安装allure插件,在Available选项卡中,搜索 Allure,选中并安装。
3.2 创建自由风格项目
3.3 添加工作目录
注:不加的话,生成的allure报告是空的。
3.4 构建步骤
即运行.py脚本,指定路径生成allure报告:

构建后操作,选择Allure Report:

点击应用,点击保存。

3.5 设置jenkins全局变量
回到首页,点击Manage Jenkins,选择Tools:
点击应用,点击保存,重启机器。

3.6 进入jenkins

点击创建的项目,我创建的项目为test。
点击Build Now,查看allure报告:

可以看到运行成功,两个测试用例测试完毕。


监控和维护

随着时间推移,项目依赖的库可能会有新版本发布。定期更新并测试这些依赖,以确保项目的兼容性和安全性。

Jenkins功能强大,配合相应的插件可以实现定时运行项目,项目中如有测试用例失败可以实现邮件、钉钉通知,以便立即修复问题。


END


本文作者:宋振宝(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论