文档首页/ 测试计划 CodeArts TestPlan/ API参考/ API/ 测试报表管理/ 根据查询条件获取测试报告列表 - ListTestReportsByCondition
更新时间:2026-10-22 GMT+08:00
分享

根据查询条件获取测试报告列表 - ListTestReportsByCondition

功能介绍

此接口用于根据查询条件获取测试报告列表,同页面 测试 -> 测试质量评估 -> 右侧筛选报告或搜索报告名称 -> 下方展示报告列表

调用方法

请参见如何调用API。

URI

GET /testreport/v4/{project_id}/test-reports

表1 路径参数

参数

是否必选

参数类型

描述

project_id

是

String

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

表2 Query参数

参数

是否必选

参数类型

描述

key_word

否

String

参数解释

名称关键词

约束限制

字符串类型,长度1-128字符

取值范围

无

默认取值

无

own

否

Boolean

参数解释

是否只查询我创建的测试报告

约束限制

不涉及

取值范围

  • true:是

  • false:否

默认取值

true

page_no

否

Integer

参数解释

页码,用于指定查询的页码位置

约束限制

不涉及

取值范围

1-100的正整数

默认取值

无

page_size

是

Integer

参数解释

每页条数

约束限制

1-100的正整数

取值范围

1-100的正整数

默认取值

无

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

是

String

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

响应参数

状态码:200

表4 响应Body参数

参数

参数类型

描述

total

Integer

参数解释

总数

取值范围

不小于1的正整数

page_no

Integer

参数解释

当前页码

取值范围

大于0且小于100的正整数

page_size

Integer

参数解释

分页大小

取值范围

大于零且小于20000的正整数

value

Array of TestReportVo objects

参数解释

测试报告列表数据,数组内每个TestReportVo对象代表一个测试报告,包含测试报告名称、创建人、测试结论等信息

取值范围

不涉及

表5 TestReportVo

参数

参数类型

描述

uri

String

参数解释

测试报告Uri

取值范围

11-34位字母、数字组成的字符串

name

String

参数解释

测试报告名称

取值范围

长度小于128个字符的字符串

creator

String

参数解释

创建人ID

取值范围

长度小于128个字符的字符串

updator

String

参数解释

修改人ID

取值范围

长度小于128个字符的字符串

version_uri

String

参数解释

测试计划Uri

取值范围

11-34位字母、数字组成的字符串

branch_uri

String

参数解释

分支Uri

取值范围

11-34位字母、数字组成的字符串

version_name

String

参数解释

测试计划名称

取值范围

不涉及

testPlan_uri

String

参数解释

测试计划URI,标识测试报告数据来源的测试计划

取值范围

不涉及

testPlan_name

String

参数解释

测试计划名称

取值范围

不涉及

branch_name

String

参数解释

分支名称

取值范围

不涉及

test_conclusion

String

参数解释

测试结论

取值范围

不涉及

test_conclusion_details

String

参数解释

测试结论描述

取值范围

不涉及

defect_resolution_rate

String

参数解释

缺陷解决率,单位:百分比%

取值范围

不涉及

defect_resolution_score

String

参数解释

缺陷解决分数

取值范围

不涉及

case_execution_rate

String

参数解释

用例执行率,单位:百分比%

取值范围

不涉及

case_execution_score

String

参数解释

用例执行分数

取值范围

不涉及

case_pass_rate

String

参数解释

用例通过率,单位:百分比%

取值范围

不涉及

case_pass_score

String

参数解释

用例通过分数

取值范围

不涉及

issue_pass_rate

String

参数解释

需求通过率,单位:百分比%

取值范围

不涉及

issue_pass_score

String

参数解释

需求通过分数

取值范围

不涉及

issue_coverage_rate

String

参数解释

需求覆盖率,单位:百分比%

取值范围

不涉及

issue_coverage_score

String

参数解释

需求覆盖分数

取值范围

不涉及

project_residual_defect_index

String

参数解释

项目总遗留DI(Defect Index缺陷指数)

取值范围

不涉及

iterator_residual_defect_index

String

参数解释

计划新增DI(Defect Index缺陷指数)

取值范围

不涉及

case_automation_details

CaseAutomationDetailsVo object

参数解释

用例自动化信息

取值范围

不涉及

case_validity_ratio

String

参数解释

用例有效性比例,单位:百分比%

取值范围

不涉及

issue_details

IssuePassDetailsVo object

参数解释

需求信息

取值范围

不涉及

case_details

Array of NameAndValueVo objects

参数解释

