【API進階之路】研發需求突增3倍,測試團隊集體鬧離職
摘要:最近研發的需求量漲了3倍,開發團隊拼命趕進度,可苦了測試團隊。
本以為從一線研發轉管理後會清閒一些,但是沒想到,我還要充當救火隊員的角色。
到了第四季度,各業務部門都在憋著勁兒衝業績,畢竟這跟年終獎可是息息相關的事兒。業務部門衝業績,帶動著研發的需求不斷增加,這個部門說想要提前上線,那個部門說要臨時加個需求,研發只能說我們得按排期來,這句話平時可能好使,可一旦需求和業績相關,那研發就要火力全開,排期什麼的就得靠邊站了。
最近研發的需求量漲了3倍,開發團隊拼命趕進度,卻苦了測試團隊。原本測試團隊就人少壓力大,現在需求漲了,測試人員卻沒增加,測試主管帶著幾個同事找到老闆,說再這樣下去真是幹不了了。
沒有測試可還行?這可急壞了老闆,臨時招人也來不及。他喊我過去商量,看有沒有辦法解決。老闆的意思是希望我能夠去帶一帶測試團隊,給大家緩解下壓力。但是吧,加上我一個人也解決不了什麼問題呀,這可怎麼辦?
經過分析,我們發現測試的壓力來自2個方面:一方面是要上線的專案集中爆發;另一方面是開發在趕進度,交付質量有所降低,再加上微服務架構下專案單元變多,測試的工作量也成倍增長。得想個辦法從根本上解決這些問題。
琢磨了一個晚上,我給老闆提交了一份方案:把原先寫的測試用例註冊到華為雲一站式雲端測試平臺——雲測(CloudTest)上,使用雲測API進行測試用例管理、介面測試等,提高測試效率,保障專案高質量支付。
使用華為云云測API也比較容易,具體步驟如下。
一、TestHub服務操作
TestHub服務操作包括:新測試型別服務註冊到雲測、使用者獲取自己當前已經註冊的服務。
1、確定呼叫API鑑權時使用的Token,獲取響應Header引數中X-Subject-Token對應的值。
2、確定Testhub服務名稱及使用者服務域名並註冊。
介面相關資訊:URL格式-POST /v1/services
請求示例:傳送一條POST請求。
POST: https://{endpoint}/v1/services
{ "service_name" : "這是一個測試型別名稱", "server_host" : "https://xxx.xxx.xxx" }
響應示例
{
"service_name" : "這是一個測試型別名稱",
"service_id" : 13
}
3、確定Testhub服務已被註冊成功。
介面相關資訊:URL格式- GET /v1/services
請求示例:傳送一條GET請求。
GET:https://{endpoint}/v1/services
響應示例:獲取到返回的註冊資訊即證明使用者已註冊成功。
{
"services" : [ {
"id" : 13,
"name" : "這是一個測試型別名稱"
} ]
}
二、用例操作
用例操作包括:建立測試用例、更新測試用例、獲取測試用例詳情、批量執行用例介面、批量更新測試用例結果。
1、確定呼叫API鑑權時使用的Token,獲取響應Header引數中X-Subject-Token對應的值。
2、建立新的測試用例。
介面相關資訊:URL格式-POST /v1/projects/{project_id}/testcases
請求示例:傳送一條POST請求。
POST: https://{endpoint}/v1/projects/{project_id}/testcases
{
"name" : "testcaseXXX",
"service_id" : 13,
"rank_id" : "2",
"testcase_number" : "1234",
"extend_info" : {
"description" : "這是一條描述資訊",
"preparation" : "這是一條前置條件xxxxxx",
"steps" : [ {
"expect_result" : "<ol class=\"ordered\"><li class=\"ordered\"><span>結果一</span></li><li class=\"ordered\"><span>結果二</span></li></ol><p><br /></p>",
"test_step" : "<p>步驟一</p>"
} ],
"label_list" : [ "標籤一", "標籤二" ],
"module_id" : "b66aab5469cc4ab39b0dda8e644a42a4",
"test_version_id" : "8.1.2",
"fix_version_id" : "8.2.0.1",
"assigned_id" : "b66aab5469cc4ab39b0dda8e644a42a4",
"issue_id" : "b66aab5469cc4ab39b0dda8e644a42a4"
}
}
響應示例
{
"testcase_id" : "efdb403066474ab08836b9eeaaa23bca",
"project_id" : "aswe4w5ty4032344tgse345eeaaa23bc",
"service_id" : 13,
"name" : "這是一個測試計劃名稱",
"testcase_number" : "1234",
"rank_id" : "2",
"status_id" : "0",
"assigned_user" : {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx"
},
"execute_count" : 3,
"result_id" : "0",
"extend_info" : {
"author" : {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx",
"time" : "2020-06-09 16:55:57"
},
"updator" : {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx",
"time" : "2020-06-09 16:55:57"
},
"domain" : {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx"
},
"description" : "這是一條描述資訊",
"preparation" : "這是一條前置條件xxxxxx ",
"steps" : [ {
"expect_result" : "<ol class=\"ordered\"><li class=\"ordered\"><span>結果一</span></li><li class=\"ordered\"><span>結果二</span></li></ol><p><br /></p>",
"test_step" : "<p>步驟一</p>"
} ],
"label_list" : [ {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx"
} ],
"defect_list" : [ {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx"
} ],
"module" : {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx"
},
"issue" : {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx"
},
"test_version_id" : "string",
"fixed_version" : {
"id" : "efdb403066474ab08836b9eeaaa23bca",
"name" : "name_xxxxxx"
}
}
}
3、確定用例建立成功且無需修改後,可執行用例並更新用例結果。
介面相關資訊:URL格式-POST /v1/projects/{project_id}/testcases/execution
請求示例:傳送一條POST請求。
POST: https://{endpoint}/v1/projects/{project_id}/testcases/execution
{
"service_id": 13,
"plan_id": "b66aab5469cc4ab39b0dda8e644a42a4",
"execute_list": [
{
"testcase_id": "b66aab5469cc4ab39b0dda8e644a42a4",
"execute_id": "efdb403066474ab08836b9eeaaa23bca",
"result_id": "0",
"start_time": 2020-06-2218: 11: 54
}
]
}
響應示例
{
"error_code" : "CLOUDTEST.000XXXXXX",
"error_msg" : "失敗原因XXXXX",
"error_detail" : {
"failed" : [ {
"error_code" : "CLOUDTEST.000XXXXXX",
"error_msg" : "失敗原因XXXXX",
"testcase_id" : "efdb403066474ab08836b9eeaaa23bca"
} , {
"error_code" : "CLOUDTEST.000XXXXXX",
"error_msg" : "失敗原因XXXXX",
"testcase_id" : "251fca07b22f493692eb06b1754f07a8"
}]
}
}
4、等待用例指令碼執行完畢後,需要呼叫介面將執行結果通過介面返回到Testhub服務同步資料。
介面相關資訊:URL格式-POST /v1/projects/{project_id}/testcases/result
請求示例:傳送一條POST請求。
POST:https://{endpoint}/v1/projects/{project_id}/testcases/result
{
"service_id": 13,
"execute_list": [
{
"testcase_id": "b66aab5469cc4ab39b0dda8e644a42a4",
"execute_id": "efdb403066474ab08836b9eeaaa23bca",
"result_id": "0",
"end_time": 2020-06-23 18: 11: 54,
"duration": 120,
"description": "這是一條備註資訊"
}
]
}
響應示例
{
"error_code" : "CLOUDTEST.000XXXXXX",
"error_msg" : "失敗原因XXXXX",
"error_detail" : {
"failed" : [ {
"error_code" : "CLOUDTEST.000XXXXXX",
"error_msg" : "失敗原因XXXXX",
"testcase_id" : "efdb403066474ab08836b9eeaaa23bca"
} , {
"error_code" : "CLOUDTEST.000XXXXXX",
"error_msg" : "失敗原因XXXXX",
"testcase_id" : "251fca07b22f493692eb06b1754f07a8"
}]
}
}
通過雲測平臺,測試效率、交付質量都得到了提升,測試團隊再也沒人提離職了。
瞭解更多華為雲API資訊:“免費下載創新加速利器《華為雲API精選手冊》
——活動推薦——
華為雲已經成為全球主要雲服務供應商,在華為雲上開放了2400+ API,包括計算、儲存、網路、應用服務、軟體開發服務、視訊、資料庫、EI智慧等74+產品,如何利用這些豐富強大的API快速開發自己的應用和服務,成為大家關注的熱點。
華為雲API學習賽,為入門初學者量身定製的學習平臺,以賽帶學,學以致用。無需程式碼,只需下載體驗模板,按操作文件操作即可完成作品。參賽、邀請都有豐富獎品,還有機會拿P40 5G手機超級激勵!!
API入門學習賽·AI人臉識別
API入門學習賽·探險尋寶之旅