使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 53--CI/CD 6--配置Jenkins构建新项目-定时自动执行测试代码

使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 53--CI/CD 6--配置Jenkins构建新项目-定时自动执行测试代码

测试学习记录,仅供参考!

配置Jenkins构建新项目-定时自动执行测试代码

1、启动服务,打开登录 Jenkins,找到新建项目,开始配置测试项目;

配置项目

2、项目描述(选填项);

源码管理

3、源码管理,Jenkins 在执行时通过读取 Git 上的代码

        1)、选中 Git 选项;

        2)、URL:Git 上面项目里面的地址

4、添加 Git 用户名和密码

5、输入用户名、密码,其他自定义,单击“添加”按钮;

6、添加 Git 用户名密码成功后选中它;其他保持默认即可;

构建触发器

7、构建触发器选择定时构建→设置定时时间(自行设置);

8、定时构建语法(五颗星):* * * * *

        第一个 * 表示分钟,取值0~59;

        第二个 * 表示小时,取值0~23;

        第三个 * 表示一个月的第几天,取值1~31;

        第四个 * 表示第几月,取值1~12;

        第五个 * 表示一周中的第几天,取值0~7,其中0和7代表的都是周日;

常用定时构建举例:

由于项目的代码一般存在放SVN中,而一个SVN往往是有多个项目组在提交代码,而每个项目组又有多人组成,其中每个人也都在对自己的那块代码不停地在进行维护,所以说对于一个公司而言,SVN的提交记录往往是很频繁的,正因为如此,Jenkins 在执行自动化构建时往往是以天为单位来执行的;

下面举的例子就是在一天中常用的定时构建示例:

        每隔5分钟构建一次 H/5 * * * *

        每两小时构建一次 H H/2 * * *

        每天中午下班前定时构建一次 0 12 * * *

        每天下午下班前定时构建一次 0 18 * * *

构建环境

9、构建环境(若无此选项烦请自行去安装对应插件) → 勾选“Delete workspace before build starts”(构建前清空工作区) 和“Add timestamps to the Console Output”(把结果输出到控制台中);

构建步骤

10、在本地部署,选第一个选项“Execute Windows batch command”;

11、通过 python 去执行远程仓库目录下的 run.py 文件(要根据实际分支情况来填写,注意路径);

        用 Python 去执行主函数;

因为之前有生成 requirements.txt 安装依赖文件--所以这里直接安装导入 pip install -r requirements.txt 若没有生成安装依赖库 requirements.txt 可使用 pip install 命令一个一个安装相应的模块 pip install pytest==7.1.3 ...... python run.py
#!/bin/bash python3 -v pip3 -v pip3 install -r requirements.txt python3 run.py

构建后操作

12、构建后操作一般是输出测试报告,选中“Allure Report”选项(若无此选项烦请安装对应插件);

13、Allure Report 选项信息(自行查看);

14、Path 测试报告地址默认“allure-results”,更改为实际测试报告存放文件路径“report/temp”;

        若配置错误执行构建完成后”测试报告是没有数据的“;

15、鼠标单击“Global Tool Configuration“去配置;点击”新增 Allure Commandline“按钮;

16、输入 Allure Commandline 别名;

17、自定义别名即可(自行设置);单击”保存“按钮;

18、再次回到”构建后操作“能够发现”Allure Report“没有报错警告信息,点击”保存“按钮;

19、自行选择是否添加“E-mail Notification(发送邮件通知)”和“Publish JUnit test result report(统计测试结果)”(烦请自行设置--其中邮箱设置需要到全局配置中自定义邮件模板);

20、Web UI 自动化测试项目配置完成;

开始构建

21、配置完成之后开始启动 Jenkins 构建项目,选中”BuildNow“;

22、若构建失败 → 控制台输出信息 出现问题烦请自行参考解决;

