天天看點

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

概述

持續內建是什麼?

典型的工作流程包括以下幾個步驟:開發-送出-編譯-測試-釋出持續內建是一個開發的實踐,需要開發人員定期內建代碼到共享存儲庫。持續內建要求開發人員有頻繁的建構。最常見的做法是,每當一個代碼送出時,建構應該被觸發。

Jenkins是什麼?

是一個獨立的開源軟體項目,是基于Java開發的一種持續內建工具,用于監控持續重複的工作,旨在提供一個開放易用的軟體平台,使軟體的持續內建變成可能。

Jenkins的作用

Jenkins會自動運作你的編譯腳本,編譯成功後,再運作你的測試腳本,這一步成功後,接着它會幫你把新程式釋出出去,特别的,在最後一步,你可以選擇手動釋出,或自動釋出,畢竟釋出這件事情,還是需要人為的确認一下比較好。簡而言之:Jenkins可以幫你在寫完代碼後,一鍵完成開發過程中的一系列工作。Jenkins的好處顯而易見,它減少了你的重複勞動。更重要的是,一個團隊的開發流程一開始是不一緻的,不一緻往往會帶來各種各樣的問題,最終展現在軟體的品質或開發效率不夠高,而Jenkins會幫你規範大家的行為,進而避免一系列的問題。 Jenkins的特點開源免費跨平台,支援所有的平台web形式的可視化的管理頁面安裝配置超級簡單內建插件多jenkins的作用和它的圖示表現出來的一樣,就是為了做工作的時候,能夠比較輕松,像一個紳士一樣遊刃有餘

Jenkins環境搭建

https://jenkins.io/  jenkins官網預設情況下,最新版本和長期支援版本可供下載下傳,點選下載下傳區長期支援版本頁籤點選連結下載下傳Jenkins.war 檔案安裝jdk,配置環境變量(步驟省略)在指令提示符下,到下載下傳Jenkins.war 檔案的目錄,輸入: java -jar jenkins.war --httpPort=8080在浏覽器中輸入:http://localhost:8080 通路jenkins首頁根據提示,打開:X:\Jenkins\secrets\initialAdminPassword 檔案檢視密碼。将密碼填寫到輸入框中,點選 “Continue” 按鈕接下來,根據提示安裝,Jenkins 會幫我們安裝各種主流插件最後一步,建立管理者賬号,一定要記住,jenkins安裝配置就完成了啟動Jenkins通路 Jenkins http://localhost:8080

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

登入jenkins管理者賬号

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

Jenkins配置  

系統管理(隻配置我們自動化測試規範需要用到的項)系統設定全局安全配置工具配置插件管理節點管理使用者管理 系統設定執行者數量配置,主要用來設定每次建構執行最多可以執行多少個建構Jenkins URL: jenkins伺服器通路的位址Extended E-mail Notification郵件服務的配置 全局安全配置是否允許使用者注冊  根據實際情況進行配置使用者授權政策,使用安全矩陣,使用者登入到jenkins中可以進行那些操作取消防止跨站點請求僞造 全局工具配置Maven、Jdk、Gradle、Groovy、Ant、Docker預設Git配置,輸入自己系統git安裝的目錄:如:D:\Program Files\Git\bin\git.exe 插件管理安裝、更新、解除安裝jenkins插件(所有需要到的插件都在這裡下載下傳) 節點管理如建構提示,沒有找到XXX,節點中必需配置環境變量

Jenkins目錄說明  

每次建構的代碼(工作空間)目錄:工作空間windows在:X:\jenkins\workspace在jenkins目錄下的workspace中是不同任務的工作空間 每次建構配置、曆史建構目錄:建構配置、曆史建構在:D:\jenkins\jobs在jenkins目錄下的jobs中是不同任務的建構配置和建構曆史 Jenkins賬号目錄:Jenkins賬号在:D:\jenkins\users在jenkins目錄下的users中是jenkins的賬号資訊 Jenkins插件目錄:Jenkins插件在:D:\jenkins\plugins在jenkins目錄下的plugins中是jenkins的插件 Jenkins日志目錄:Jenkins日志在:D:\jenkins\plugins在jenkins目錄下的logs中是jenkins的日志

Jenkins建構  

