
# 外部系统创建测试用例 - CreateCase
#### 功能介绍
此接口用于外部系统在项目下创建测试用例,同页面 测试 -\> 测试用例 -\> 新建用例
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-testman/cloudtest_03_2000.html)。
#### URI
POST /v4/testhub/projects/{project_id}/testcases
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                  |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目UUID，项目唯一标识，固定长度32位字符（字母和数字）。获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-testman/cloudtest_03_4003.html)。 |
   
#### 请求参数
表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 | **参数解释** 接口调用失败错误信息 **取值范围** 不涉及 |
   
#### 请求示例
```
post https://{endpoint}/v4/testhub/projects/a5eb0d410ea341a192f7c12483568985/testcases
{
  "name" : "用例1",
  "service_id" : 15,
  "rank_id" : "1",
  "testcase_number" : "123",
  "version_uri" : "v90100010gpop318",
  "extend_info" : { }
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "testcase_id" : "001rvc8k178",
  "project_id" : "0000dbab7df44231a72bfa25a1259c73",
  "service_id" : 3,
  "name" : "用例",
  "testcase_number" : "用例编号:-Copy-bbe028df",
  "rank_id" : 2,
  "status_id" : "4sfsd82e",
  "execute_count" : 1,
  "result_id" : "4sfsd82e",
  "assigned_user" : { },
  "extend_info" : { }
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-testman/ErrorCode.html)。