用例通过情况,数组内每个NameAndValueVo对象包含名称和值

取值范围

不涉及

defect_details_by_severity

Array of IdAndNameAndValueVo objects

参数解释

缺陷严重程度分布,数组内每个IdAndNameAndValueVo对象包含ID、名称和值

取值范围

不涉及

defect_details_by_module

Array of IdAndNameAndValueVo objects

参数解释

缺陷按照模块分布情况,数组内每个IdAndNameAndValueVo对象包含ID、名称和值

取值范围

不涉及

case_pass_rate_by_test_type

Array of DetailTestTypeCasePassRateVo objects

参数解释

每个测试类型的用例通过率,数组内每个DetailTestTypeCasePassRateVo对象包含测试类型和用例通过率

取值范围

不涉及

test_report_custom_report_detail

Array of CustomReportListVo objects

参数解释

测试报告自定义报告详情,数组内每个CustomReportListVo对象包含报表ID、报表名称、过滤信息等

取值范围

不涉及

create_time

String

参数解释

创建时间,UTC时间格式yyyy-MM-ddTHH:mm:ssZ

取值范围

不涉及

create_timestamp

Long

参数解释

创建时间戳,单位为毫秒

取值范围

不涉及

creator_name

String

参数解释

创建人名

取值范围

不涉及

reviewer

String

参数解释

评审人ID

取值范围

不涉及

reviewer_name

Array of strings

参数解释

评审人名称列表,数组内每个元素为评审人名称

取值范围

不涉及

update_time

String

参数解释

修改时间,UTC时间格式yyyy-MM-ddTHH:mm:ssZ

取值范围

不涉及

update_timestamp

Long

参数解释

修改时间戳,单位为毫秒

取值范围

不涉及

updator_name

String

参数解释

修改人名

取值范围

不涉及

project_id

String

参数解释

项目UUID,项目唯一标识,固定长度32位字符(字母和数字)。获取方式请参见获取项目ID

取值范围

32位字符(字母和数字)

risk_analysis

String

参数解释

风险分析

取值范围

不涉及

表6 CaseAutomationDetailsVo

参数

参数类型

描述

case_automation_rate

String

参数解释

用例自动化率,单位:百分比%

取值范围

不涉及

service_type_number_list

Array of NameAndValueVo objects

参数解释

服务类型对应的用例数目,数组内每个NameAndValueVo对象包含名称和值

取值范围

不涉及

表7 IssuePassDetailsVo

参数

参数类型

描述

testing

Integer

参数解释

统计测试中的需求

取值范围

无

finished

Integer

参数解释

统计已完成的需求

取值范围

无

not_tested

Integer

参数解释

统计未完成的需求

取值范围

无

表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 IdAndNameAndValueVo

参数

参数类型

描述

name

String

参数解释

名称

取值范围

不涉及

value

Integer

参数解释

值

取值范围

无

id

String

参数解释

id

取值范围

不涉及

表11 DetailTestTypeCasePassRateVo

参数

参数类型

描述

test_type

Integer

参数解释:

测试类型

取值范围:

  • 1:功能性测试

  • 2:兼容性测试

  • 4:性能测试

  • 15:易用性测试

  • 22:可靠性测试

  • 14:安全性测试

  • 21:可服务性测试

case_pass_rate

String

参数解释

用例通过率,单位:百分比%

取值范围

不涉及

表12 CustomReportListVo

参数

参数类型

描述

id

String

参数解释:

报表id

取值范围:

不涉及

name

String

参数解释:

报表名称

取值范围:

不涉及

filter

ReportFilter object

参数解释

过滤信息

取值范围

不涉及

workpiece_type

String

参数解释

工件类型

取值范围

  • case:用例

  • task:测试套

analysis_dimension

String

参数解释

分析维度

取值范围

不涉及

compare_dimension

String

参数解释

对比维度

取值范围

不涉及

chart_data

Array of ReportChartDataVo objects

参数解释

报表数据,数组内每个ReportChartDataVo对象包含报表ID、报表名称、分析维度数据等

取值范围

不涉及

表13 ReportFilter

参数

参数类型

描述

creatorIds

String

参数解释

创建人

取值范围

不涉及

ownerIds

String

参数解释

所属人

取值范围

不涉及

ranks

String

参数解释

级别

取值范围

不涉及

releaseIds

String

参数解释

发布版本ID

取值范围

不涉及

status

String

参数解释:

状态

取值范围:

  • -1,删除。

  • 0,新建。

  • 5,设计中。

  • 6,测试中。

  • 7,完成。

  • -2,未设置。

