使用Docker实现Jenkins+Python + Pytest +Allure 接口自动化
一、Jenkins搭建
参考《Docker 安装 Jenkins》
进入 jenkins 容器 CLI 界面
docker exec -itu root jenkins /bin/bash
二、准备条件
1、替换镜像内源
为了安装wget,默认用yum会安装不上wget命令,参考文章《docker容器内如何更换yum源【只想换成国内源而已】》
2、安装wget
yum install wget
三、安装Python3环境
1、安装依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
yum install gcc gcc-c++ openssl-devel libffi-devel tk-devel
2、下载源码包
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
3、解压安装
# 解压压缩包
tar -zxvf Python-3.8.1.tgz # 进入文件夹
cd Python-3.8.1# 配置安装位置
./configure prefix=/usr/local/python3
# 也可以通过 --enable-optimizations 指定使用优化选项
./configure --enable-optimizations --prefix=/usr/local/python3.8 --with-http_ssl_module --with-ssl# 安装
make && make install
4、Python更换pip源
Linux下永久更换源
#在家目录中创建.pip目录
mkdir -p ~/.pip#创建pip.conf文件
vim ~/.pip/pip.conf#输入以下内容并保存
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
5、添加软连接
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python#添加 pip3 的软链接
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip
6、openssl
## openssl 版本 要求 OpenSSL 1.0.2+,如果不满足需升级 openssl
# 然而 yum install openssl openssl-devel 的方式也无法升级到1.0.2版本,那也只能手动编译并安装
# 下载 openssl-1.1.1b.tar.gz 新版本的源码包
wget -c https://www.openssl.org/source/openssl-1.1.1b.tar.gztar -zxvf openssl-1.1.1b.tar.gz
cd openssl-1.1.1b./config --prefix=/usr/local/openssl # 指定安装目录为/usr/local/openssl
make && make install #(耗时比较长,需要耐性等待)# 编译完成后需要拷贝库文件
cp /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
cp /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1# 替换软链接
rm -rf /usr/bin/openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
7、验证 python3 环境

四、安装项目所需的库
需要在 python 项目生成一个 requirement.txt
具体教程可以看https://www.cnblogs.com/longronglang/p/16311576.html
将 requirement.txt 上传到主机
从主机复制到容器内
docker cp requirement.txt jenkins:/usr/local/src

最后安装项目所需的库
pip3 install -r requirements.txt
跑下所有case,看看报错缺什么库,缺什么到时自己手动装
五、安装 Allure 环境
官网下载 allure 包
去https://github.com/allure-framework/allure2/releases,下载2.7版本
将压缩包传送到容器内
先将包上传到主机,然后从主机复制到容器内
docker cp allure-2.7.0.zip jenkins:/usr/local/src
解压包
unzip allure-2.7.0.zip
赋予文件夹所有内容最高权限
chmod -R 777 allure-2.7.0
六、配置 allure 和 python 环境变量
cat >> /root/.bashrc << "EOF"
export PATH=/usr/local/src/allure-2.7.0/bin:$PATH
export PATH=/usr/local/python3/bin/python3.8/bin:$PATH
EOF
记得一行一个回车哦,不然就直接复制粘贴
七、更新环境变量配置文件
source /root/.bashrc
八、验证环境变量
allure --version
python3 --version

九、Jenkins 任务配置构建操作
1、下载插件

2、安装配置JDK、Git、Allure Commandline


3、job配置
添加构建步骤,选择执行 shell
输入shell命令如下:
#!/bin/bash
cd /var/jenkins_home/workspace/pytest-allure-demo
python -m pytest -s -q --alluredir=${WORKSPACE}/allure-results --clean-alluredir
exit 0

构建后操作

注意

不一致会报错如下:

十、测试执行
1、点击构建

2、查看报告


