python解析xmind统计测试用例/测试点 个数及执行情况

前言:统计的是每个分支最后一个节点的状态

xmind版本 23.0911172

  • 标记打开位置

  • 标记规则如下

    解释:

python 复制代码
    res = {"total": 0, "pass": 0, "fail": 0, "no_result": 0, "unfinished": 0, "now_fail": 0, "other": 0}
    # total= pass +  no_result+unfinished+ now_fail +other
    # total 用例总数
    #  pass 通过总数 含有"勾"的用例数
    # fail 失败总数 通过总数 含有"感叹号"的用例数
    # no_result 未进行任何标记 不含有任何标记的用例数
    # unfinished 未完成标记 含有"暂停"的用例数
    # now_fail 仍未通过 仅含有"感叹号"的用例数
    # other 其它符号标  
  • 完整代码如下
python 复制代码
from xmindparser import xmind_to_dict
import json

# 计算标记
def statistics(data):
    res["total"] = res["total"] + 1
    # 计算标记图案
    if data.get("makers"):
        # 至少一个标记
        if len(data["makers"]) >= 1:
            # 统计现在仍然只有失败标签的用例
            if len(data["makers"]) == 1 and data["makers"][0] == "symbol-exclam":
                res["now_fail"] = res["now_fail"] + 1
            # 遍历标记--所有图标
            for i in data["makers"]:
                if i == "task-done":
                    res["pass"] = res["pass"] + 1
                elif i == "symbol-exclam":
                    res["fail"] = res["fail"] + 1
                elif i == "task-start":
                    res["unfinished"] = res["unfinished"] + 1
                else:
                    res["other"] = res["other"] + 1
    else:  # 没有标记
        res["no_result"] = res["no_result"] + 1



def recursion(testcase):
    # 递归查询
    for i in testcase:
        if isinstance(i, dict):
            if i.get("topics") is None:
                statistics(i)
            else:
                recursion(i["topics"])
        else:
            recursion(i)


if __name__ == '__main__':
	# 路径
    out = xmind_to_dict(r"C:\Users\Administrator\Desktop\测试项目.xmind")
    test_case = out[0]["topic"]["topics"]
    res = {"total": 0, "pass": 0, "fail": 0, "no_result": 0, "unfinished": 0, "now_fail": 0, "other": 0}
    recursion(test_case)
    print(res)
相关推荐
鸿业远图科技29 分钟前
分式注记种表达方式arcgis
python·arcgis
别让别人觉得你做不到1 小时前
Python(1) 做一个随机数的游戏
python
小彭律师3 小时前
人脸识别门禁系统技术文档
python
张小九994 小时前
PyTorch的dataloader制作自定义数据集
人工智能·pytorch·python
zstar-_5 小时前
FreeTex v0.2.0:功能升级/支持Mac
人工智能·python·macos·llm
苏生要努力5 小时前
第九届御网杯网络安全大赛初赛WP
linux·python·网络安全
于壮士hoho5 小时前
DeepSeek | AI需求分析
人工智能·python·ai·需求分析·dash
蒙奇D索大5 小时前
【人工智能】自然语言编程革命:腾讯云CodeBuddy实战5步搭建客户管理系统,效率飙升90%
人工智能·python·django·云计算·腾讯云
AndrewHZ5 小时前
【Python生活】如何构建一个跌倒检测的算法?
python·算法·生活·可视化分析·陀螺仪·加速度计·跌倒检测
lizz6665 小时前
Python查询ES错误ApiError(406, ‘Content-Type ...is not supported
python·elasticsearch