1. 程式人生 > 實用技巧 >【API進階之路】研發需求突增3倍,測試團隊集體鬧離職

【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入門學習賽·探險尋寶之旅

點選關注,第一時間瞭解華為雲新鮮技術~