Jenkins部署自動化測試腳本思路gitlab->pull(其他操作)->webHook(監聽到)->觸發(jenkins建構操作)->jenkins建構->pull 指定項目->建構腳本->完成。

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

Jenkins的三種部署方式: jenkins觸發式建構:開發人員push代碼或者合并代碼到gitlab項目的某個分支,jenkins就部署代碼到對應伺服器。 jenkins參數化建構:開發人員push代碼或者合并代碼到gitlab項目的某個分支之後,并不會部署代碼,而是需要登入到jenkins的web界面,點選建構按鈕,傳入對應的參數(比如參數需要建構的tag,需要部署的分支)然後才會部署。 jenkins定時建構:定時建構是在參數化建構的基礎上添加的,設定定時建構指定的任務。

Jenkins任務  

建立任務(執行個體講解)例:jenkins建構一個任務,實作gitlab有代碼送出,jenkins自動進行建構,把gitlab最新代碼拉取到jenkins伺服器,并把最新代碼同步到不同建構的工作空間,并自動配置測試和沙盒環境不同的配置變量。1、輸入任務名稱2、選擇建構一個自由風格的軟體項目3、點選确認任務就建立好了 配置任務1、general任務描述:選填丢棄舊的建構:設定所有建構保留的天數,最大建構的個數2、源碼管理我們使用gitlab進行源碼管理Repository URL:添寫gitlab中自動化測試項目的位址http://git.comjia.com:8888/testteam/AutomationTest.gitCredentials:添加一個jenkins全局使用者(全局使用者建立)[email protected] Specifier (blank for ‘any‘):選擇分支:*/development源碼庫浏覽器:自動3、建構觸發器需要下載下傳插件:gitlab的插件:GitlabHook Plugin和gitlab

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

勾選:Build when a change is pushed to GitLab.GitLab webhook URL: http://101.200.57.228:8080/project/PullAutomationTestGitlab發生更改時将更改推送,GitlabWebhook網址Enabled GitLab triggers:已啟用Gitlab觸發器勾選:Push Events 推送事件勾選:Opened Merge Request Events打開的合并請求事件Rebuild open Merge Requests:重新生成打開的合并請求,選擇neveron push to source branch(推到源分支時)on push to source or target branch(推到源分支或目标分支時)勾選:Approved Merge Requests (EE-only) 已準許的合并請求(僅限EE)勾選:Comments 注釋Comment (regex) for triggering a build:用于觸發生成的注釋(regex)勾選:Enable [ci-skip]:啟用[CI跳過]勾選:Ignore WIP Merge Requests:忽略WIP合并請求勾選:Set build description to build cause(eg. Merge request or Git Push ) 将生成描述設定為生成原因(例如合并請求或gitpush)Allowed branches 允許的分支選擇:Allow all branches to trigger this job 允許所有分支觸發此作業勾選:GitHub hook trigger for GITScm polling 用于gitscm輪詢的github hook觸發器在gitlab設定webhook打開gitlab,找到對應的project,打開Settings,進入到Web hooks,在URL處填寫jenkins上的URL:http://101.200.57.228:8080/project/PullAutomationTest點選add webhook就可以啦

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

通過url去觸發生成一個随機的token,可以用opensslrand -hex 12,直接生成,或者自己指定也行在jenkins上面配置,在建構觸發器選擇觸發遠端建構,然後把生成的token寫上

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

4、建構環境可以不配置任何資訊5、建構添加建構步驟-執行windows批處理執行windows批處理指令:D:cd D:\jenkins\workspace\PullAutomationTestxcopy *.* /e /yD:\jenkins\workspace\runFrontendTestStayPhone\xcopy *.* /e /yD:\jenkins\workspace\runJuliApiTestCase\xcopy *.* /e /yD:\jenkins\workspace\runFrontendSandboxStayPhone\pythonD:\jenkins\workspace\runFrontendSandboxStayPhone\testMethods\jenkinsEditFile.pycdD:\jenkins\workspace\runFrontendSandboxStayPhonexcopy *.* /e /yD:\jenkins\workspace\runJuliApiSandboxCase\cd ..儲存,執行建構即可

Jenkins執行UI自動化腳本

