Azure DevOps 是一個微軟提供的 End to End 的軟體開發工具。從需求管理到最後面的 Test 或者 Artifact 管理涵蓋了這個軟體開發的生命週期。
我曾經有幾個影片介紹過 Azure DevOps 裡面和 Test 有關的功能:
前陣子有人問我,如果需要刪掉 Test Plan 裡面的 Test Result 可以怎麼做到這件事?
去查了一下,微軟沒有開放操作界面做這件事,不過有提供 API。所以是可以達成。
雖然說這篇主要是針對 Azure DevOps Test Result 進行操作,但是一樣的概念可以用作於想透過 API 來管理 Azure DevOps 但是不知道怎麼做(例如自動化抓資料來產生績效報表),那這篇也可以節省你一些研究時間。
執行順序
- 先抓出要刪除的 Test Result Id
- 準備好要打 API 的 token
- 執行刪除的 API
先抓出要刪除的 Test Result Id
假設我們要刪除的那個 Test Result 的那筆資料如下
API 需要有 3 個參數:
-
organization
- Azure DevOps 的組織名稱。會是網址 Host 的一部分。 -
project
- 專案的名稱 -
runId
- 測試結果的 Id
這 3 個參數可以從結果那頁看到:
以上面的範例來說:
-
organization
就是:alantsai-sample
-
project
就是:TestPlanProject
- runId 就是:
1000028
準備好要打 API 的 token
- 先點右上角帳號頭像左邊的人像 icon
- 找到倒數第二個的 Personal access tokens - 也可以簡稱為 PAT
- 選擇
New Token
- 輸入自己會記得的名臣到
Name
- 在
Scopes
的部分選擇Test Management => Read & write
- 選擇
Create
這邊還可以設定多久會失效等。越短越好哦。或者用完之後刪掉 PAT。
下個畫面會看到一組亂碼,就是 PAT 碼。
記得把它存下來。
記得不要把 PAT 給別人,不然別人可以做和你一樣的操作 如果這邊沒有儲存下來,那麼就要建立新的 PAT
執行刪除的 API
要執行的 API 是這個:Runs - Delete
我們可以用這個工具協助我們:hoppscotch
API 的網址是:DELETE https://dev.azure.com/{organization}/{project}/_apis/test/runs/{runId}?api-version=6.0
只要 {}
這種的都要替換成為我們上面得到的值,以我的為例就是:
DELETE https://dev.azure.com/alantsai-sample/TestPlanProject/_apis/test/runs/1000028?api-version=6.0
- 先選擇到
DELETE
- 把上面組出來那個網址放進去
- 選擇
Authorization
這個 Tab - 把
Authorization Type
改成Basic Auth
- 把登入用的帳號輸入進去
- 把稍早 PAT 的內容輸入裡面的輸入框作為密碼
最後我們可以按網址旁邊的 Send
去做執行
- 點下
Send
這個按鈕 - 會看到下面回傳結果是
204
代表有執行成功
回到 Azure DevOps 會看到結果不見了
注意:刪掉之後就不見了哦。最好先拿一些不重要的測試看看。
結語
這篇主要介紹了如何透過 API 的方式來達到刪除 Azure DevOps 的 Test Result。
如果和 Azure DevOps 的互動想要自動化並且節省一些時間,那麼透過 API 是一個最好的方式。這篇取得 PAT 等方式都是適用,剩下只是研究一下想做的事情的 API 怎麼呼叫而已。
如果用 Azure DevOps 來管理單子,那麼只要規則訂好績效報表可以用自動化產出,或許就可以剩下你非常多時間哦。
如果你有什麼用法歡迎留言分享哦。