Started by user admin Running as SYSTEM Building in workspace C:\Users\Administrator\.jenkins\workspace\Web UI 自动化测试 [WS-CLEANUP] Deleting project workspace... [WS-CLEANUP] Deferred wipeout is used... [WS-CLEANUP] Done The recommended git tool is: NONE 。。。 Cloning the remote Git repository 。。。 > git.exe init C:\Users\Administrator\.jenkins\workspace\Web UI 自动化测试 # timeout=10 。。 > git.exe --version # timeout=10 > git --version # 'git version 2.43.0.windows.1' 。 。 。 Avoid second fetch 。 。 。 Commit message: "PyCharm再次提交修改" 出现这样的信息,则说明Git连接没有问题,可继续往下排查问题 First time build. Skipping changelog. [Web UI 自动化测试] $ cmd /c call E:\Users\apache-tomcat-9.0.98\temp\jenkins9483282840520566421.bat . . . The recommended git tool is: NONE using credential 3d74ddcc-887a-4063-b44a-38f6551fce12 Cloning the remote Git repository Cloning repository https://gitee.com/tianqi-test/webuitest > git.exe init C:\Users\Administrator\.jenkins\workspace\Web UI 自动化测试 # timeout=10 Fetching upstream changes from https://gitee.com/tianqi-test/webuitest > git.exe --version # timeout=10 > git --version # 'git version 2.43.0.windows.1' using GIT_ASKPASS to set credentials giteew > git.exe fetch --tags --force --progress -- https://gitee.com/tianqi-test/webuitest +refs/heads/*:refs/remotes/origin/* # timeout=10 ERROR: Error cloning remote repo 'origin' 类似此种报错信息,表示远程仓库连接有误 . . . C:\Users\Administrator\.jenkins\workspace\Web UI 自动化测试>python run.py Traceback (most recent call last): File "run.py", line 1, in <module> import pytest ModuleNotFoundError: No module named 'pytest' Jenkins中的python环境找不到模块错误:没有名为“pytest”的模块 → 解决方法:需要在构建步骤时安装模块 C:\Users\Administrator\.jenkins\workspace\Web UI 自动化测试>exit 1 Build step 'Execute Windows batch command' marked build as failure 生成步骤“执行Windows批处理命令”将生成标记为失败 。 。 。 Allure report was successfully generated. Creating artifact for the build. Artifact was added to the build. Finished: FAILURE 最终构建结果:失败

。 。 。 C:\Users\Administrator\.jenkins\workspace\Web UI 自动化测试>pip3 install -r requirements.txt Collecting openpyxl==3.1.2 Using cached openpyxl-3.1.2-py2.py3-none-any.whl (249 kB) Collecting PyMySQL==1.1.0 Using cached PyMySQL-1.1.0-py3-none-any.whl (44 kB) Collecting pytesseract==0.3.13 Using cached pytesseract-0.3.13-py3-none-any.whl (14 kB) Collecting pytest==7.1.3 Using cached pytest-7.1.3-py3-none-any.whl (298 kB) Collecting PyYAML==6.0 Using cached PyYAML-6.0-cp38-cp38-win_amd64.whl (155 kB) Collecting requests==2.28.1 Using cached requests-2.28.1-py3-none-any.whl (62 kB) Collecting selenium==4.21.0 Using cached selenium-4.21.0-py3-none-any.whl (9.5 MB) Collecting pytest-xdist==3.6.1 Using cached pytest_xdist-3.6.1-py3-none-any.whl (46 kB) Collecting allure-pytest==2.12.0 Using cached allure_pytest-2.12.0-py3-none-any.whl (10.0 kB) Collecting allure_python_commons==2.12.0 Using cached allure_python_commons-2.12.0-py3-none-any.whl (16 kB) Collecting colorlog==6.9.0 Using cached colorlog-6.9.0-py3-none-any.whl (11 kB) Collecting numpy==1.24.4 Using cached numpy-1.24.4-cp38-cp38-win_amd64.whl (14.9 MB) Collecting pyxnat==1.6.2 Using cached pyxnat-1.6.2-py3-none-any.whl (95 kB) Collecting Pillow==9.3.0 Using cached Pillow-9.3.0-cp38-cp38-win_amd64.whl (2.5 MB) Collecting et-xmlfile Using cached et_xmlfile-2.0.0-py3-none-any.whl (18 kB) Collecting packaging>=21.3 Using cached packaging-25.0-py3-none-any.whl (66 kB) Collecting tomli>=1.0.0 Using cached tomli-2.2.1-py3-none-any.whl (14 kB) Collecting attrs>=19.2.0 Using cached attrs-25.3.0-py3-none-any.whl (63 kB) Collecting pluggy<2.0,>=0.12 Using cached pluggy-1.5.0-py3-none-any.whl (20 kB) Collecting iniconfig Using cached iniconfig-2.1.0-py3-none-any.whl (6.0 kB) Collecting py>=1.8.2 Using cached py-1.11.0-py2.py3-none-any.whl (98 kB) Collecting colorama Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB) Collecting certifi>=2017.4.17 Downloading certifi-2025.8.3-py3-none-any.whl (161 kB) Collecting idna<4,>=2.5 Using cached idna-3.10-py3-none-any.whl (70 kB) Collecting charset-normalizer<3,>=2 Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB) Collecting urllib3<1.27,>=1.21.1 Using cached urllib3-1.26.20-py2.py3-none-any.whl (144 kB) Collecting urllib3[socks]<3,>=1.26 Using cached urllib3-2.2.3-py3-none-any.whl (126 kB) Collecting typing_extensions>=4.9.0 Downloading typing_extensions-4.13.2-py3-none-any.whl (45 kB) Collecting trio-websocket~=0.9 Using cached trio_websocket-0.12.2-py3-none-any.whl (21 kB) Collecting trio~=0.17 Using cached trio-0.27.0-py3-none-any.whl (481 kB) Collecting execnet>=2.1 Using cached execnet-2.1.1-py3-none-any.whl (40 kB) Collecting six>=1.9.0 Using cached six-1.17.0-py2.py3-none-any.whl (11 kB) Collecting lxml>=4.3 Downloading lxml-6.0.1-cp38-cp38-win_amd64.whl (4.0 MB) 。 。 。 Finished: SUCCESS

