Jenkins学习

基于Selenium的测试

Jenkins中新建⾃由⻛格项⽬

创建⾃由⻛格项⽬

源码管理配置:

需要配置Git地址链接(SSH格式),并添加Checkouttosub-directory选项

项⽬类型选择:必须选择"⾃由⻛格"项⽬类型,这是Jenkins中最基础的项⽬配置⽅式

项⽬类型选择:创建⾃动化测试项⽬需选择"FreeStyleproject"类型,适

合需要多种配置的复杂项⽬

节点限制配置:

通过"Restrict where this project can be run"指定运⾏节点(Master-Slave模式:任务可分配到不同Slave上执⾏)

演示环境选择master节点运⾏

实际部署时需根据测试环境选择对应节点

构建环境配置

环境变量加载:

通过source ~/.bash_profile加载⽤户环境变量

确保构建时能获取到PATH等关键环境变量

设置运⾏参数(有/⽆界⾯)

参数化构建:通过Boolean Parameter配置名为"using_headless"的参数,默认值设为false(有界⾯运⾏)代码中通过os.environ["using_headless"]获取参数值

参数⽤途:控制测试以有界⾯或⽆界⾯⽅式运⾏,在构建时可灵活选择

运⾏模式

参数描述:添加"采⽤⽆界⾯形式运⾏"的描述⽂本,提⾼参数可读性添加运⾏代码(pytest命令)

命令⾏执⾏:⾃动化测试必须通过命令执⾏,不能依赖IDE界⾯操作

pytest命令:pytest -v test/web_ut.py -o junit_family=xunit2 --junit-xml=pytests.xml

环境清理:建议添加删除旧报告命令,避免历史结果影响新测试报告 rm -f file.txt

添加JUnit测试报告

报告格式兼容:虽然使⽤Python测试,但通过xunit2格式输出与Java的

JUnit兼容的XML报告

格式转换技巧:利⽤--junit-xml参数将pytest结果转换为标准JUnit格式

⽂件路径指定:测试报告输出路径应设置为pytests.xml

添加构建后操作:

报告路径配置:在Post-build Actions中添加Selenium_Python/pytests.xml路径

⾼级选项:

勾选"Retain long standard output/error"保留完整⽇志

设置健康报告放⼤因⼦为1.0

允许空结果不导致构建失败

基于Appium的测试

依赖包:pytest-testconfig(安装命令:pip install pytest-testconfig)

报告⽣成:

⽀持JUnit格式测试报告输出

命令参数示例:pytest -v test/web_ut.py -o junit_family=xunit2 --junit-xml=pytest.xml

报告内容包含通过/失败状态等详细执⾏结果

构建步骤:

source ~/.bash_profile

清除旧报告:rm -f pytest.xml

执⾏测试并⽣成报告:~/venv/bin/pytest -v test/web_ut.py...

配置加载⽅式:

在pytest命令中挂载配置⽂件参数pytest --tc-file=config.json --tc-format=json test_file.py

通过pytest_testconfig模块读取配置

Jenkins集成:使⽤⾃由⻛格任务集成⾃动化测试任务

触发⽅式:

定时触发

代码提交触发

⽗⼦任务联动触发

报告发布:

在Post-build Actions中添加"Publish JUnit test result report"

指定报告路径:iSelenium_Python/pytest.xml

注意:每个项⽬只能添加⼀个JUnit报告配置

相关推荐
小陈phd3 分钟前
多模态大模型学习笔记(二十一)—— 基于 Scaling Law方法 的大模型训练算力估算与 GPU 资源配置
笔记·深度学习·学习·自然语言处理·transformer
丝斯20115 分钟前
AI学习笔记整理(75)——Python学习4
人工智能·笔记·学习
大傻^10 分钟前
Spring AI Alibaba 向量数据库集成:Milvus与Elasticsearch配置详解
数据库·人工智能·spring·elasticsearch·milvus·springai·springaialibaba
小帅学编程17 分钟前
英语学习笔记
java·笔记·学习
AI成长日志17 分钟前
【datawhale】hello agents开源课程学习记录第4章:智能体经典范式构建
学习·开源
EnglishJun20 分钟前
ARM嵌入式学习(七)--- 汇编基础(数据指令、函数调用原理、中断原理)
arm开发·学习
redsea_HR20 分钟前
红海eHR解决方案背后的底层能力
大数据·数据库·人工智能
今儿敲了吗23 分钟前
python基础学习笔记第七章——文件操作
笔记·python·学习
ba_pi26 分钟前
每天写点什么2026-03-19-Doris三种存储模型
java·数据库·mysql
oem11027 分钟前
Python Web爬虫入门:使用Requests和BeautifulSoup
jvm·数据库·python