使用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.gz
 
tar -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,里面有各种测试开发资料和技术可以一起交流哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/448753.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

准确识别APT,选对恶意代码检测系统最重要

通过APT检测出已知和未知恶意代码&#xff0c;提高网络安全主动防御能力&#xff0c;是网络安全解决方案中需要重视的地方。然而&#xff0c;目前业界普通的恶意代码检测系统难以准确识别APT&#xff0c;给政府、企事业单位的安全防护工作带来了极大困惑。 值得庆幸的是&#x…

深度学习Top10算法

自2006年深度学习概念被提出以来&#xff0c;20年快过去了&#xff0c;深度学习作为人工智能领域的一场革命&#xff0c;已经催生了许多具有影响力的算法。以下是深度学习top10算法&#xff0c;它们在创新性、应用价值和影响力方面都具有重要的地位。 1、深度神经网络&#xf…

ChatGPT等AI使用的过程苦笑不得瞬间

引言&#xff1a; 在人工智能的浪潮中&#xff0c;我们见证了技术的飞速发展和智能应用的广泛渗透。特别是随着语言模型的进步&#xff0c;AI如ChatGPT、文心一言、通义千问、讯飞星火等已经成为人们日常生活和工作中不可或缺的助手。然而&#xff0c;与任何新兴技术一样&#…

亚信安慧AntDB:守护数据世界的可靠堡垒

在信息时代的浪潮中&#xff0c;亚信安慧AntDB数据库不断进行细微的更新与精准修复&#xff0c;全力以赴提升性能和加固安全&#xff0c;确保系统运行的稳定性和可靠性。这样的持续维护不仅映射出系统的稳定性&#xff0c;也彰显了对用户体验的深切关怀。在数据的海洋中&#x…

vscode中解决驱动编写的时候static int __init chrdev_init()报错的问题

目录 错误出错原因解决方法 错误 在入口函数上&#xff0c;出现 expected a ; 这样的提示 出错原因 缺少了 __KERNEL __ 宏定义 解决方法 补上__KERNEL__宏定义 具体做法&#xff1a;在vscode中按下ctrlshiftp &#xff0c;输入&#xff1a;C/C:Edit Configurations&#xff0…

低功耗高端蓝牙智能跳绳解决方案

一、方案概述 跳绳运动作为轻量、燃脂、便捷的运动之一&#xff0c;拥有庞大的人群基础。在这样的趋势下&#xff0c;智能跳绳的智能化及精细化也就顺理成章。 芯联深入智能运动健康器材市场&#xff0c;最新开发了蓝牙智能跳绳方案&#xff0c;采用双霍尔高精准计数方案&…

strstr函数、chdir函数、access函数、strdup函数的介绍

1、strstr函数 strstr 是 C 语言中的一个字符串处理函数&#xff0c;用于在一个字符串中查找子字符串的第一次出现。 函数原型 char *strstr(const char *haystack, const char *needle); haystack&#xff1a;要在其中搜索的字符串。needle&#xff1a;要查找的子字符串。 函…

费用分析怎么做?如何解决财务数据分散、多表分析难问题?

一、费用分析在分析什么&#xff1f;用BI分析比Excel好在哪&#xff1f; 费用分析主要针对企业预算与实际费用数据的对比和趋势进行分析&#xff0c;以帮助企业及时监控经营状况。 在以往&#xff0c;使用Excel进行费用分析通常涉及到三个痛点&#xff1a;数据分散、多表关联计…

Java实现Tron(波场)区块链的开发实践(三)波场链水龙头、WEB3测试实战

上一节我们具体讲到Java实现Tron波场链的逻辑代码实现。 这一节我们通过部署和开发好的代码&#xff0c;针对测试链进行自测开发&#xff0c;准备测试环境。 1. 创建离线地址 首先我们需要一个离线地址&#xff0c;我们不需要在线进行创建&#xff0c;直接可以通过第一节的离…

ipad电容笔哪个牌子好?五款年度实力派电容笔推荐,小白必看

在数字化时代&#xff0c;电容笔已经成为了许多人日常生活和工作中不可或缺的工具。但是&#xff0c;市场上琳琅满目的电容笔品牌和型号让选择变得有些困难。作为一名资深的数码爱好者&#xff0c;我在选购电容笔上也有一定的经验&#xff0c;下面我来给大家分享一下2024电容笔…

PostgreSQL - 查看表膨胀空间

目录 使用pgstattuple插件查看表膨胀空间 死元组&膨胀系数清理 查看表占用磁盘空间大小是如何组成的 什么是fms和vm&#xff1f; 什么是TOAST&#xff1f; 查看表和其关联的TOAST表的oid的关系 方法一 方法二 参考文档 使用pgstattuple插件查看表膨胀空间 select…

vue 使用element plus 菜单时,折叠文字不消失

问题&#xff1a; 菜单折叠时&#xff0c;title文本无法消失&#xff0c;同时下拉箭头还会存在 解决方法&#xff1a; 查看项目中是否有div标签 原因 div和p标签都是块级元素&#xff0c;可能是这个原因 所以把项目中的p标签改为span标签 div改为template即可解决

TypeScript(四)枚举类型(Enum Types),类型别名(Type),运算符

一、枚举类型 使用枚举我们可以定义一些带名字的常量。 使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举。 枚举类型的特点 可以给一组数值取上一个更好理解的名字&#xff1b;一个枚举中只会存在几个固定的值&#xff0c;并不会…

设计模式:软件开发的秘密武器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Python基础快速入门

Python基础快速入门 前置知识 Python Python是一种广泛使用的高级编程语言&#xff0c;以其易于学习和使用的语法而闻名。以下是Python的一些主要特点&#xff1a; 高级语言&#xff1a;Python是一种高级语言&#xff0c;这意味着它提供了较高层次的抽象&#xff0c;使编程更…

Hack The Box-Crafty

目录 信息收集 rustscan whatweb WEB 漏洞利用 漏洞说明 漏洞验证 提权 get user.txt get Administrator 总结 信息收集 rustscan ┌──(root㉿ru)-[~/kali/hackthebox] └─# rustscan -a 10.10.11.249 --range0-65535 --ulimit5000 -- -A -sC [~] Automatically…

【好书推荐-第十一期】《Java面试八股文:高频面试题与求职攻略一本通(视频解说版)》(博文视点出品)

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号&#xff1a;洲与AI。 &#x1f388; 本文专栏&#xff1a;本文收录…

【Linux进阶之路】网络 —— “?“ (下)

文章目录 前言一、概念铺垫1.TCP2.全双工 二、网络版本计算器1. 原理简要2. 实现框架&&代码2.1 封装socket2.2 客户端与服务端2.3 封装与解包2.4 请求与响应2.5 对数据进行处理2.6 主程序逻辑 3.Json的简单使用 总结尾序 前言 在上文我们学习使用套接字的相关接口进行了…

数据结构入门(3)2.链表接口实现

目录 前言 头文件 动态申请一个结点 单链表打印 单链表尾插 单链表的头插 单链表的尾删 单链表头删 单链表查找 单链表在pos位置之后插入x 单链表删除pos位置之后的值 在pos的前面插入 删除pos位置 销毁顺序表 前言 本文将介绍链表常见的功能的实现 头文件 #…

【深度学习】Lora

论文标题&#xff1a;LoRA: Low-Rank Adaptation of Large Language Models 论文链接&#xff1a;https://arxiv.org/abs/2106.09685 论文来源&#xff1a;NVIDIA 1.提出背景 自然语言处理的一个重要范式为使用领域数据对模型进行大规模的预训练 &#xff0c;并适应特定的任务或…
最新文章