如何通过Pyral获取缺陷严重程度列表及非调试类所有严重程度类型?
使用Pyral获取排除调试类的缺陷严重程度列表
当然可以通过Pyral获取不同的缺陷严重程度列表,而且完全能轻松排除掉调试类的类型!其实缺陷的严重程度在Rally里是枚举类型,我们根本不需要遍历所有缺陷去手动收集,直接获取枚举的可选值就高效多了。
下面是具体的实现步骤和代码示例:
核心思路
- 先连接到你的Rally实例,获取
Defect类型的字段元数据 - 定位到
Severity字段的枚举定义,提取所有可选值 - 过滤掉你不需要的“调试类”选项(比如常见的"Debug",记得替换成你实际用的名称)
代码示例
from pyral import Rally, rallyWorkset # 初始化Rally连接(根据你的实际配置调整参数) server = "rally1.rallydev.com" api_key = "你的API密钥" workspace = "你的工作区名称" project = "你的项目名称" rally = Rally(server, apikey=api_key, workspace=workspace, project=project) # 获取Defect类型的字段元数据 type_def = rally.getTypeDefinition("Defect") # 找到Severity字段的定义 severity_field = next(field for field in type_def.Fields if field.Name == "Severity") # 提取所有严重程度选项,排除调试类(这里假设调试类名称是"Debug") allowed_severities = [option.StringValue for option in severity_field.AllowedValues if option.StringValue != "Debug"] # 输出结果 print("排除调试类后的严重程度列表:") for severity in allowed_severities: print(f"- {severity}")
额外拓展:用过滤后的严重程度查询缺陷
如果你之后想用这些筛选好的严重程度来查询对应缺陷,可以用下面的代码:
# 构造查询条件 query = f"(Severity in ({', '.join([f'\"{s}\"' for s in allowed_severities])}))" # 获取符合条件的缺陷 defects = rally.get("Defect", query=query, fetch=True) print(f"找到符合条件的缺陷总数:{len(defects)}")
这种方法比遍历所有缺陷去收集严重程度要高效得多,尤其是当你的项目里缺陷数量很大的时候,完全不会浪费资源~
内容的提问来源于stack exchange,提问作者Nathan Smith
相关产品推荐
相关产品推荐

