摘要:最近研發的需求量漲了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入門學習賽·探險尋寶之旅