自動化測試處于Devops中的一環,自動化測試的職責主要是負責冒煙測試以及回歸測試和功能測試,包括性能測試。Devops:DevOps:Development和Operations的組合可以把DevOps看作開發(軟體工程)、技術營運和品質保障(QA)三者的交集。詳細檢視:https://baike.baidu.com/item/devops/2613029?fr=aladdin

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

建立任務(執行個體講解)例:jenkins建構一個任務,實作在Jenkins中可視化執行指定工作空間的Web自動化測試腳本,腳本執行完成生成可視化測試報告,報告發送郵件、報告在每次建構中展示,每次建構完成顯示每次建構的人員,并郵件、釘釘通知建構結果1、輸入任務名稱2、選擇建構一個自由風格的軟體項目3、點選确認任務就建立好了 配置任務1、general任務描述 選填丢棄舊的建構,設定所有建構保留的天數,最大建構的個數2、源碼管理  選擇無3、建構觸發器選擇:Build when job nodes start 在建構開始的時候觸發(插件:Build User Vars Plugin),在下面就可以配置建構人的資訊了Restricted node Label 受限節點标簽  不輸入Quiet period 當為0時停止4、建構環境勾選:Set jenkins user build variables 設定Jenkins使用者建構變量5、建構添加建構步驟-執行windows批處理執行windows批處理指令:pythonD:\jenkins\workspace\runFrontendTestStayPhone\runFrontendTestStayPhone.py添加建構步驟-Update build name勾選:Read from file   Build name file path預設version.txt勾選:Use macro 使用宏 Build name macro template 生成宏模闆#${BUILD_NUMBER} - 本次建構人:${BUILD_USER} Variable Description變量描述BUILD_USER Full name (first name + lastname) BUILD_USER_FIRST_NAME  First nameBUILD_USER_LAST_NAME  Last nameBUILD_USER_ID  Jenkins user IDBUILD_USER_EMAIL  Email address添加建構步驟-執行windows批處理Execute system Groovy script 執行系統groovy腳本(添加:Groovy插件)groovy command Groovy指令Groovy Script:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")作用防止jenkins設定了一些安全政策,阻止css、js顯示建構後操作增加建構後操作步驟-Publish HTML reportsPublish HTML reports 釋出HTML報告HTML directory to archive 要存檔的HTML目錄report/frontend/   工作空間-任務目錄下的報告目錄Index page[s] 索引頁[S]report.html 報告名稱Report title 報表标題HTML Report勾選:Keep past HTML reports保留過去的HTML報告勾選:Always link to last build始終連結到上一個生成勾選:Allow missing report允許丢失報告Include files 包含檔案**X  在指定M~N範圍内或整個有效區間内每隔X建構一次 A,B,...,Z        比對多個值H 表示随機

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署

舉例:第一個是代表分鐘 (0~59) H 表示随機12 * 每個小時的第12分鐘都建構一次H/5 * 每隔5分鐘建構一次H(1~23) 每個小時裡的 1到23分鐘的随機一個點觸發第二個是代表小時(0~23)H 6-18/2 * 上午6點到下午六點期間的每隔2個小時 建構一次H H/2 *每隔2小時建構一次第三個是代表天**任意一天20 16 15 每個月的15号下午16點20分建構一次第四個是代表月份(1~12)H/3 12 H(1-6) * 1到6月裡随機的某個月的12号每隔3小時建構一次第五個是代表星期(0~7) 0和7代表周日H/30 10-20/2 5-30 10 1-5 每10月份的5号到30号周一到周五的 10點到20點每隔2.5個小時觸發一次任務-建構觸發器-定時建構-日程表

gitlab 不打tag怎麼檢視随機tag_Jenkins&Gitlab實作自動化測試腳本部署
字段 * * * * *
含義 分鐘 小時 日期 月份 星期
取值範圍 0-59 0-23 1-31 1-12 0-7
示例
每隔15分鐘執行一次 H/15 * * * *
每隔2個小時執行一次 H/2 * * *
每隔3天執行一次 H H/3 * *
每隔3天執行一次(每月的1-15号) H 1-15/3 * *
每周1,3,5執行一次 H * * 1,3,5
規則
指定時間範圍 a-b
指定時間間隔 /
指定變量取值 a,b,c

以上就是Jenkins&Gitlab實作自動化測試腳本部署 的知識,大家學到了嗎,歡迎點贊、評論、打賞作者,更多知識點将在後續繼續分享學習。

繼續閱讀