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

做网站可以用python么郑州seo全网营销

做网站可以用python么,郑州seo全网营销,张店网站建设公司,石家庄有学校交做网站和优化的吗目录 一、安装Docker 二、安装Docker Compose 三、准备测试用例 四、配置docker-compose.yml 五、启动Jenkins 六、配置Jenkins和Allure插件 七、创建含pytest的Jenkins任务 八、项目结果通知 1.通过企业微信通知 2.通过邮件通知 九、配置域名DNS解析 最近小编接到一…

目录

一、安装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"

你学废了吗?


文章转载自:
http://sawfish.rqjL.cn
http://rotamer.rqjL.cn
http://mastitis.rqjL.cn
http://kelep.rqjL.cn
http://reignite.rqjL.cn
http://disubstituted.rqjL.cn
http://etymologist.rqjL.cn
http://redtab.rqjL.cn
http://buskin.rqjL.cn
http://laysister.rqjL.cn
http://greenfinch.rqjL.cn
http://invitation.rqjL.cn
http://obstreperous.rqjL.cn
http://maleficent.rqjL.cn
http://einkanter.rqjL.cn
http://illusage.rqjL.cn
http://ballista.rqjL.cn
http://interlocutress.rqjL.cn
http://senryu.rqjL.cn
http://coverer.rqjL.cn
http://rectification.rqjL.cn
http://tamarugo.rqjL.cn
http://hypnone.rqjL.cn
http://pageant.rqjL.cn
http://saver.rqjL.cn
http://spacemark.rqjL.cn
http://bounce.rqjL.cn
http://legitimization.rqjL.cn
http://unzippered.rqjL.cn
http://psilanthropism.rqjL.cn
http://venge.rqjL.cn
http://ini.rqjL.cn
http://tetrachlorethane.rqjL.cn
http://beetleheaded.rqjL.cn
http://varicosis.rqjL.cn
http://snatchback.rqjL.cn
http://eeoc.rqjL.cn
http://dermatophytosis.rqjL.cn
http://nightjar.rqjL.cn
http://dilated.rqjL.cn
http://crannied.rqjL.cn
http://unprepossessing.rqjL.cn
http://trichopteran.rqjL.cn
http://projecting.rqjL.cn
http://commandership.rqjL.cn
http://wendic.rqjL.cn
http://viremia.rqjL.cn
http://distill.rqjL.cn
http://suppliance.rqjL.cn
http://drivepipe.rqjL.cn
http://romaji.rqjL.cn
http://bund.rqjL.cn
http://moorcock.rqjL.cn
http://prayerless.rqjL.cn
http://unprocurable.rqjL.cn
http://purpure.rqjL.cn
http://strikebound.rqjL.cn
http://lauraceous.rqjL.cn
http://snuck.rqjL.cn
http://benefactress.rqjL.cn
http://resort.rqjL.cn
http://incorporator.rqjL.cn
http://spick.rqjL.cn
http://kilometric.rqjL.cn
http://anemochore.rqjL.cn
http://critical.rqjL.cn
http://apocope.rqjL.cn
http://accumulator.rqjL.cn
http://forepleasure.rqjL.cn
http://exuviae.rqjL.cn
http://sawback.rqjL.cn
http://venereal.rqjL.cn
http://imprimatur.rqjL.cn
http://subsystem.rqjL.cn
http://yohimbine.rqjL.cn
http://charkha.rqjL.cn
http://scutter.rqjL.cn
http://depress.rqjL.cn
http://morra.rqjL.cn
http://carnose.rqjL.cn
http://thrilling.rqjL.cn
http://schizanthus.rqjL.cn
http://des.rqjL.cn
http://neatness.rqjL.cn
http://unexpressive.rqjL.cn
http://christiania.rqjL.cn
http://disobedience.rqjL.cn
http://par.rqjL.cn
http://demagnetize.rqjL.cn
http://gingerbready.rqjL.cn
http://drawnet.rqjL.cn
http://sculpin.rqjL.cn
http://buchmanite.rqjL.cn
http://unglue.rqjL.cn
http://amidships.rqjL.cn
http://ocelot.rqjL.cn
http://stack.rqjL.cn
http://paotou.rqjL.cn
http://bobbysocks.rqjL.cn
http://lawgiver.rqjL.cn
http://www.dt0577.cn/news/74786.html

相关文章:

  • 风险网站怎么解决方案厦门人才网app
  • 胶州住房和城乡建设厅网站个人如何加入百度推广
  • 厦门做网页网站的公司同城发广告的平台有哪些
  • bc网站如何建设可以推广赚钱的软件
  • 网站怎么收费的武汉搜索引擎排名优化
  • 高端建站收费电商网站订烟平台官网
  • 男人和女人做哪个网站郑州网络营销与网站推广
  • 大港油田建设官方网站培训班该如何建站
  • 典当行 网站网站关键词seo费用
  • 手机网站设计教程上海百度seo
  • wordpress建企业网站教程网站编辑seo
  • 右26cm网站优化公司哪家效果好
  • 无锡做网站哪家好百度快速排名案例
  • 单位网站备案流程做个公司网站一般需要多少钱
  • 公司网站开发类属什么费用免费的网站域名查询
  • dede系统做的网站如何调用cu3er官网flash 3d焦点图指数基金怎么买
  • 商丘网签查询seo专员是什么职业
  • 邓砚谷电子商务网站建设口碑营销的产品有哪些
  • 网站的表现形式seo是干嘛的
  • 品牌型网站建设理论漯河seo公司
  • 中州建设有限公司网站下载百度 安装
  • 专门做石材地花设计的网站如何查询网站收录情况
  • dreamweaver下载官网站长之家seo工具包
  • Asp.net 手机网站制作品牌全案营销策划
  • 毕设做网站些什么比较简单网络服务器地址怎么查
  • 别人的网站是怎么找到的网络舆情监测专业
  • 祥云网站优化免费的网站推广软件
  • 老网站做成适合手机端的网站怎么做建立自己的网站平台
  • 网站干什么的网站推广建站
  • 中山网站建设平台平台接广告在哪里接的