Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能
Jenkins架构
jenkins server:8080 管理job与通用配置的服务
node:分布式架构,每个人都可以注册自己的节点进来,让jenkins server进行调度
job:job会运行在node上,所以测试代码都是在分布式的node节点上运行的。
搭建Jenkins
#创建docker的文件影射卷
docker volume create jenkins-hogwarts
#创建实例
docker run -d --name jenkins-hogwarts \
-p 8080:8080 -p 50000:50000 \
-v jenkins-hogwarts:/var/jenkins_home \
jenkins/jenkins:lts
#获得初始管理密码
docker exec jenkins-hogwarts cat /var/jenkins_home/secrets/initialAdminPasswor
安装插件
安装Allure插件
选择Manage Jenkins,选择Manage Plugins,在available中输入allure插件进行安装

配置Allure commandline
选择Manage Jenkins,选择Global Tool Configuration,选择新增Allure commandline,输入别名,点击应用,保存

添加node节点
把执行测试用例的服务器配置为node节点
Jenkins 首页选择添加一个节点

输入节点名称,选择固定节点,点击确定

输入远程工作目录/tmp/jenkins,选择启动方式为通过java web启动代理,点击保存

此时就创建了一个名字为XYQ的节点

此时节点还未连接,我们需要连接节点,点击XYQ节点

右键agent.jar超链接,选择复制链接地址
本机命令行中选择合适的目录下载agent.jar包
wget http://192.168.99.128:8080/jnlpJars/agent.jar
输入启动节点命令
java -jar agent.jar -jnlpUrl http://192.168.99.128:8080/computer/XYQ/slave-agent.jnlp -secret af522ce7a5d54413593ab3bf0ea210db032b8a7fec7578f2d213533a9af36043 -workDir "/tmp/jenkins"
启动成功,XYQ节点上X号消失

创建Job
首页,选择创建一个新任务

输入任务名称demo,选择Freestyle project,点击确定

配置页面构建中,选择执行shell

输入命令,点击应用,保存
echo $USER
echo $HOSTNAME
点击立即构建

查看构建结果,控制台正常输出

限制Job运行节点
选择demo项目,点击配置,选择限制项目运行的节点,点击应用,保存

Master节点是Jenkins自带的节点,使用该节点会导致Jenkins变慢,通常我们都不使用该节点
选择Manage Jenkins,选择Manage Nodes and Clouds,选择master,点击配置从节点,用法中选择only build jobs with label expressions matching this node,点击保存,这样Master节点就只允许运行在master上的Job,更为保险

源码配置
演练代码 https://github.com/ceshiren/LagouTesting
demo 中选择配置,源码管理中选择Git,输入地址,选择应用,保存,立即构建,查看构建过程下载代码

依赖管理
pip freeze > requirements.txt
git add requirements.txt
git commit -m 'add requirements.txt'
git push
#在部署/测试环境中安装依赖列表:
pip install -r requirements.txt
build shell 流程
关键的参数
k参数 可以过滤测试用例
目录/文件参数
结果输出参数
#解决环境初始化问题,如果没有venv环境,就创建并安装依赖
[ -d tutorial-env ] || python -m venv tutorial-env
#加载venv环境
source tutorial-env/bin/activate
#更新依赖
pip install -r requirements.txt
#运行接口测试,并生成junit测试结果和allure2的报告
python -m pytest --junitxml=junit.xml --alluredir=allure_results/ test_web
python -m pytest \ # 指定运行pytest
–junitxml=junit.xml \ # 生成junit报告
–alluredir=allure_results/ \ # 生成allure报告
test_web # 指定目录
demo 中选择配置,选择构建下执行shell,输入相关环境构建命令,点应用,选择保存,立即构建,查看构建过程中安装依赖环境

配置构建后操作
demo 中选择配置,选择构建后操作
- 点增加构建后的操作步骤,选择publish junit test result report ,输入junit.xml,
- 点增加构建后的操作步骤,选择allure report,输入allure_result
点应用,选择保存,立即构建,查看报告


allure2在测试用例中的使用例子
截图放到allure的报告中
self.driver.save_screenshot("/tmp/1.png")
allure.attach.file('/tmp/1.png',attachment_type=allure.attachment_type.PNG)
self.driver.find_element(By.CSS_SELECTOR,'button.search-cta').click()
self.driver.save_screenshot("/tmp/2.png")
allure.attach.file('/tmp/2.png',attachment_type=allure.attachment_type.PNG)

Job管理
手动部署Jenkins
简易部署
java -jar jenkins.war
正式部署
调参:调增JVM参数
应用容器:使用Tomact、jetty启动
手动代理:使用nginx设置域名、https
本文详细介绍Jenkins作为持续集成工具的搭建与配置流程,包括Docker部署、插件安装、节点管理、Job创建及源码与依赖管理。涵盖Allure测试报告集成、环境构建与测试流程自动化。
1789

被折叠的 条评论
为什么被折叠?



