当前位置: 首页 > news >正文

Linux机器通过Docker-Compose安装Jenkins发送Allure报告

目录

一、安装Docker

二、安装Docker Compose

三、准备测试用例

四、配置docker-compose.yml

五、启动Jenkins

六、配置Jenkins和Allure插件

七、创建含pytest的Jenkins任务

八、项目结果通知

1.通过企业微信通知

2.通过邮件通知

九、配置域名DNS解析


最近小编接到一个任务用来监测和巡检网络入口是否正常,下面是我实现的思路图:

下面是我要实现的具体步骤:

一、安装Docker

在CentOS上,首先更新包管理工具并安装所需的包。

sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

接下来,添加Docker的官方仓库,然后安装Docker。

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

在执行这步骤的时候可能会出现下载Docker不成功,我后面采用aliyun下载的并设置了自己的代理。

启动Docker服务,并设置为开机自启。

sudo systemctl start docker
sudo systemctl enable docker

二、安装Docker Compose

需要下载Docker Compose的当前稳定版本。检查Docker Compose GitHub仓库上的最新版本。

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

这里最开始下载存在问题,我是登录仓库后下载对应的文件后,通过scp命令上传到/usr/local/bin目录下,并重命名为docker-compose

chmod +x docker-compose-linux-x86_64mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

验证安装是否成功。

docker-compose --version

三、准备测试用例

准备用pytest编写的测试用例。例如,创建一个简单的测试文件test_example.py

# test_example.pydef test_example():assert 1 == 1def test_example_fail():assert 1 == 2

四、配置docker-compose.yml

创建docker-compose.yml文件来定义Jenkins服务。此配置将Jenkins作为服务运行,并准备了用于持久化数据和与宿主机的Docker守护进程通信的卷。因为我需要用到python脚本,采用pytest框架,这里我构建了python镜像。

version: '3.9'
services:jenkins:image: jenkins/jenkins:ltscontainer_name: jenkinsnetwork_mode: "host"user: rootrestart: alwaysvolumes:- /var/run/docker.sock:/var/run/docker.sock- /root/compose/jenkins/jenkins_data:/var/jenkins_home- /root/compose/jenkins/pythonProject:/var/jenkins_home/pythonProject- /root/compose/jenkins/apache-maven-3.9.8:/usr/local/apache-maven/apache-maven-3.9.8- /root/compose/jenkins/jdk-11.0.23:/usr/local/jdk-11.0.23- /root/compose/jenkins/conf/profile:/root/.bashrcenvironment:- TZ=Asia/Shanghaipython:image: python:3.10container_name: pythonvolumes:- /root/compose/jenkins/pythonProject:/usr/srcworking_dir: /usr/srccommand: bash -c "pip install -r requirements.txt && tail -f /dev/null"

五、启动Jenkins

运行以下命令在后台启动Jenkins服务:

docker-compose up -d

 我配置了portainer可视化界面,可看到启动后的镜像信息:

六、配置Jenkins和Allure插件

1.访问http:<机器名称>:8080进行Jenkins的初始化配置。

2.安装Allure Jenkins插件:进入管理--》插件管理,在“可选插件”标签页搜索“Allure Jenkins Plugin”进行安装。

3.重启Jenkins以应用安装的插件。

七、创建含pytest的Jenkins任务

1.在Jenkins中创建一个新的“自由风格的软件项目”。

2.在“源代码管理”部分,配置你的项目库(如果你的测试用例放在Git等版本控制系统中)。

3.在“构建”部分,添加“执行shell”步骤,填写命令来安装pytest和allure-pytest,并执行测试用例。

python3 -m ensurepip --upgrade  # 确保pip3安装/更新
pip3 install pytest
pip3 install allure-pytest
python3 -m pytest --alluredir=allure-results test_example.py

后续网络入口特别多的情况下,执行一次会耗时2h,时间成本太高,修改shell语句:

cd /var/jenkins_home/pythonProject
#可以先安装pytest-xdist插件
pip3 install pytest-xdist
#通过requirements.txt文件包含全部的依赖插件
pip3 freeze > requirements.txt#上面两个步骤可以提前在jenkins容器内执行,这里可不执行pytest -n 8 test_redirects.py --alluredir "allure-results" --clean-alluredir

4.运行Jenkins任务并查看Allure报告

但是最开始这里执行会报错,pip和python不存在,采用新的方式在docker容器内下载python3

首先以root用户权限进入到jenkins容器内:

