
# 用户Testhub服务操作
#### 场景描述
该场景适用于未在测试计划中创建对接自己的用户服务的TestHub服务的用户，创建后可以直接在测试计划界面通过TestHub服务管理用户服务的项目、计划及用例。
下面介绍如何调用[新测试类型服务注册](https://support.huaweicloud.com/api-testman/CreateService.html)API创建新的TestHub服务，以及对于服务的删改查操作，API的调用方法请参见[如何调用API](https://support.huaweicloud.com/api-testman/cloudtest_03_2000.html)。
#### 前提条件
参与注册需要提供自己的用户服务的域名，且未在测试计划中注册过，并且需要客户自己开发一套和TestHub服务对接的API。
#### 涉及接口
用户TestHub服务操作包括，注册新服务、获取已注册服务、更新已注册服务、删除已注册服务，其中获取、更新、删除操作需要注册过后方可进行，涉及接口如下：
- 新测试类型服务注册：未注册过服务的全新用户使用，将自己的服务名和服务域名注册。
- 用户获取自己当前已经注册的服务：已注册过服务的用户可以查询到自己服务的服务ID和服务名称。
- 更新已注册服务：已注册过服务的用户可以修改自己的服务名和服务域名。
- 删除已注册服务：已注册过服务的用户可以传入自己的服务ID删除掉自己已注册的服务。
 
#### 操作步骤
1. 确定调用API鉴权时使用的Token。 
   1. 查询token，详情请参见[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。
   
   2. 获取响应Header参数中X-Subject-Token对应的值。
   
   
   
   
2. 确定Testhub服务名称及用户服务域名并注册。 
   - 接口相关信息 URL格式： POST /v1/services
     接口请求参数说明详情，请参见[新测试类型服务注册](https://support.huaweicloud.com/api-testman/CreateService.html)。
     
   
   - 请求示例 POST https://{endpoint}/v1/services
     {endpoint}信息请从[终端节点](https://support.huaweicloud.com/api-testman/cloudtest_03_0000.html#cloudtest_03_0000__section30183801210)获取。
     Body：
     ```
     {
       "service_name" : "这是一个测试类型名称",
       "server_host" : "https://xxx.xxx.xxx"
     }
     ```
     
   
   - 响应示例
     ```
     {
       "service_name" : "这是一个测试类型名称",
       "service_id" : 13
     }
     ```
     
   
   
   
   
3. 确定用户的Testhub服务已被注册成功。 
   - 接口相关信息 URL格式： GET /v1/services
     接口请求参数说明详情，请参见[用户获取自己当前已经注册的服务](https://support.huaweicloud.com/api-testman/ShowRegisterService.html)。
     
   
   - 请求示例 GET https://{endpoint}/v1/services
     {endpoint}信息请从[终端节点](https://support.huaweicloud.com/api-testman/cloudtest_03_0000.html#cloudtest_03_0000__section30183801210)获取。
     Body：无
     
   
   - 响应示例
     ```
     {
       "services" : [ {
         "id" : 13,
         "name" : "这是一个测试类型名称"
       } ]
     }
     ```
     获取到返回的注册信息即证明用户已注册成功。
     
   
   
   
   
4. 用户确定自己的Testhub服务注册成功后，可对服务进行删改操作。 
   删改操作建立在用户已成功注册自己的Testhub服务基础上。
   - 更新服务信息：
     - 接口相关信息 URL格式： PUT /v1/services/{service_id}
       接口请求参数说明详情，请参见[更新已注册服务](https://support.huaweicloud.com/api-testman/UpdateService.html)。
       
     
     - 请求示例 PUT https://{endpoint}/v1/services/{service_id}
       - {endpoint}信息请从[终端节点](https://support.huaweicloud.com/api-testman/cloudtest_03_0000.html#cloudtest_03_0000__section30183801210)获取。
       
       - {service_id}从查询服务返回的service_id获取。
       
       
       Body：
       ```
       {
         "service_name" : "这是修改后的测试类型名称",
         "server_host" : "https://xxx.xxx.xxx2"
       }
       ```
       
     
     - 响应示例
       ```
       {
         "service_name" : "这是修改后的测试类型名称",
         "service_id" : 13
       }
       ```
       
      
   
   - 删除服务信息：
     - 接口相关信息 URL格式： DELETE /v1/services/{service_id}
       接口请求参数说明详情，请参见[删除已注册服务](https://support.huaweicloud.com/api-testman/DeleteService.html)。
       
     
     - 请求示例 DELETE https://{endpoint}/v1/services/{service_id}
       - {endpoint}信息请从[终端节点](https://support.huaweicloud.com/api-testman/cloudtest_03_0000.html#cloudtest_03_0000__section30183801210)获取。
       
       - {service_id}从查询服务返回的service_id获取。
       
       
       Body：无
       
     
     - 响应示例
       ```
       {
         "error_code" : "CLOUDTEST.00000000",
         "error_msg" : "失败原因XXXXX"
       }
       ```
       
      
   
   
   
   
 
