文档首页/ 测试计划 CodeArts TestPlan/ API参考/ API/ 测试报表管理/ 查询质量报告看板统计信息 - ShowProjectDataDashboard
更新时间:2026-10-22 GMT+08:00
分享

查询质量报告看板统计信息 - ShowProjectDataDashboard

功能介绍

此接口用于查询质量报告看板统计信息,通过传入的测试计划id,查询对应的缺陷统计信息,用例通过率信息,项目类型,以及需求覆盖率信息

调用方法

请参见如何调用API。

URI

POST /v1/{project_id}/data-dashboard/overview

表1 路径参数

参数

是否必选

参数类型

描述

project_id

是

String

参数解释:

项目UUID,项目唯一标识。获取方式请参见获取项目ID

约束限制:

不涉及

取值范围:

长度等于32位,包含大小写字母、数字

默认取值:

不涉及

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

是

String

参数解释:

用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

约束限制:

不涉及

取值范围:

字符串长度不少于1个字符,不超过100000个字符

默认取值:

不涉及

表3 请求Body参数

参数

是否必选

参数类型

描述

plan_id

否

String

参数解释:

测试计划ID,用于指定查询的测试计划。获取方式请参见查询测试计划列表接口

约束限制:

plan_id和branch_id不能同时为空,优先取plan_id

取值范围:

11~34位字母或数字

默认取值:

不涉及

branch_id

否

String

参数解释:

分支ID,用于指定查询的分支。获取方式请参见获取分支列表接口

约束限制:

plan_id和branch_id不能同时为空,优先取plan_id

取值范围:

11~34位字母或数字

默认取值:

不涉及

module_id

否

String

参数解释:

模块ID,用于指定查询的模块范围。获取方式请参见获取模块列表接口

约束限制:

不涉及

取值范围:

11~34位字母或数字

默认取值:

不涉及

fixed_version_id

否

String

参数解释:

筛选迭代ID

约束限制:

不涉及

取值范围:

11~34位字母或数字

默认取值:

不涉及

响应参数

状态码:200

表4 响应Body参数

参数

参数类型

描述

defect

DefectVo object

参数解释

缺陷统计信息

case_pass_rate

CasePassRateVo object

参数解释

用例通过率信息

case_completion_rate

CaseCompletionRateVo object

参数解释

用例完成率信息

project_type

String

参数解释:

项目类型

取值范围:

  • scrum:敏捷看板项目

  • kanban:看板项目

issue_cover_rate

IssueCoverRateVo object

参数解释:

需求覆盖率信息

risk_rating

RiskRatingVo object

测试计划的风险等级和风险描述

表5 DefectVo

参数

参数类型

描述

total

Integer

缺陷数

not_solved

Integer

未关闭缺陷数

severity_number_list

Array of NameAndValueVo objects

组装缺陷每种重要程度的名称和对应的数目

表6 CasePassRateVo

参数

参数类型

描述

pass_rate

String

用例通过率

result_number_list

Array of NameAndValueVo objects

用户自定义结果对应的用例数目

表7 CaseCompletionRateVo

参数

参数类型

描述

total

Integer

总用例数

completion_rate

String

用例完成率

status_number_list

Array of NameAndValueVo objects

用户自定义状态对应的用例数目

表8 NameAndValueVo

参数

参数类型

描述

name

String

参数解释

名称,如缺陷重要程度名称或用例执行结果名称

取值范围

不涉及

value

Integer

参数解释

对应名称的数目

取值范围

大于等于0

children

Array of children objects

参数解释

子节点,数组内每个元素包含名称、值和标记值

取值范围

不涉及

表9 children

参数

参数类型

描述

name

String

参数解释

名称

取值范围

不涉及

value

Integer

参数解释

对应名称的数目

取值范围

大于等于0

tag_value

Integer

参数解释

标记值,与value的区别在于标识不同维度的统计数值

取值范围

大于等于0

表10 IssueCoverRateVo

参数

参数类型

描述

epic

CoverRateVo object

epic类型需求覆盖率, 仅scrum项目返回

feature

CoverRateVo object

feature类型需求覆盖率, 仅scrum项目返回

story

CoverRateVo object

story类型需求覆盖率, 仅scrum项目返回

summary

CoverRateVo object

需求覆盖率(scrum项目仅返回epic、feature、story。非scrum项目仅返回summary)

表11 CoverRateVo

参数

参数类型

描述

testing

Integer

统计测试中的需求

finished

Integer

统计已完成的需求

not_tested

Integer

统计未测试的需求

total_number