docker exec -itu root jenkins /bin/bash

 执行命令:

apt-get update
#直接容器中安装 wget 
apt install -y wget#先安装依赖
apt  -y install gcc automake autoconf libtool make
apt -y install make*
apt  -y install zlib*
apt -y install openssl libssl-dev
apt  install -y build-essential
apt  install sudo
sudo apt-get update
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
sudo apt-get install libxpm-dev libxext-dev 
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev #下载python
wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz#解压下载的python包
tar -zvxf Python-3.12.1.tgz#进入目录
cd /var/jenkins_home#修改目录名称
mv Python-3.12.1 python3#进入到python3目录
cd python3#执行命令
./configure --prefix=/var/jenkins_home/python3#make编译安装
./configure --prefix=/var/jenkins_home/python3 --with-ssl#这时候可能会提示执行命令:
./configure --enable-optimizations
make
make install#添加python3软链接
which python3ln -s /var/jenkins_home/python3/bin/python3.12 /usr/local/bin/python3#添加pip3软链接
ln -s /var/jenkins_home/python3/bin/pip3 /usr/local/bin/pip3#检查是否安装成功
python3 --version
pip3 --version

运行刚刚配置的Jenkins任务。构建完成后,Jenkins将会显示一个“Allure报告”的链接,点击它即可查看详细的测试报告。

通过上述步骤就可以在CentOS系统上,通过docker-compose安装Jenkins,并通过Jenkins运行pytest编写的Python测试用例,并生成Allure测试报告了。

八、项目结果通知

1.通过企业微信通知

可在“执行shell”中加入语句:

curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yourkey \-H 'Content-Type: application/json' \-d '{"msgtype": "markdown","markdown": {"content": "# 基建消防队 <font color=\"warning\"></font>\n> ### 级别状态: <font color=\"green\">S1 Recovered</font>\n> ### 规则标题: <font color=\"comment\">监控对象失联</font>\n> ### 规则备注: <font color=\"comment\">检查categraf到n9e链路是否正常</font>\n> ### 负责人: <font color=\"comment\">@xxx</font>\n> [查看详细报告](填写报告链接地址)"},"mentioned_list":["@all"]}'

在后面监测过程中想要报告展示的信息更全面,包含总测试案例、通过案例和通过率等字段的展示,可以更直观的看出报告详情。为了实现此功能,首先编写了python测试脚本result.py:

import json#需注意这里的地址一定是容器内的地址!
with open('/path/to/report/directory/widgets/summary.json', 'r') as f:summary = json.load(f)total_cases = summary['statistic']['total']
passed_cases = summary['statistic']['passed']
pass_rate = passed_cases / total_cases * 100print(f"总测试案例:{total_cases}")
print(f"通过案例:{passed_cases}")
print(f"通过率:{pass_rate:.2f}%")

其次在构建项目中修改原有的"执行shell"脚本,这是我第一次写的脚本

# 运行Python脚本,捕获输出
output=$(python /var/jenkins_home/pythonProject/result.py)# 使用curl发送企业微信消息
curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yourkey \-H 'Content-Type: application/json' \-d '{"msgtype": "markdown","markdown": {"content": "# 基建消防队 <font color=\"warning\"></font>\n> ### 级别状态: <font color=\"green\">S1 Recovered</font>\n> ### 规则标题: <font color=\"comment\">网络入口监测</font>\n> ### 规则备注: <font color=\"comment\">检查网络入口是否正常通信</font>\n> ### 负责人: <font color=\"comment\">@xxx/font>\n> ### 报告详情: <font color=\"comment\">'$output'</font>> [查看详细报告](填写你的报告链接地址)"},"mentioned_list":["@all"]}'

上述脚本执行项目后在群里发送的样式为:

 

实在是太丑了,有没有!!

后面为了优化此报告,经历了不断的修改,最后给出正确的代码!

修改result.py脚本内容为:

import jsonreport_path = '/var/jenkins_home/pythonProject/allure-report/widgets/summary.json'
with open(report_path, 'r') as f:summary = json.load(f)total_cases = summary['statistic']['total']
passed_cases = summary['statistic']['passed']
pass_rate = passed_cases / total_cases * 100# 构建markdown格式的消息
markdown_message = f"""
> ### 总测试案例:<font color=\\\"orange\\\">{total_cases}</font>
> ### 通过案例:<font color=\\\"green\\\">{passed_cases}</font>
> ### 通过率:<font color=\\\"green\\\">{pass_rate:.2f}%</font>
"""print(markdown_message.strip())

 修改shell脚本内容为:

