Python从0到1之Pytest+Allure+Jenkins

本文详细介绍Jenkins作为持续集成工具的搭建与配置流程,包括Docker部署、插件安装、节点管理、Job创建及源码与依赖管理。涵盖Allure测试报告集成、环境构建与测试流程自动化。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值