
# 外部系统更新测试用例 - UpdateCase
#### 功能介绍
此接口用于外部系统调用,在指定项目下对指定测试用例进行更新操作,并返回更新后的用例详情数据
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-testman/cloudtest_03_2000.html)。
#### URI
PUT /v4/testhub/projects/{project_id}/testcases/{testcase_id}
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                        |
|:---|:---|:---|:---|
| project_id  | 是    | String | 项目UUID，项目唯一标识，固定长度32位字符（字母和数字）。获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-testman/cloudtest_03_4003.html)。                                                       |
| testcase_id | 是    | String | **参数解释**: 用例id **获取方法**： GET /v4/projects/{project_id}/testcases/{testcase_uri} |
   
#### 请求参数
表2请求Body参数 
| 参数              | 是否必选 | 参数类型                                                                         | 描述               |
|:---|:---|:---|:---|
| name            | 是    | String                                                                       | 用例名称             |
| service_id      | 是    | Integer                                                                      | 服务类型，仅支持自定义的执行方式 |
| rank_id         | 否    | String                                                                       | 用例等级ID           |
| testcase_number | 否    | String                                                                       | 用例编号             |
| version_uri     | 否    | String                                                                       | 版本URI            |
| extend_info     | 否    | [ExternalServiceBizCase] object | 用例扩展信息           |
   
 表3ExternalServiceBizCase 
| 参数              | 是否必选 | 参数类型                                                                                     | 描述                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| assigned_id     | 否    | String                                                                                   | **参数解释**: 处理者id信息，长度0-32位 **约束限制**: 不涉及 **取值范围**: 0-32位字符 **默认取值**: 不涉及                                |
| defect_id_list  | 否    | Array of strings                                                                         | **参数解释**: 缺陷id信息，数组长度小于50个 **约束限制**: 不涉及 **取值范围**: 数组长度小于50 **默认取值**: 不涉及                              |
| description     | 否    | String                                                                                   | **参数解释**: 测试用例描述信息，长度为\[0-20000\]位字符 **约束限制**: 不涉及 **取值范围**: 0-500位字符 **默认取值**: 不涉及                    |
| fix_version_id  | 否    | String                                                                                   | **参数解释**: 迭代号，长度为\[0-32\]位字符 **约束限制**: 不涉及 **取值范围**: 0-32位字符 **默认取值**: 不涉及                             |
| issue_id        | 否    | String                                                                                   | **参数解释**: 用例关联的需求id信息，长度为\[0-32\]位字符 **约束限制**: 不涉及 **取值范围**: 0-32位字符 **默认取值**: 不涉及                     |
| label_list      | 否    | Array of strings                                                                         | **参数解释**: 标签名称列表，数组长度小于25 **约束限制**: 不涉及 **取值范围**: 数组长度小于25 **默认取值**: 不涉及                               |
| module_id       | 否    | String                                                                                   | **参数解释**: 模块号，长度为\[0-32\]位字符 **约束限制**: 不涉及 **取值范围**: 0-32位字符 **默认取值**: 不涉及                             |
| preparation     | 否    | String                                                                                   | **参数解释**: 执行该测试用例时需要满足的前置条件，长度为\[0-500\]位字符 **约束限制**: 不涉及 **取值范围**: 0-500位字符 **默认取值**: 不涉及             |
| status_id       | 否    | String                                                                                   | **参数解释**: 测试用例状态信息，（0-新建，5-设计中，6-测试中，7-完成） **约束限制**: 不涉及 **取值范围**: 0-新建，5-设计中，6-测试中，7-完成 **默认取值**: 不涉及 |
| steps           | 否    | Array of [ExternalServiceCaseStep] objects | **参数解释**: 测试步骤，数组长度小于等于100 **约束限制**: 不涉及 **取值范围**: 数组长度小于10 **默认取值**: 不涉及                              |
| test_version_id | 否    | String                                                                                   | 测试版本号，长度为\[1-64\]位字符                                                                                                                                                                                                                                                                                                     |
   
 表4ExternalServiceCaseStep 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| expect_result | 否    | String | **参数解释**: 测试用例预期结果信息 **约束限制**: 不涉及 **取值范围**: 0-20000位字符 **默认取值**: 不涉及 |