作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。
相关文章:
使用Docker实现Jenkins+Python + Pytest +Allure 接口自动化
一、Jenkins搭建 参考《Docker 安装 Jenkins》 进入 jenkins 容器 CLI 界面 docker exec -itu root jenkins /bin/bash二、准备条件 1、替换镜像内源 为了安装wget,默认用yum会安装不上wget命令,参考文章《docker容器内如何更换yum源【只想换成国内…...
论企业安全漏洞扫描的重要性
前言 随着信息技术的迅猛发展和互联网的广泛普及,网络安全问题日益凸显。在这个数字化的世界里,无论是企业还是个人,都面临着前所未有的安全威胁。安全漏洞,作为这些威胁的源头,常常被忽视或无法及时发现。 而安全漏洞…...
23.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-实现配置工具数据结构
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:22.加载配置文件…...
STM32CubeMX学习笔记20——SD卡FATFS文件系统
1. FATFS文件系统简介 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构(即在存储设备上组织文件的方法)。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统;不带文件系统的SD卡仅能…...
Facebook商城号为什么被封?如何防封?
由于Facebook商城的高利润空间,越来越多的跨境电商商家注意到它的存在。Facebook作为全球最大、用户量最大的社媒平台,同时也孕育了一个巨大的商业生态,包括广告投放、商城交易等。依托背后的大流量,Facebook商城起号较快…...
【教程】APP备案全攻略:确保你的应用合规上线
【教程】APP备案全攻略:确保你的应用合规上线 摘要 本文详细介绍了中国大陆地区互联网信息服务提供者(AP)进行APP备案的流程、要求和注意事项。包括备案对象、备案方式、备案内容、备案流程等方面的详细说明,帮助开发者顺利完成…...
Vue入门2
v-model 原理:v-model本质上是一个语法糖。例如应用于输入框,就是value属性和input事件的合写。 作用:提供数据的双向绑定 数据变,视图跟着变 :value视图变,数据跟着变 input 注意:$event用于在模板中&…...
简介:CMMI软件能力成熟度集成模型
前言 CMMI是英文Capability Maturity Model Integration的缩写。 CMMI认证简称软件能力成熟度集成模型,是鉴定企业在开发流程化和质量管理上的国际通行标准,全球软件生产标准大都以此为基点,并都努力争取成为CMMI认证队伍中的一分子。 对一个…...
mysql的其他问题
1.MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化? a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。 b. 选择合适的表字段数据类型和存储引擎…...
数据结构---复杂度(2)
1.斐波那契数列的时间复杂度问题 每一行分别是2^0---2^1---2^2-----2^3-------------------------------------------2^(n-2) 利用错位相减法,可以得到结果是,2^(n-1)-1,其实还是要减去右下角的灰色部分,我们可以拿简单的数字进行举例子&…...
【设计模式】设计原则和常见的23种经典设计模式
设计模式 1. 设计原则(记忆口诀:SOLID)【记忆口诀:单开里依接迪合(单开礼仪接地和)】 (1)单一职责原则(Single Responsibility Principle, SRP) ÿ…...
Spring Cloud Gateway自定义断言
问题:Spring Cloud Gateway自带的断言(Predicate)不满足业务怎么办?可以自定义断言! 先看Spring Cloud Gateway是如何实现断言的 Gateway中断言的整体架构如下: public abstract class AbstractRoutePred…...
智能测径仪在胶管行业的应用
关键字:胶管外径尺寸测量,胶管检测仪器,胶管外径检测,高温胶管外径检测,软硬胶管检测, 智能测径仪在家胶管行业中的应用主要体现在对胶管外径的精确测量和控制上。在胶管生产过程中,外径的大小直…...
vue自定义主题皮肤方案
方案一:CSS变量换肤(推荐) 利用css定义变量的方法,用var在全局定义颜色变量(需将变量提升到全局即伪类选择器 :root)然后利用js操作css变量,document.getElementsByTagName(‘body’)[0].style…...
iOS中使用schema协议调用APP和使用iframe打开APP的例子
大家好我是咕噜美乐蒂,很高兴又和大家见面了! 当调用自定义 URL scheme 或使用 iframe 打开应用程序时,可以采取以下详细步骤: 使用自定义 URL scheme 协议调用应用程序 1.首先,确认目标应用程序已经注册了自定义 U…...
2024.3.11
提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 #include <iostream> #include<string> using namespace std;int main() {cout << "please input a string:" << endl;string str;g…...
Web服务器需要警惕的一些安全隐患
Web服务器需要警惕的一些安全隐患有哪些,今天德迅云安全就带您来了解下。熟悉了解了就知道怎么规避风险。不过无论是什么漏洞,都体现着安全是一个整体的真理,考虑Web服务器的安全性,必须要考虑到与之相配合的操作系统。 1.物理路径…...
MinGW-w64的下载与安装
文章目录 1 下载2 安装3 配置环境变量4 验证 1 下载 官网地址:https://www.mingw-w64.org/github地址:https://github.com/niXman/mingw-builds-binaries/releases windows下载 跳转github下载 版本号选择:13.2.0是GCC的版本号;…...
docker使用笔记
查看本机上所有镜像 docker images打包项目(打包完成后自动载入镜像) The command docker build -t search-server . you provided is a standard way to build a Docker image. The -t flag tags the resulting image, and search-server is the tag …...
新规正式发布 | 百度深度参编《生成式人工智能服务安全基本要求》
2024年2月29日,全国网络安全标准化技术委员会( TC260 )正式发布《生成式人工智能服务安全基本要求》(以下简称《基本要求》)。《基本要求》规定了生成式人工智能服务在安全方面的基本要求,包括语料安全、模…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