# 运行Python脚本,捕获输出
output=$(python /var/jenkins_home/pythonProject/result.py)# 使用curl发送企业微信消息,注意在此处使用双引号以允许变量展开
curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yourkey \-H 'Content-Type: application/json' \-d "{\"msgtype\": \"markdown\",\"markdown\": {\"content\": \"# 基建消防队 <font color=\\\"warning\\\"></font>> ### 级别状态: <font color=\\\"red\\\">S1 Recovered</font>> ### 规则标题: <font color=\\\"comment\\\">网络入口监测</font>> ### 规则备注: <font color=\\\"comment\\\">检查网络入口是否正常通信</font>> ### 负责人: <font color=\\\"comment\\\">@xxx</font>> ${output}> [查看详细报告](填写你的报告链接地址)\"},\"mentioned_list\":[\"@all\"]}"

 

这样报告明显好看多了呢~ 

后面接口越来越多的情况下,有些接口第一次调用是失败的,但是发现当有测试case执行失败时,竟然影响到了整个项目的构建结果,这个肯定是不合理的。需要修改shell脚本解决此问题:

cd /var/jenkins_home/pythonProjectpytest -v -n 8 test_networkMonitor.py --alluredir "allure-results" --clean-alluredir || true

加入“|| true”判断会保证,不管pytest结果如何,脚本的执行都会继续进行,从而避免因测试失败而影响到最后的构建结果。 

2.通过邮件通知

(1)系统管理-->全局凭据配置-->设置发送邮件的用户名和密码作为全局凭据

(2)系统管理-->系统设置-->Extended E-mail Notification-->设置相关参数

 (3)系统管理-->系统设置-->邮件通知-->设置相应参数

(4)你的项目-->构建后操作-->Editable Email Notification-->设置相应参数

 这样就可以实现邮件发送啦~


九、配置域名DNS解析

最开始的思路是通过部署nginx,编写了docker-compose.yml文件

version: '3.9'
services:jenkins:image: jenkins/jenkins:ltscontainer_name: jenkinsnetwork_mode: "host"user: rootrestart: alwaysvolumes:- /var/run/docker.sock:/var/run/docker.sock- /root/compose/jenkins/jenkins_data:/var/jenkins_home- /root/compose/jenkins/pythonProject:/var/jenkins_home/pythonProject- /root/compose/jenkins/apache-maven-3.9.8:/usr/local/apache-maven/apache-maven-3.9.8- /root/compose/jenkins/jdk-11.0.23:/usr/local/jdk-11.0.23- /root/compose/jenkins/conf/profile:/root/.bashrcenvironment:- TZ=Asia/Shanghainginx:image: nginxcontainer_name: nginxrestart: alwaysuser: rootports:- "80:80"volumes:- /root/compose/jenkins/nginx:/etc/nginx/conf.ddepends_on:- jenkins

在/root/compose/jenkins/nginx下新增nginx.conf文件,文件内容:

