国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

做網(wǎng)站可以用python么谷歌搜索入口365

做網(wǎng)站可以用python么,谷歌搜索入口365,ppt怎么制作教程,手機(jī)app網(wǎng)站建設(shè)目錄 一、安裝Docker 二、安裝Docker Compose 三、準(zhǔn)備測(cè)試用例 四、配置docker-compose.yml 五、啟動(dòng)Jenkins 六、配置Jenkins和Allure插件 七、創(chuàng)建含pytest的Jenkins任務(wù) 八、項(xiàng)目結(jié)果通知 1.通過(guò)企業(yè)微信通知 2.通過(guò)郵件通知 九、配置域名DNS解析 最近小編接到一…

目錄

一、安裝Docker

二、安裝Docker Compose

三、準(zhǔn)備測(cè)試用例

四、配置docker-compose.yml

五、啟動(dòng)Jenkins

六、配置Jenkins和Allure插件

七、創(chuàng)建含pytest的Jenkins任務(wù)

八、項(xiàng)目結(jié)果通知

1.通過(guò)企業(yè)微信通知

2.通過(guò)郵件通知

九、配置域名DNS解析


最近小編接到一個(gè)任務(wù)用來(lái)監(jiān)測(cè)和巡檢網(wǎng)絡(luò)入口是否正常,下面是我實(shí)現(xiàn)的思路圖:

下面是我要實(shí)現(xiàn)的具體步驟:

一、安裝Docker

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

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

接下來(lái),添加Docker的官方倉(cāng)庫(kù),然后安裝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

在執(zhí)行這步驟的時(shí)候可能會(huì)出現(xiàn)下載Docker不成功,我后面采用aliyun下載的并設(shè)置了自己的代理。

啟動(dòng)Docker服務(wù),并設(shè)置為開(kāi)機(jī)自啟。

sudo systemctl start docker
sudo systemctl enable docker

二、安裝Docker Compose

需要下載Docker Compose的當(dāng)前穩(wěn)定版本。檢查Docker Compose GitHub倉(cāng)庫(kù)上的最新版本。

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

這里最開(kāi)始下載存在問(wèn)題,我是登錄倉(cāng)庫(kù)后下載對(duì)應(yīng)的文件后,通過(guò)scp命令上傳到/usr/local/bin目錄下,并重命名為docker-compose

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

驗(yàn)證安裝是否成功。

docker-compose --version

三、準(zhǔn)備測(cè)試用例

準(zhǔn)備用pytest編寫(xiě)的測(cè)試用例。例如,創(chuàng)建一個(gè)簡(jiǎn)單的測(cè)試文件test_example.py

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

四、配置docker-compose.yml

創(chuàng)建docker-compose.yml文件來(lái)定義Jenkins服務(wù)。此配置將Jenkins作為服務(wù)運(yùn)行,并準(zhǔn)備了用于持久化數(shù)據(jù)和與宿主機(jī)的Docker守護(hù)進(jìn)程通信的卷。因?yàn)槲倚枰玫絧ython腳本,采用pytest框架,這里我構(gòu)建了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"

五、啟動(dòng)Jenkins

運(yùn)行以下命令在后臺(tái)啟動(dòng)Jenkins服務(wù):

docker-compose up -d

?我配置了portainer可視化界面,可看到啟動(dòng)后的鏡像信息:

六、配置Jenkins和Allure插件

1.訪問(wèn)http:<機(jī)器名稱(chēng)>:8080進(jìn)行Jenkins的初始化配置。

2.安裝Allure Jenkins插件:進(jìn)入管理--》插件管理,在“可選插件”標(biāo)簽頁(yè)搜索“Allure Jenkins Plugin”進(jìn)行安裝。

3.重啟Jenkins以應(yīng)用安裝的插件。

七、創(chuàng)建含pytest的Jenkins任務(wù)

1.在Jenkins中創(chuàng)建一個(gè)新的“自由風(fēng)格的軟件項(xiàng)目”。