moduleIds

String

参数解释

模块ID

取值范围

不涉及

results

String

参数解释

结果

取值范围

不涉及

labelIds

String

参数解释

标签

取值范围

不涉及

startTime

String

参数解释

开始时间,UTC时间格式yyyy-MM-dd HH:mm:ss

取值范围

不涉及

endTime

String

参数解释

结束时间,UTC时间格式yyyy-MM-dd HH:mm:ss

取值范围

不涉及

isAssociateIssue

String

参数解释

是否关联需求

取值范围

不涉及

featureUris

String

参数解释

目录uris

取值范围

数组元素个数不超过1000

表14 ReportChartDataVo

参数

参数类型

描述

id

String

参数解释

报表id

取值范围

不涉及

name

String

参数解释

报表名称

取值范围

不涉及

analyze_dim

ReportDimVo object

参数解释

分析维度数据,ReportDimVo对象包含ID、名称和值

取值范围

不涉及

compare_dim

Array of ReportDimVo objects

参数解释

对比维度数据,数组内每个ReportDimVo对象包含ID、名称和值

取值范围

不涉及

表15 ReportDimVo

参数

参数类型

描述

id

String

参数解释

id

取值范围

不涉及

name

String

参数解释

名称

取值范围

不涉及

value

Integer

参数解释

值

取值范围

不涉及

状态码:400

表16 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

接口调用失败错误码

取值范围:

不涉及

error_msg

String

参数解释:

接口调用失败错误信息

取值范围:

不涉及

状态码:401

表17 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

接口调用失败错误码

取值范围:

不涉及

error_msg

String

参数解释:

接口调用失败错误信息

取值范围:

不涉及

状态码:404

表18 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

接口调用失败错误码

取值范围:

不涉及

error_msg

String

参数解释:

接口调用失败错误信息

取值范围:

不涉及

状态码:500

表19 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

接口调用失败错误码

取值范围:

不涉及

error_msg

String

参数解释:

接口调用失败错误信息

取值范围:

不涉及

请求示例

根据查询条件获取测试报告列表

get https://{endpoint}/v4/9b26f58ec29943f681804a6628779a23/test-reports?key_word=xxx&own=true&page_no=1&page_size=10

响应示例

状态码:200

{
  "total" : 2,
  "page_no" : 1,
  "value" : [ {
    "creator" : "a17801c5d15f46e28112eec8a880683d",
    "branch_uri" : "v90200010rt2rcv3",
    "create_time" : "2025-10-15 19:14:38",
    "updator_name" : "wangluodan1",
    "defect_details_by_module" : [ ],
    "uri" : "v90900010rtdlmdd",
    "version_uri" : "v90200010rt417hp",
    "update_time" : "2025-10-15 19:16:28",
    "version_name" : "Plan01",
    "create_timestamp" : 1760526878000,
    "update_timestamp" : 1760526988000,
    "defect_details_by_severity" : [ ],
    "branch_name" : "基线",
    "name" : "223423221",
    "test_conclusion" : "",
    "updator" : "a17801c5d15f46e28112eec8a880683d",
    "creator_name" : "wangluodan1",
    "test_conclusion_details" : "22"
  }, {
    "creator" : "a17801c5d15f46e28112eec8a880683d",
    "branch_uri" : "v90200010rt2rcv3",
    "create_time" : "2025-10-15 16:52:50",
    "defect_details_by_module" : [ ],
    "uri" : "v90800010rt5i1ic",
    "version_uri" : "v90200010rt417hp",
    "version_name" : "Plan01",
    "create_timestamp" : 1760518370000,
    "defect_details_by_severity" : [ ],
    "branch_name" : "基线",
    "name" : "Report01",
    "test_conclusion" : "商用发布",
    "creator_name" : "wangluodan1",
    "test_conclusion_details" : "结论"
  } ],
  "page_size" : 10
}

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
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 ListTestReportsByConditionSolution {

    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();
        ListTestReportsByConditionRequest request = new ListTestReportsByConditionRequest();
        request.withProjectId("{project_id}");
        try {
            ListTestReportsByConditionResponse response = client.listTestReportsByCondition(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
# 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 = ListTestReportsByConditionRequest()
        request.project_id = "{project_id}"
        response = client.list_test_reports_by_condition(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
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.ListTestReportsByConditionRequest{}
	request.ProjectId = "{project_id}"
	response, err := client.ListTestReportsByCondition(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

错误码

请参见错误码。

相关文档