23、若无问题则会构建成功;

总结

第一步:配置源码管理 → Git

第二步:构建触发器 → 自行设置是否定时构建

第三步:构建环境 → 勾选

第四步:构建步骤 → 自行根据实际场景选择

第五步:构建后操作 → 一般添加 Allure 报告,其他自行设置

Read more

openHiTLS 2025 年度运营报告:密码开源先锋,筑牢全场景数智安全底座

openHiTLS 密码开源社区于 2023 年 11 月由西安电子科技大学、山东大学、上海交通大学、华为等 13 家产学研单位联合发起。在行业主管单位指导下,历经两年发展,已取得多项实质性进展:其密码库已正式集成至 openEuler、鸿蒙操作系统,直接服务于千万级装机生态。技术层面,社区于 2025 年率先开源了 NIST 标准化后量子密码算法,并通过 PQCP 密码创新仓开源发布了国产算法 Scloud+、PolarLAC 及 ISO 算法 FrodoKEM、Classic McEliece 等,为全球密码学术界与产业界构建了开放创新的技术平台。社区创新性地将形式化验证、“玄知”密码大模型等先进技术应用于算法研发与验证,为密码实现提供了可验证的高安全等级支撑。社区汇聚了西电、山大等高校及兴业银行、招商银行、华为、天融信、三未信安等企业,Star 数超 1300

By Ne0inhk
【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)

【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)

本篇文章分享关于如何使用STM32单片机对彩色摄像头(OV7725/OV2604)采集的图像数据进行分析处理,最后实现颜色的识别和检测。 目录 一、什么是颜色识别 1、图像采集识别的一些基本概念 1. 像素(Pixel) 2. 分辨率(Resolution) 3. 帧率(Frame Rate) 4. 颜色深度(Color Depth) 5. 图像处理(Image Processing) 6. 图像采集设备 7. 亮度(Luminance)与色度(Chrominance) 8. 图像编码与压缩(Image Encoding and Compression) 9. 图像识别(Image Recognition) 10. 图像采集与处理中的延迟(Latency) 二、OV7725简介

By Ne0inhk
「源力觉醒 创作者计划」文心大模型开源:打破封闭桎梏,开启开放生态新篇章

「源力觉醒 创作者计划」文心大模型开源:打破封闭桎梏,开启开放生态新篇章

引言 文心大模型 ERNIE 4.5 于 6 月 30 日正式开源,在 GitCode 平台首发!这一消息无疑是 2025 年上半年 AI 科技圈的一件大事。很多人不禁疑惑:文心一言作为国内顶尖大模型,也是国内首家推出大模型的企业,为何选择开源?这样做能带来什么影响?别急,下面就让我们一同解读文心大模型 ERNIE 4.5 本次的开源举措。 文章目录 * 引言 * 一、文心一言为什么要开源? * 1.1 激烈的市场竞争 * 1.2 技术迭代与成本下降 * 1.3 推动AI技术发展 * 二、AI浪潮下的文心新征程 * 2.1 文心大模型发展历程 * 2.2 文心一言开源的战略意义

By Ne0inhk
如何用腾讯云轻量应用服务器内置OpenClaw应用搭建OpenClaw并接入QQ、飞书机器人,下载skill,开启对话

如何用腾讯云轻量应用服务器内置OpenClaw应用搭建OpenClaw并接入QQ、飞书机器人,下载skill,开启对话

诸神缄默不语-个人技术博文与视频目录 如需OpenClaw下载安装、配置、部署服务可以联系:https://my.feishu.cn/share/base/form/shrcnqjFuoNiBPXjADvRhiUcB1B 我发现腾讯云买服务器可以用QQ钱包,这不得狠狠把我多年来抢的红包狠狠利用一下。 OpenClaw我之前玩了几天,现在把gateway关了,因为我感觉第一是感觉AI对于一些细微的执行逻辑还是绕不明白,而且API太慢了等得我着急,慢得我都不知道它是死了还是只是慢,不如我直接一个古法编程下去开发一个自己的工具。我本来是想拿OpenClaw当时间管理助手的,但是研究了一番感觉它作为整个人完整的时间/项目/文件系统/财务/生活管理助手的潜力还是很大的。但是,也就仅止于潜力了,跟OpenClaw绕记账怎么记实在是把我绕火大了……第二,正如网上一直宣传的那样,这玩意太耗token了,我的混元和Qwen免费额度几乎都秒爆,GLM也给我一下子烧了一大笔。我觉得这不是我的消费水平该玩的东西……主要我也确实没有什么用OpenClaw赚大钱的好idea。 但是我仍然觉得OpenClaw

By Ne0inhk