前言:统计的是每个分支最后一个节点的状态
xmind版本 23.0911172
-
标记打开位置
-
标记规则如下
解释:
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 其它符号标
- 完整代码如下
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"] + 1elif i == "symbol-exclam":res["fail"] = res["fail"] + 1elif i == "task-start":res["unfinished"] = res["unfinished"] + 1else:res["other"] = res["other"] + 1else: # 没有标记res["no_result"] = res["no_result"] + 1def 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)