2.在“源代碼管理”部分,配置你的項(xiàng)目庫(kù)(如果你的測(cè)試用例放在Git等版本控制系統(tǒng)中)。

3.在“構(gòu)建”部分,添加“執(zhí)行shell”步驟,填寫(xiě)命令來(lái)安裝pytest和allure-pytest,并執(zhí)行測(cè)試用例。

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

后續(xù)網(wǎng)絡(luò)入口特別多的情況下,執(zhí)行一次會(huì)耗時(shí)2h,時(shí)間成本太高,修改shell語(yǔ)句:

cd /var/jenkins_home/pythonProject
#可以先安裝pytest-xdist插件
pip3 install pytest-xdist
#通過(guò)requirements.txt文件包含全部的依賴(lài)插件
pip3 freeze > requirements.txt#上面兩個(gè)步驟可以提前在jenkins容器內(nèi)執(zhí)行,這里可不執(zhí)行pytest -n 8 test_redirects.py --alluredir "allure-results" --clean-alluredir

4.運(yùn)行Jenkins任務(wù)并查看Allure報(bào)告

但是最開(kāi)始這里執(zhí)行會(huì)報(bào)錯(cuò),pip和python不存在,采用新的方式在docker容器內(nèi)下載python3

首先以root用戶(hù)權(quán)限進(jìn)入到j(luò)enkins容器內(nèi):

docker exec -itu root jenkins /bin/bash

?執(zhí)行命令:

apt-get update
#直接容器中安裝 wget 
apt install -y wget#先安裝依賴(lài)
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#進(jìn)入目錄
cd /var/jenkins_home#修改目錄名稱(chēng)
mv Python-3.12.1 python3#進(jìn)入到python3目錄
cd python3#執(zhí)行命令
./configure --prefix=/var/jenkins_home/python3#make編譯安裝
./configure --prefix=/var/jenkins_home/python3 --with-ssl#這時(shí)候可能會(huì)提示執(zhí)行命令:
./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

運(yùn)行剛剛配置的Jenkins任務(wù)。構(gòu)建完成后,Jenkins將會(huì)顯示一個(gè)“Allure報(bào)告”的鏈接,點(diǎn)擊它即可查看詳細(xì)的測(cè)試報(bào)告。

通過(guò)上述步驟就可以在CentOS系統(tǒng)上,通過(guò)docker-compose安裝Jenkins,并通過(guò)Jenkins運(yùn)行pytest編寫(xiě)的Python測(cè)試用例,并生成Allure測(cè)試報(bào)告了。

八、項(xiàng)目結(jié)果通知

1.通過(guò)企業(yè)微信通知

可在“執(zhí)行shell”中加入語(yǔ)句:

curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yourkey \-H 'Content-Type: application/json' \-d '{"msgtype": "markdown","markdown": {"content": "# 基建消防隊(duì) <font color=\"warning\"></font>\n> ### 級(jí)別狀態(tài): <font color=\"green\">S1 Recovered</font>\n> ### 規(guī)則標(biāo)題: <font color=\"comment\">監(jiān)控對(duì)象失聯(lián)</font>\n> ### 規(guī)則備注: <font color=\"comment\">檢查categraf到n9e鏈路是否正常</font>\n> ### 負(fù)責(zé)人: <font color=\"comment\">@xxx</font>\n> [查看詳細(xì)報(bào)告](填寫(xiě)報(bào)告鏈接地址)"},"mentioned_list":["@all"]}'

在后面監(jiān)測(cè)過(guò)程中想要報(bào)告展示的信息更全面,包含總測(cè)試案例、通過(guò)案例和通過(guò)率等字段的展示,可以更直觀的看出報(bào)告詳情。為了實(shí)現(xiàn)此功能,首先編寫(xiě)了python測(cè)試腳本result.py:

import json#需注意這里的地址一定是容器內(nèi)的地址!
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"總測(cè)試案例:{total_cases}")
print(f"通過(guò)案例:{passed_cases}")
print(f"通過(guò)率:{pass_rate:.2f}%")

其次在構(gòu)建項(xiàng)目中修改原有的"執(zhí)行shell"腳本,這是我第一次寫(xiě)的腳本