Integer

计算需求总数

cover_rate

String

需求覆盖率

表12 RiskRatingVo

参数

参数类型

描述

risk_rating

Integer

测试计划的风险等级

risk_description

String

测试计划的风险描述

状态码:400

表13 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

接口调用失败错误码

取值范围:

不涉及

error_msg

String

参数解释:

接口调用失败错误信息

取值范围:

不涉及

状态码:401

表14 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

接口调用失败错误码

取值范围:

不涉及

error_msg

String

参数解释:

接口调用失败错误信息

取值范围:

不涉及

状态码:404

表15 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

接口调用失败错误码

取值范围:

不涉及

error_msg

String

参数解释:

接口调用失败错误信息

取值范围:

不涉及

状态码:500

表16 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

接口调用失败错误码

取值范围:

不涉及

error_msg

String

参数解释:

接口调用失败错误信息

取值范围:

不涉及

请求示例

质量报告看板统计

post https://{{endpoint}}/v1/875ab809ae454c808b8565bd8695692d/data-dashboard/overview

{
  "plan_id" : "v90200010rvkv29f"
}

响应示例

状态码:200

{
  "defect" : {
    "total" : 1,
    "not_solved" : 1,
    "severity_number_list" : [ {
      "name" : "一般",
      "value" : 1,
      "children" : [ {
        "name" : "新建",
        "value" : 1,
        "tag_value" : 1
      } ]
    } ]
  },
  "case_pass_rate" : {
    "pass_rate" : "0",
    "result_number_list" : [ {
      "name" : "未执行",
      "value" : 3
    } ]
  },
  "case_completion_rate" : {
    "total" : 3,
    "completion_rate" : "0",
    "status_number_list" : [ {
      "name" : "新建",
      "value" : 3
    } ]
  },
  "risk_rating" : {
    "risk_rating" : 0
  },
  "project_type" : "scrum",
  "issue_cover_rate" : {
    "epic" : {
      "testing" : 0,
      "finished" : 0,
      "not_tested" : 0,
      "total_number" : 0,
      "cover_rate" : "0.0%"
    },
    "feature" : {
      "testing" : 0,
      "finished" : 0,
      "not_tested" : 0,
      "total_number" : 0,
      "cover_rate" : "0.0%"
    },
    "story" : {
      "testing" : 0,
      "finished" : 0,
      "not_tested" : 0,
      "total_number" : 0,
      "cover_rate" : "0.0%"
    }
  }
}

SDK代码示例

SDK代码示例如下。

Java

质量报告看板统计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.cloudtest.v1.region.CloudtestRegion;
import com.huaweicloud.sdk.cloudtest.v1.*;
import com.huaweicloud.sdk.cloudtest.v1.model.*;


public class ShowProjectDataDashboardSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        CloudtestClient client = CloudtestClient.newBuilder()
                .withCredential(auth)
                .withRegion(CloudtestRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowProjectDataDashboardRequest request = new ShowProjectDataDashboardRequest();
        request.withProjectId("{project_id}");
        TestReportInfoRequestBody body = new TestReportInfoRequestBody();
        body.withPlanId("v90200010rvkv29f");
        request.withBody(body);
        try {
            ShowProjectDataDashboardResponse response = client.showProjectDataDashboard(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

质量报告看板统计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcloudtest.v1.region.cloudtest_region import CloudtestRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcloudtest.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]

    credentials = BasicCredentials(ak, sk)

    client = CloudtestClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CloudtestRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowProjectDataDashboardRequest()
        request.project_id = "{project_id}"
        request.body = TestReportInfoRequestBody(
            plan_id="v90200010rvkv29f"
        )
        response = client.show_project_data_dashboard(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

质量报告看板统计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    cloudtest "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cloudtest/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cloudtest/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cloudtest/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        SafeBuild()

    if err != nil {
        fmt.Println(err)
        return
    }

    hcClient, err := cloudtest.CloudtestClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()


    if err != nil {
        fmt.Println(err)
        return
    }

    client := cloudtest.NewCloudtestClient(hcClient)

    request := &model.ShowProjectDataDashboardRequest{}
	request.ProjectId = "{project_id}"
	planIdTestReportInfoRequestBody:= "v90200010rvkv29f"
	request.Body = &model.TestReportInfoRequestBody{
		PlanId: &planIdTestReportInfoRequestBody,
	}
	response, err := client.ShowProjectDataDashboard(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

OK

400

Bad Request

401

Unauthorized

404

Not Found

500

Internal Server Error

错误码

请参见错误码。

相关文档