| test_step     | 否    | String | **参数解释**: 测试步骤描述信息 **约束限制**: 不涉及 **取值范围**: 0-20000位字符 **默认取值**: 不涉及   |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数              | 参数类型    | 描述      |
|:---|:---|:---|
| testcase_id     | String  | 用例id    |
| project_id      | String  | 项目ID    |
| service_id      | String  | 服务类型    |
| name            | String  | 名称      |
| testcase_number | String  | 用例编号    |
| rank_id         | String  | 用例等级    |
| status_id       | String  | 用例状态    |
| execute_count   | Integer | 用例结果数   |
| result_id       | Integer | 用例结果    |
| assigned_user   | String  | 用例处理人信息 |
| extend_info     | Object  | 用例扩展信息  |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                         |
|:---|:---|:---|
| error_code | String | **参数解释** 接口调用失败错误码 **取值范围** 不涉及  |
| error_msg  | String | **参数解释** 接口调用失败错误信息 **取值范围** 不涉及 |
   
**状态码：401**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                         |
|:---|:---|:---|
| error_code | String | **参数解释** 接口调用失败错误码 **取值范围** 不涉及  |
| error_msg  | String | **参数解释** 接口调用失败错误信息 **取值范围** 不涉及 |
   
**状态码：404**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                         |
|:---|:---|:---|
| error_code | String | **参数解释** 接口调用失败错误码 **取值范围** 不涉及  |
| error_msg  | String | **参数解释** 接口调用失败错误信息 **取值范围** 不涉及 |
   
**状态码：500**
表9响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                         |
|:---|:---|:---|
| error_code | String | **参数解释** 接口调用失败错误码 **取值范围** 不涉及  |
| error_msg  | String | **参数解释** 接口调用失败错误信息 **取值范围** 不涉及 |
   
#### 请求示例
```
put https://{endpoint}/v4/testhub/projects/9c115c0e26ee492386cfa408f7e8ed92/testcases/v90510sa530ad5pe
{
  "name" : "qqqqqqqqqqq",
  "rank_id" : "2",
  "testcase_number" : "v92s00010hovp2cp",
  "service_id" : 100
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "testcase_id" : "v90510sa530ad5pe",
  "project_id" : "9c115c0e26ee492386cfa408f7e8ed92",
  "service_id" : 100,
  "name" : "qqqqqqqqqqq",
  "testcase_number" : "v92s00010hovp2cp",
  "rank_id" : 2,
  "status_id" : "0",
  "execute_count" : 0,
  "result_id" : "",
  "assigned_user" : {
    "id" : "",
    "name" : ""
  },
  "extend_info" : {
    "author" : {
      "id" : "c217c42b8dfb4ac7bff52a87cbaca38c",
      "name" : "昵称echotest_dl",
      "time" : "2025-10-20 17:54:44"
    },
    "updator" : {
      "id" : "c217c42b8dfb4ac7bff52a87cbaca38c",
      "name" : "啊啊啊",
      "time" : "2025-10-20 19:08:40"
    },
    "domain" : {
      "id" : "",
      "name" : ""
    },
    "preparation" : "1、确保网路联通\n2、安装Chrome浏览器\n3、准备测试账户，请从账户管理系统获取最新测试账号和密码",
    "steps" : [ {
      "test_step" : "在浏览器地址栏输入",
      "expect_result" : "浏览器跳转”"
    }, {
      "test_step" : "输入测试账号",
      "expect_result" : "账号输入框内显示输入的账号"
    }, {
      "test_step" : "输入测试账号密码",
      "expect_result" : "密码输入框内显示与输入密码位数一致的“*”符号"
    }, {
      "test_step" : "点击“登录”按钮",
      "expect_result" : "登录成功"
    } ],
    "module" : {
      "id" : "",
      "name" : ""
    },
    "issue" : {
      "id" : "",
      "name" : ""
    },
    "description" : "验证",
    "label_list" : [ ],
    "defect_list" : [ ],
    "fixed_version" : {
      "id" : "",
      "name" : ""
    }
  }
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-testman/ErrorCode.html)。
