身為一位工程師就是要能終身自我學習
Sometimes也會被公司強制學習某些東西….
任職的公司re-org做出許多新改革
也因應科技業對於SaaS(Software as a Subscription)大環境的趨勢
在研發與測試上發展了許多新Team
雖然才開始作為開發測試工程師工作半年
也不小心成為被轉移的一位成員@_@
進入了新Team 從前的框架就得拋諸腦後XD
來迎接新框架與流程
因此….
要來自學如何在Azure DevOps中撰寫自己的Test Case做到CI/CD
接下來就會有一連串的Azure DevOps學習筆記…
首先呢!
工欲善其事 必先利其器
Azure是Microsoft Online Services的一部分
可以把它想像成AWS一樣的雲端託管服務中心
可用於分析、虛擬伺服器計算、儲存和網路
它可以用於替換或補充您的本地伺服器資源
最重要的是這種雲服務是用多少付多少 (Pay-As-You-Go)的概念
Costdown~~~~
Azure DevOps主要會使用到上圖的這些工具~~~
這邊主要會以Piplines建置VM這塊來做介紹
一開始先介紹一下Azure Devops主要的Service
Artifacts, Library, Pipelines, Release, Task Group, Agent Pool, Deployment Group, Test Runs
Artifacts
整個CI/CD的流程主要是由Artifacts觸發
可以做到package management
如果Artifacts上的package有任何變動的時候
就會觸發一個Pipelines測式或是一個Release
用這樣的方法控制一條Pipelines要不要啟動
Artifacts可以幫Package上Tags: Local>PreRelease>Release
利用Tags來漸進式的做測試
Pipelines
有用過舊版本Ui的人應該有發現
Azure pipelines下的Build被改成pipelines
pipelines主要是幫你Build package
而Release則是做其他的測試 例如:unit test
以執行單位來說由大到小一個Pipelines裡面包含
Stage>Job(agent-side)>Steps>Task(ex:run script, PowerShell)
以流程面來說當一個Pipelines被啟用後
Pipelines job就會去Azure agent pool找所有的agent run jobs
而agent的狀態會由get ready>run job裡的每個step
並將其結果回傳
每個Release的Stage都可以設定approval 讓某些重要的人確認可以進到下個階段
另一個隸屬於Release的是Gates 可以利用Gate去query其他component的狀態
來決定要不要往下做
Library
可以先定義好並儲存參數的地方
Pipelines或是Release都可以從這邊用$(variable_name)吃到Library的group參數
Agent Pool
為了免費使用所以務必選擇Self-hosted agent
在Agent pools中可以設定不同的agent幫助你做CI
Deployment Group
當你要將Test分群的時候就可以用之
將同一個Tags的Test assin在一起
Test Runs
把跑完的結果轉成junit or nunit的format就可以利用publish task result包成漂亮的圖表結果
還能通知到指定的群組