server {listen 80;server_name 你想要解析的域名;location / {proxy_pass http://你的机器IP:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}

nginx启动之后,输入全新的域名就可以登录了

后续方案升级,端口转发交给docker,域名解析交给运维,不在需要nginx,最终的docker-compose.yml修改为:

version: '3.9'
services:jenkins:image: jenkins-terra:ltscontainer_name: jenkinsuser: rootrestart: alwaysvolumes:- /var/run/docker.sock:/var/run/docker.sock- /root/compose/jenkins/jenkins_data:/var/jenkins_home- /root/compose/jenkins/pythonProject:/var/jenkins_home/pythonProject- /root/compose/jenkins/apache-maven-3.9.8:/usr/local/apache-maven/apache-maven-3.9.8- /root/compose/jenkins/jdk-11.0.23:/usr/local/jdk-11.0.23- /root/compose/jenkins/conf/profile:/root/.bashrcenvironment:- TZ=Asia/Shanghaiports:- "80:8080"

你学废了吗?

相关文章:

Linux机器通过Docker-Compose安装Jenkins发送Allure报告

目录 一、安装Docker 二、安装Docker Compose 三、准备测试用例 四、配置docker-compose.yml 五、启动Jenkins 六、配置Jenkins和Allure插件 七、创建含pytest的Jenkins任务 八、项目结果通知 1.通过企业微信通知 2.通过邮件通知 九、配置域名DNS解析 最近小编接到一…...

基于Gunicorn+Flask+Docker模型高并发部署

关于猫头虎 大家好&#xff0c;我是猫头虎&#xff0c;别名猫头虎博主&#xff0c;擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评测图文、产品使用体验图文、产品优点推广文稿、产品横测对比文…...

java:类型变量(TypeVariable)解析--基于TypeResolver实现将类型变量替换为实际类型

上一篇博客《java:类型变量(TypeVariable)解析–获取泛型类(Generic Class)所有的类型变量(TypeVariable)的实际映射类型》中介绍如何如何正确解析泛型类的类型变量(TypeVariable)&#xff0c;获取对应的实际类型。 有了类型变量(TypeVariable)–实际类型的映射&#xff0c;我们…...

ru俄罗斯域名如何申请SSL证书?

我们日常看到的都是com这种国际域名比较普遍&#xff0c;尤其是主流网站&#xff0c;主要原因考虑的其通用性&#xff0c;那么对于地方性的域名大家很少看到&#xff0c;比如俄罗斯国家域名.ru大家还是有些陌生的&#xff0c;但要说中国.CN域名那你就很熟悉了。 有用户在申请过…...

python实现购物车的功能

模拟购物车&#xff0c;准备一个列表 goodList [{name:笔记本电脑,price:8000}, {name:鼠标, price:100}] 5个函数 1.加入购物车 2.收藏商品 3.去结算 4.删除购物车商品 5.清空购物车 购物车 cartList [] 收藏列表 collectSet {笔记本电脑,鼠标} 数据示例 去结算计算出总价…...

日元预计明年开始上涨

被称为“日元先生”的前大藏省&#xff08;现财务省&#xff09;财务官榊原英资预测&#xff0c;美元兑日元汇率将在今年底或2025年初逐步升至130。他认为&#xff0c;通缩时代已经过去&#xff0c;通货膨胀即将来临。 《日本经济新闻》6月5日报道&#xff0c;日本财务省于5月3…...

8、PHP 实现二进制中1的个数、数值的整数次方

题目&#xff1a; 二进制中1的个数 描述&#xff1a; 输入一个整数&#xff0c;输出该数二进制表示中1的个数。其中负数用补码表示。 <?phpfunction NumberOf1($n) {$count 0;if($n < 0){$n $n & 0x7FFFFFFF;$count;}while($n ! 0){$count;$n $n & ($n - 1…...

linux git凭证管理

linux git 凭证管理 解决命令行git登录github的问题&#xff0c;支持两步验证 同样适用于Azure Devops, Bitbucket 官网&#xff1a; https://github.com/git-ecosystem/git-credential-manager https://github.com/git-ecosystem/git-credential-manager/blob/release/docs/…...

WIC 图像处理初体验——读取像素的值

先放上运行结果&#xff1a; 可以发现红绿蓝是从后往前的。 必须以C方式编译代码&#xff01; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <wincodec.h>int main(void) {CoInitialize(nullptr);IWICImagingFactory* fac;CoCreateInstance(CLS…...

使用Server-Sent Events (SSE),并获取message里面的内容

什么是Server-Sent Events (SSE)? Server-Sent Events (SSE)是一种服务器推送技术&#xff0c;允许服务器向客户端&#xff08;浏览器&#xff09;发送实时消息。与WebSocket不同&#xff0c;SSE是单向通信&#xff0c;只能从服务器到客户端。SSE在HTML5中作为标准实现&#…...

LabVIEW项目管理中如何平衡成本、时间和质量

在LabVIEW项目管理中&#xff0c;平衡成本、时间和质量是实现项目成功的关键。通过制定详细的项目计划、合理分配资源、严格控制进度、进行质量保证和灵活应对变化&#xff0c;项目管理者可以有效地协调这三者的关系&#xff0c;确保项目按时、按质、按预算完成。 1. 制定详细…...

如何检查 Kubernetes 网络配置

简介 Kubernetes 是一个容器编排系统&#xff0c;可以管理集群中的容器化应用程序。在集群中保持所有容器之间的网络连接需要一些高级网络技术。在本文中&#xff0c;我们将简要介绍一些工具和技术&#xff0c;用于检查这种网络设置。 如果您正在调试连接问题&#xff0c;调查…...

如何将网站封装成App:小猪APP分发助你实现

你有没有想过&#xff0c;将你的网站变成一个App会是什么样子&#xff1f;想象一下&#xff0c;用户只需点击一下图标&#xff0c;就能立刻访问你的内容&#xff0c;而不是在浏览器中输入网址。这不仅提升了用户体验&#xff0c;还能增加用户粘性。这一切都可以通过将网站封装成…...

探索C嘎嘎的奇妙世界:第十六关---STL(vector的练习)

1.只出现一次的数字 我们可以使用异或运算来解决这个问题&#xff1a; 异或运算有一个重要的性质&#xff1a;两个相同的数进行异或运算结果为 0&#xff0c;任何数与 0 异或结果为其本身。对于数组中的元素&#xff0c;依次进行异或运算&#xff0c;出现两次的元素异…...

最新扣子(Coze)实战案例:扣子卡片的制作及使用,完全免费教程

&#x1f9d9;‍♂️ 大家好&#xff0c;我是斜杠君&#xff0c;手把手教你搭建扣子AI应用。 &#x1f4dc; 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》&#xff0c;完全免费学习。 &#x1f440; 关注斜杠君&#xff0c;可获取完整版教程。&#x1f44d;&#x1f3f…...

Node-red win11安装

文章目录 前言一、安装node.js和npm二、安装Node-red三、 运行Node-red 前言 Node-RED 是一种编程工具&#xff0c;用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。 它提供了一个基于浏览器的编辑器&#xff0c;只需单击一下即可将调色板中的各种节点轻松连接在…...

永久更改R包的安装目录

要永久更改 R 包的安装目录&#xff0c;可以通过设置 R 配置文件来实现。以下是步骤说明&#xff1a; 1. 查找和修改 R 配置文件 R 有几个配置文件用于保存用户和系统的设置&#xff1a; 用户级配置文件&#xff1a;通常位于 ~/.Rprofile系统级配置文件&#xff1a;通常位于…...

Webrtc支持FFMPEG硬解码之NVIDA(二)

一、前言 此系列文章分分为三篇, Webrtc支持FFMPEG硬解码之Intel(一)-CSDN博客 Webrtc支持FFMPEG硬解码之NVIDA(二)-CSDN博客 Webrtc支持FFMPEG硬解码之解码实现-CSDN博客 AMD硬解目前还没找到可用解码器,欢迎留言交流 二、环境 Windows平台 VS2019 Cmake 三、下…...

整理好了!2024年最常见 20 道设计模式面试题(九)

上一篇地址&#xff1a;整理好了&#xff01;2024年最常见 20 道设计模式面试题&#xff08;八&#xff09;-CSDN博客 十七、什么是享元模式&#xff1f;它在资源优化中扮演什么角色&#xff1f; 享元模式&#xff08;Flyweight Pattern&#xff09;是一种常用的软件设计模式…...

RAG实操教程langchain+Milvus向量数据库创建你的本地知识库 二

Miluvs 向量数据库 关于 Milvui 可以参考我的前两篇文章 • 一篇文章带你学会向量数据库Milvus&#xff08;一&#xff09;[1]• 一篇文章带你学会向量数据库Milvus&#xff08;二&#xff09;[2] 下面我们安装 pymilvus 库 pip install --upgrade --quiet pymilvus如果你…...

Spring+SpringMVC介绍+bean实例化+依赖注入实战

Spring介绍 Spring是一个轻量级的Java 开发框架&#xff0c;核心是IOC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面编程&#xff09; Spring解决了业务层&#xff08;Service包&#xff09;与其他各层&#xff08;表现层&#xff0c;包括Model&#xff0c;Vie…...

【安装笔记-20240616-Linux-为 OpenWrt 自动挂载 Windows 主机共享目录】

安装笔记-系列文章目录 安装笔记-20240616-Linux-为 OpenWrt 自动挂载 Windows 主机共享目录 文章目录 安装笔记-系列文章目录安装笔记-20240616-Linux-为 OpenWrt 自动挂载 Windows 主机共享目录 前言一、软件介绍名称&#xff1a;cifsutils主页官方介绍特点 二、安装步骤测试…...

61.WEB渗透测试-信息收集- WAF、框架组件识别(1)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;60.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露&#xff08;8&#xff09; WAF的识…...

qmt量化交易策略小白学习笔记第45期【qmt编程之期货行情数据--如何获取日线行情、tick行情】

qmt编程之获取期货行情数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;咨询免费开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xff01; 获取日线行情数…...

c#default 运算符

值类型默认值boolfalsebyte0char‘\0’decimal0.0Mdouble0.0Denum表达式 (E)0 产生的值&#xff0c;其中 E 为 enum 标识符。float0.0Fint0long0Lsbyte0short0struct将所有的值类型字段设置为默认值并将所有的引用类型字段设置为 null 时产生的值。uint0ulong0ushort0引用类型n…...

25计算机考研,这所985有机会!

吉林大学的计算机学科评估是A-&#xff0c;软件是B 实力还是很强的&#xff01; 考研的专科课代码分别是941和966 其实就是自命题&#xff0c;941是四合一&#xff1a;数据结构&#xff0c;计算机组成与设计&#xff0c;操作系统和计算机网络&#xff0c;这个和408统考的科目…...

SQL 基础入门教程

目录 什么是 SQL&#xff1f; SQL 的基本操作 数据库的创建和删除 表的创建和删除 数据的插入 数据的查询 数据的更新 数据的删除 SQL 的高级操作 表的连接 聚合函数 分组和排序 子查询 视图 索引 SQL 的数据完整性和约束 总结 SQL&#xff08;Structured Que…...

<Python><paddleocr>基于python使用百度paddleocr实现图片文字识别与替换

前言 本文是使用百度的开源库paddleocr来实现对图片文字的识别,准确度还不错,对图片文字的替换,则利用opencv来完成。 环境配置 系统:windows 平台:visual studio code 语言:python 库:paddleocr、opencv、pyqt5 依赖库安装 本例所需要的库可以直接用pip来安装。 安装…...

小程序开发的费用简介篇

小程序的价格跟很多因素有关系&#xff0c;比如你想要的复杂度、功能多不多等等 今天我就来具体说说开发一款APP&#xff0f;小程序到底需要多少 ❶功能复杂度&#xff1a;功能越多越复杂&#xff0c;开发时间和费用就越高&#xff0c;费用就会高 ❷设计要求&#xff1a;高级的…...

torch.unflod与torch.nn.functional.pad用法

PyTorch 中的两个函数:torch.unfold 和 torch.nn.unfold。它们分别用于不同的目的,让我们分别来理解一下: torch.nn.Unfold 类功能: 类似于函数 torch.unfold,torch.nn.Unfold 类也用于沿着指定维度滑动提取窗口并将每个窗口展平。与函数不同的是,torch.nn.Unfold 是一个…...

自己做网站 什么软件/友链交换平台源码

首先&#xff0c;引入 spring-cloud-starter-zuul 之后会间接引入&#xff1a; hystrix依赖已经引入&#xff0c;那么何种情况下使用hystrix呢&#xff1f; 在Zuul的自动配置类 ZuulServerAutoConfiguration 和 ZuulProxyAutoConfiguration 中总共会向Spring容器注入3个Zuul的R…...

网站制作案例效果/站长工具如何使用

目录 1 绪论 1.1 课题研究背景 1.2 课题研究目的与意义 1.3 创新思路 1.4 论文组织结构...

东营有网站/安卓优化大师app

底部四个切换导航 它分为首页,问答,视频和我的四大模块 创建lib/home/home.dart首页文件,使用的是bottomNavigationBar组件,官网也有介绍 它有一个onTap函数,这个函数会有一个index下标参数,同时准备四个模块页面news.dart,question.dart,video.dart和user.dart;里面的切换过…...

百度公司网站建设/人力资源培训

FTP环境实例&#xff1a;某公司由于业务发展需求&#xff0c;现需要在公司内部搭建一台FTP服务器&#xff01;该公司有数个部门(IT FD HR)和N名员工(fus1 fus2 fus3 fus4 fus5 fus6 fus7 fus8 fus9)使用该服务器&#xff01;为了保障系统和其他数据的安全&#xff0c;要求用户只…...

达内网站开发学习培训/seo公司品牌哪家好

PROKLETNIK 题目描述&#xff1a;给出\(n\)个数&#xff0c;定义一段连续的数为魔法串是该区间的左右端点值正好是区间的最小值与最大值&#xff08;最小值可以在左也可以在右&#xff0c;最大值也一样&#xff09;。\(Q\)个询问&#xff0c;每次询问一个区间\([L, R]\),问该区…...

企业数字化转型/百度seo找哪里

为了规范等保相关业务办理流程&#xff0c;确保等保业务顺利办理&#xff0c;保障企业合法权益&#xff0c;政策规定&#xff0c;只有取得等保测评资质机构方可办理等保测评业务。因此很多人在问&#xff0c;企业是否具备等保测评资质在哪里查&#xff1f;怎么查&#xff1f; …...