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

news/2024/10/23 9:26:09/

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

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)

http://www.ppmy.cn/news/1203215.html

相关文章

vite基础学习笔记:13.Dialog 对话框 (用户注册与登录)

说明:自学做的笔记和记录,如有错误请指正 1. Dialog 对话框组件 目标效果:点击“登录/注册”,弹框 (1)创建全局组件,在官网中查询代码粘贴 (2) 注册和使用全局组件 &a…

【VUE+ elementUI 实现动态表头渲染】

VUE elementUI 实现动态表头渲染 1、定义 columns(表头数据) 和 dataList(表格数据) data() {return {loading: false,dataList: [{ name: 张三, sex: 男, age: 18 },{ name: 林琳, sex: 女, age: 20 },{ name: 王五, sex: 男, …

rabbitMQ rascal/amqplib报错 Error: Unexpected close 排查

以下是一些可能导致此 RabbitMQ 客户端或任何其他 RabbitMQ 客户端中的套接字读取或写入失败的常见场景 1.错过(客户端)心跳 第一个常见原因是RabbitMQ 检测到心跳丢失。发生这种情况时,RabbitMQ 将添加一个有关它的日志条目,然…

通过docker快速部署RabbitMq

查询镜像: docker search rabbitmq拉去RabbitMq镜像: docker pull rabbitmq:management创建数据卷: docker volume create rabbitmq-home运行容器: docker run -id --namerabbitmq -v rabbitmq-home:/var/lib/rabbitmq -p 156…

【代码随想录】算法训练营 第十五天 第六章 二叉树 Part 2

102. 二叉树的层序遍历 层序遍历,就是一层一层地遍历二叉树,最常见的就是从上到下,从左到右来遍历,遍历的方法依然有两种,第一种是借助队列,第二种则是递归,都算是很简单、很容易理解的方法&am…

网络安全与TikTok:年轻一代的数字素养

在数字时代,互联网成为我们生活的重要组成部分,而社交媒体平台则在年轻一代中变得日益流行。其中,TikTok作为一个短视频分享平台,吸引了全球数以亿计的用户,尤其年轻人。 然而,与其快速的普及相伴随的是网…

html+css 通过div模拟出一个表格样式,优化多个边框导致的宽度计算问题

htmlcss 通过div模拟出一个表格样式&#xff0c;优化多个边框导致的宽度计算问题 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, i…

Excel 转 Json 、Node.js实现(应用场景:i18n国际化)

创作灵感来源于在线转换是按照换行符去转换excel内容换行符后很难处理 本文是按单元格转换 const xlsx require(node-xlsx) const fs require(fs) const xlsxData xlsx.parse(./demo.xlsx) // 需要转换的excel文件// 数据处理 方便粘贴复制 const data xlsxData[2].data …