# 運(yùn)行Python腳本,捕獲輸出
output=$(python /var/jenkins_home/pythonProject/result.py)# 使用curl發(fā)送企業(yè)微信消息
curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yourkey \-H 'Content-Type: application/json' \-d '{"msgtype": "markdown","markdown": {"content": "# 基建消防隊(duì) <font color=\"warning\"></font>\n> ### 級(jí)別狀態(tài): <font color=\"green\">S1 Recovered</font>\n> ### 規(guī)則標(biāo)題: <font color=\"comment\">網(wǎng)絡(luò)入口監(jiān)測(cè)</font>\n> ### 規(guī)則備注: <font color=\"comment\">檢查網(wǎng)絡(luò)入口是否正常通信</font>\n> ### 負(fù)責(zé)人: <font color=\"comment\">@xxx/font>\n> ### 報(bào)告詳情: <font color=\"comment\">'$output'</font>> [查看詳細(xì)報(bào)告](填寫(xiě)你的報(bào)告鏈接地址)"},"mentioned_list":["@all"]}'

上述腳本執(zhí)行項(xiàng)目后在群里發(fā)送的樣式為:

?

實(shí)在是太丑了,有沒(méi)有!!

后面為了優(yōu)化此報(bào)告,經(jīng)歷了不斷的修改,最后給出正確的代碼!

修改result.py腳本內(nèi)容為:

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# 構(gòu)建markdown格式的消息
markdown_message = f"""
> ### 總測(cè)試案例:<font color=\\\"orange\\\">{total_cases}</font>
> ### 通過(guò)案例:<font color=\\\"green\\\">{passed_cases}</font>
> ### 通過(guò)率:<font color=\\\"green\\\">{pass_rate:.2f}%</font>
"""print(markdown_message.strip())

?修改shell腳本內(nèi)容為:

# 運(yùn)行Python腳本,捕獲輸出
output=$(python /var/jenkins_home/pythonProject/result.py)# 使用curl發(fā)送企業(yè)微信消息,注意在此處使用雙引號(hào)以允許變量展開(kāi)
curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yourkey \-H 'Content-Type: application/json' \-d "{\"msgtype\": \"markdown\",\"markdown\": {\"content\": \"# 基建消防隊(duì) <font color=\\\"warning\\\"></font>> ### 級(jí)別狀態(tài): <font color=\\\"red\\\">S1 Recovered</font>> ### 規(guī)則標(biāo)題: <font color=\\\"comment\\\">網(wǎng)絡(luò)入口監(jiān)測(cè)</font>> ### 規(guī)則備注: <font color=\\\"comment\\\">檢查網(wǎng)絡(luò)入口是否正常通信</font>> ### 負(fù)責(zé)人: <font color=\\\"comment\\\">@xxx</font>> ${output}> [查看詳細(xì)報(bào)告](填寫(xiě)你的報(bào)告鏈接地址)\"},\"mentioned_list\":[\"@all\"]}"

?

這樣報(bào)告明顯好看多了呢~?

后面接口越來(lái)越多的情況下,有些接口第一次調(diào)用是失敗的,但是發(fā)現(xiàn)當(dāng)有測(cè)試case執(zhí)行失敗時(shí),竟然影響到了整個(gè)項(xiàng)目的構(gòu)建結(jié)果,這個(gè)肯定是不合理的。需要修改shell腳本解決此問(wèn)題:

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

加入“|| true”判斷會(huì)保證,不管pytest結(jié)果如何,腳本的執(zhí)行都會(huì)繼續(xù)進(jìn)行,從而避免因測(cè)試失敗而影響到最后的構(gòu)建結(jié)果。?

2.通過(guò)郵件通知

(1)系統(tǒng)管理-->全局憑據(jù)配置-->設(shè)置發(fā)送郵件的用戶(hù)名和密碼作為全局憑據(jù)

(2)系統(tǒng)管理-->系統(tǒng)設(shè)置-->Extended E-mail Notification-->設(shè)置相關(guān)參數(shù)

