網(wǎng)站建設(shè)分幾模塊黃頁推廣引流網(wǎng)站
近期更新完畢,建議關(guān)注收藏點(diǎn)贊~
目錄
- 概括
- git
- Jenkins
- postman集成jenkins
- 代碼集成jenkins
概括
CI/CD stands for Continuous Integration and Continuous Deployment
- 定義
團(tuán)隊(duì)成果持續(xù)集成到公共平臺。一天可以集成1次or多次
本地代碼管理 git
遠(yuǎn)程代碼管理 gitee(國內(nèi)),github,gitlib(公司私有服務(wù)器)
持續(xù)集成 jenkins
git
- git配置用戶名和郵箱
本地管理代碼
git config --global user.email "xx@email.com"
git config --global user.name "username(可任意寫,不可用中文)"
#設(shè)置成功后沒有成功信息提示
git安裝目錄
- gitee
線上集成平臺 -
- pull下來線上項(xiàng)目
pycharm->最頂部tab欄VCS(如果是Git則表示該項(xiàng)目正在被git管理中)->get from/check out version control->
倉庫名直接決定了這個(gè)目錄項(xiàng)目名叫什么。
- pull下來線上項(xiàng)目
-
- push上去新項(xiàng)目
VCS->share project on gitee
如果打開了兩個(gè)項(xiàng)目,只推排第一個(gè)項(xiàng)目,應(yīng)保持只打開一個(gè)項(xiàng)目
log in to gitee授予pycharm權(quán)限登陸gitee
- push上去新項(xiàng)目
- 更新push到遠(yuǎn)程倉庫
前提:是Git項(xiàng)目
整體流程為add->commit->push
右鍵點(diǎn)擊項(xiàng)目名->git->先添加后提交->必填描述->提交完成后同樣的地方點(diǎn)擊推送
- 倉庫更新的代碼pull到本地
指的是相同的項(xiàng)目,線上代碼做了更新。
右鍵點(diǎn)擊項(xiàng)目名->git->拉取 - 解決沖突
本地和線上的某一處代碼各有不同的更新,不同步。
點(diǎn)擊merge->merge->討論到底選誰的版本
出現(xiàn)上述的提示,先拉取遠(yuǎn)端版本,重新提交之前更新內(nèi)容。 -
- 如何避免沖突:先pull,(更新代碼),再push
Jenkins
- java編寫的,必須安裝JDK (JAVA SE8)自動(dòng)裝下面兩個(gè)環(huán)境
jdk java開發(fā)環(huán)境
jre java運(yùn)行環(huán)境
java -version
Windows需要配置環(huán)境變量
系統(tǒng)變量->java\jdk1.8.x_xx\bin
- 安裝Jenkins
注意必須安裝到用戶主目錄下,且只有一個(gè).jenkins/目錄,不允許兩層.jenkins嵌套
創(chuàng)建一個(gè)層級不深的目錄,放入jenkins.war,便于啟動(dòng)方便
java -jar jenkins.war
#注意不要用鼠標(biāo)點(diǎn)擊終端內(nèi)部;使用jenkins過程中不能關(guān)閉終端,否則服務(wù)終止
java -jar jenkins.war --httpPort=8889
瀏覽器中輸入http://localhost:8080 不要勾選保持登陸狀態(tài)
默認(rèn)用戶名密碼是admin 123456
如果長時(shí)間訪問失效,關(guān)閉終端,更換端口重新啟動(dòng)服務(wù)。
jenkins左邊菜單欄->manage jenkins->manage plugins->可選插件->插件名稱html publisher 這個(gè)必須安裝
- 配置系統(tǒng)郵箱
登陸163郵箱->設(shè)置->POP3/SMTP/IMAP->開啟
啟動(dòng)jenkins服務(wù)器,http://localhost:8080進(jìn)入,
左側(cè)邊欄->manage jenkins->configure system進(jìn)入系統(tǒng)配置界面->Jenkins location將郵箱地址改成自己的163郵箱
->下拉頁面,找到extended email notification->高級->username填郵箱,password寫163郵箱授權(quán)碼
->下拉到底部,郵箱通知->高級->同樣填入用戶名和密碼(依然是授權(quán)碼)->保存
postman集成jenkins
- 打開已完成且測試無誤的postman項(xiàng)目,再次執(zhí)行測試
- 導(dǎo)出測試用例集、環(huán)境變量兩個(gè)文件,不支持中文,需要全部改成英文
- 終端打開,執(zhí)行無誤,查看newman生成的測試報(bào)告文件
#注意是htmlextra 不是html 多年之前已經(jīng)停止維護(hù)了
newman run 測試集文件 -e 環(huán)境變量文件 -d 測試數(shù)據(jù)文件 -r htmlextra --reporter-htmlextra-export report.html
#run xx.json 執(zhí)行測試集文件
#-r 生成測試報(bào)告類型
#--reporter-html-export path存放路徑
# -d -e是非必需的
- 使用jenkins管理 手動(dòng)構(gòu)建
jenkins->新建item->freestyle project->創(chuàng)建成功,
進(jìn)入該項(xiàng)目->構(gòu)建->增加構(gòu)建步驟->windows選execute windows batch command,mac選execute shell->在這框中加入剛剛能成功運(yùn)行的newman命令
->增加“構(gòu)建后操作”->選publish html reports->新增reports,這里面的index pages中的.html文件命名應(yīng)當(dāng)與newman命令中生成的.html名一致->應(yīng)用+保存
進(jìn)入該項(xiàng)目,左側(cè)邊欄出現(xiàn)build now點(diǎn)擊就可以出現(xiàn)測試報(bào)告,如果有失敗測試用例,本次build最前面的圖標(biāo)為紅色
點(diǎn)擊構(gòu)建好的結(jié)果,進(jìn)入頁面->控制臺輸出,可以看到execute設(shè)置的命令(這里就是newman run)執(zhí)行過程的調(diào)試信息
如何找到這個(gè)生成的測試報(bào)告?點(diǎn)擊工程項(xiàng)目頁左邊邊欄會出現(xiàn)生成的測試報(bào)告title
- 使用jenkins管理 自動(dòng)構(gòu)建
設(shè)置定時(shí),時(shí)間到則jenkins自動(dòng)執(zhí)行測試用例+build。
配置-> 構(gòu)建觸發(fā)器 ->build periodically-> 日程表【格式:分 時(shí) 日 月 年,不指定的就用*代替,如40 16 * * *表示每天16:40執(zhí)行】 - 報(bào)告顯示不正常的原因
jenkins避免受到惡意攻擊,設(shè)置安全策略CSP,只允許加載jenkins服務(wù)器上托管的css文件和圖片文件。如果不擔(dān)心被惡意攻擊,可以繞過安全策略。
#啟動(dòng)時(shí)添加一個(gè)參數(shù)即可
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar Jenkins.war
#啟動(dòng)之后之前生成的報(bào)告還是原樣,新生成的報(bào)告會有變化
代碼集成jenkins
- 前提:將無問題的項(xiàng)目代碼上傳到gitee/github
-手動(dòng)構(gòu)建
步驟:跟之前的步驟差不多,這里只提不同的地方:
構(gòu)建->源碼管理->Git->添加倉庫URL
構(gòu)建->增加構(gòu)建步驟->命令改成python run_suite.py (項(xiàng)目全局執(zhí)行入口文件)
->“構(gòu)建后操作”增加,同樣index pages里面.html名稱要跟run_suite.py里的.html命名相同;項(xiàng)目代碼中要求報(bào)告放在/report目錄下,則HTML directory to archive 填寫report(目錄名)
->繼續(xù)增加構(gòu)建后操作步驟,editable email notification。project recipient list直接在默認(rèn)后面加逗號分隔符,放收件人的郵箱;content-type選擇郵件內(nèi)容類型;default content設(shè)置郵件內(nèi)容樣式,可參考html格式模版;
->advanced settings,triggers如果默認(rèn)設(shè)置不采用點(diǎn)擊右上角紅叉?,add trigger->always成功失敗都發(fā)送
后續(xù)同理,點(diǎn)擊build now就完成了手動(dòng)構(gòu)建
- 自動(dòng)構(gòu)建
-
- 生成報(bào)告觸發(fā)器 :同樣,配置->構(gòu)建觸發(fā)器 build periodically
-
- 另一種觸發(fā)器,檢查gitee上的代碼是否有更新
配置->構(gòu)建觸發(fā)器->poll SCM->也是5個(gè)*的設(shè)置多久檢查一次,數(shù)字前面加’/'表示隔多久檢查一次,如*/1 * * * *
表示每1分鐘檢查一次
只要代碼發(fā)生變化,到時(shí)間build history就會增加一條
- 另一種觸發(fā)器,檢查gitee上的代碼是否有更新