中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

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

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

目錄

一、安裝Docker

二、安裝Docker Compose

三、準備測試用例

四、配置docker-compose.yml

五、啟動Jenkins

六、配置Jenkins和Allure插件

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

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

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

2.通過郵件通知

九、配置域名DNS解析


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

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

一、安裝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

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

啟動Docker服務(wù),并設(shè)置為開機自啟。

sudo systemctl start docker
sudo systemctl enable docker

二、安裝Docker Compose

需要下載Docker Compose的當前穩(wěn)定版本。檢查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

這里最開始下載存在問題,我是登錄倉庫后下載對應(yīng)的文件后,通過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編寫的測試用例。例如,創(chuàng)建一個簡單的測試文件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文件來定義Jenkins服務(wù)。此配置將Jenkins作為服務(wù)運行,并準備了用于持久化數(shù)據(jù)和與宿主機的Docker守護進程通信的卷。因為我需要用到python腳本,采用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"

五、啟動Jenkins

運行以下命令在后臺啟動Jenkins服務(wù):

docker-compose up -d

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

六、配置Jenkins和Allure插件

1.訪問http:<機器名稱>:8080進行Jenkins的初始化配置。

2.安裝Allure Jenkins插件:進入管理--》插件管理,在“可選插件”標簽頁搜索“Allure Jenkins Plugin”進行安裝。

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

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

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

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

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

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í)行一次會耗時2h,時間成本太高,修改shell語句:

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

4.運行Jenkins任務(wù)并查看Allure報告

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

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

docker exec -itu root jenkins /bin/bash

?執(zhí)行命令:

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#執(zhí)行命令
./configure --prefix=/var/jenkins_home/python3#make編譯安裝
./configure --prefix=/var/jenkins_home/python3 --with-ssl#這時候可能會提示執(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

運行剛剛配置的Jenkins任務(wù)。構(gòu)建完成后,Jenkins將會顯示一個“Allure報告”的鏈接,點擊它即可查看詳細的測試報告。

通過上述步驟就可以在CentOS系統(tǒng)上,通過docker-compose安裝Jenkins,并通過Jenkins運行pytest編寫的Python測試用例,并生成Allure測試報告了。

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

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

可在“執(zhí)行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> ### 級別狀態(tài): <font color=\"green\">S1 Recovered</font>\n> ### 規(guī)則標題: <font color=\"comment\">監(jiān)控對象失聯(lián)</font>\n> ### 規(guī)則備注: <font color=\"comment\">檢查categraf到n9e鏈路是否正常</font>\n> ### 負責人: <font color=\"comment\">@xxx</font>\n> [查看詳細報告](填寫報告鏈接地址)"},"mentioned_list":["@all"]}'

在后面監(jiān)測過程中想要報告展示的信息更全面,包含總測試案例、通過案例和通過率等字段的展示,可以更直觀的看出報告詳情。為了實現(xiàn)此功能,首先編寫了python測試腳本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"總測試案例:{total_cases}")
print(f"通過案例:{passed_cases}")
print(f"通過率:{pass_rate:.2f}%")

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

# 運行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": "# 基建消防隊 <font color=\"warning\"></font>\n> ### 級別狀態(tài): <font color=\"green\">S1 Recovered</font>\n> ### 規(guī)則標題: <font color=\"comment\">網(wǎng)絡(luò)入口監(jiān)測</font>\n> ### 規(guī)則備注: <font color=\"comment\">檢查網(wǎng)絡(luò)入口是否正常通信</font>\n> ### 負責人: <font color=\"comment\">@xxx/font>\n> ### 報告詳情: <font color=\"comment\">'$output'</font>> [查看詳細報告](填寫你的報告鏈接地址)"},"mentioned_list":["@all"]}'

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

?

實在是太丑了,有沒有!!

后面為了優(yōu)化此報告,經(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"""
> ### 總測試案例:<font color=\\\"orange\\\">{total_cases}</font>
> ### 通過案例:<font color=\\\"green\\\">{passed_cases}</font>
> ### 通過率:<font color=\\\"green\\\">{pass_rate:.2f}%</font>
"""print(markdown_message.strip())

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

# 運行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\": \"# 基建消防隊 <font color=\\\"warning\\\"></font>> ### 級別狀態(tài): <font color=\\\"red\\\">S1 Recovered</font>> ### 規(guī)則標題: <font color=\\\"comment\\\">網(wǎng)絡(luò)入口監(jiān)測</font>> ### 規(guī)則備注: <font color=\\\"comment\\\">檢查網(wǎng)絡(luò)入口是否正常通信</font>> ### 負責人: <font color=\\\"comment\\\">@xxx</font>> ${output}> [查看詳細報告](填寫你的報告鏈接地址)\"},\"mentioned_list\":[\"@all\"]}"

?

這樣報告明顯好看多了呢~?

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

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

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

2.通過郵件通知

(1)系統(tǒng)管理-->全局憑據(jù)配置-->設(shè)置發(fā)送郵件的用戶名和密碼作為全局憑據(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)你的項目-->構(gòu)建后操作-->Editable Email Notification-->設(shè)置相應(yīng)參數(shù)

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


九、配置域名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文件,文件內(nèi)容:

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啟動之后,輸入全新的域名就可以登錄了

后續(xù)方案升級,端口轉(zhuǎn)發(fā)交給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://www.risenshineclean.com/news/45948.html

相關(guān)文章:

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