?(3)系統(tǒng)管理-->系統(tǒng)設(shè)置-->郵件通知-->設(shè)置相應(yīng)參數(shù)

(4)你的項(xiàng)目-->構(gòu)建后操作-->Editable Email Notification-->設(shè)置相應(yīng)參數(shù)

?這樣就可以實(shí)現(xiàn)郵件發(fā)送啦~


九、配置域名DNS解析

最開(kāi)始的思路是通過(guò)部署nginx,編寫(xiě)了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文件,文件內(nèi)容:

server {listen 80;server_name 你想要解析的域名;location / {proxy_pass http://你的機(jī)器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啟動(dòng)之后,輸入全新的域名就可以登錄了

后續(xù)方案升級(jí),端口轉(zhuǎn)發(fā)交給docker,域名解析交給運(yùn)維,不在需要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"

你學(xué)廢了嗎?

http://aloenet.com.cn/news/45948.html

相關(guān)文章:

  • 做網(wǎng)站需要填什么軟文推廣代表平臺(tái)
  • 工業(yè)b2b網(wǎng)站建設(shè)網(wǎng)站推廣的目的
  • 閘北區(qū)網(wǎng)站建設(shè)搜索推廣代運(yùn)營(yíng)
  • 官方網(wǎng)站平臺(tái)有哪些百度關(guān)鍵字推廣費(fèi)用
  • 自己做電影網(wǎng)站可以賺錢(qián)嗎新媒體運(yùn)營(yíng)培訓(xùn)班
  • 懶人做圖網(wǎng)站江門(mén)seo
  • 國(guó)外家譜網(wǎng)站的建設(shè)關(guān)鍵詞排名怎么做上首頁(yè)
  • 四川成都最新新聞事件今天深圳谷歌seo推廣
  • 自己的服務(wù)器做網(wǎng)站優(yōu)速網(wǎng)站建設(shè)優(yōu)化seo
  • web app 和網(wǎng)站的區(qū)別企業(yè)郵箱賬號(hào)
  • 定制做網(wǎng)站百度網(wǎng)絡(luò)科技有限公司
  • 免費(fèi)做網(wǎng)站的網(wǎng)址有哪些網(wǎng)絡(luò)整合營(yíng)銷(xiāo)4i原則
  • 微信小網(wǎng)站怎么做百度競(jìng)價(jià)廣告推廣
  • 盱眙在仕德偉做網(wǎng)站的有幾家如何進(jìn)行品牌營(yíng)銷(xiāo)
  • 焦作市網(wǎng)站建設(shè)科技推廣方法有哪幾種
  • 寧波外貿(mào)網(wǎng)站推廣今日頭條重大消息
  • 網(wǎng)站建設(shè)需要哪些技能天津seo顧問(wèn)
  • ecshop源碼南京seo報(bào)價(jià)
  • 鄭州網(wǎng)站高端設(shè)計(jì)百度網(wǎng)站打不開(kāi)
  • 動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教案xp優(yōu)化大師
  • 網(wǎng)站建設(shè)付款方式河南百度seo
  • 百度推廣網(wǎng)站怎么做網(wǎng)站策劃方案案例
  • asp網(wǎng)站建設(shè)下載青島百度推廣seo價(jià)格
  • 必應(yīng)網(wǎng)站收錄在哪seo推廣顧問(wèn)
  • 做網(wǎng)站用模板百度競(jìng)價(jià)廣告怎么投放
  • 做移動(dòng)互聯(lián)網(wǎng)站點(diǎn)哪些店鋪適合交換友情鏈接
  • 網(wǎng)站專(zhuān)題模板下載上海優(yōu)化網(wǎng)站公司哪家好
  • 建網(wǎng)站怎么做報(bào)分系統(tǒng)網(wǎng)絡(luò)推廣公司有多少家
  • 怎樣做校園網(wǎng)站推廣手游推廣渠道和推廣方式
  • 海南省人民政府網(wǎng)站官網(wǎng)寧波百度快照優(yōu)化排名