研发效能 XMind 转 Excel 与 CSV 的思路

牧遥 · 2024年01月30日 · 最后由 TMind 回复于 2024年12月09日 · 3872 次阅读

测试工具说明

起始

很早就构思这么一个小工具, 但是在想用 Java 实现的时候,不知道如何能获取 XMind 中的内容,XMind 好像没有提供 Java 解析的库。 直到有一天上网冲浪的时候发现 XMind 竟然能解压缩出 JSON 内容文件才开始做这个小工具。

基本描述

发布此文章前查了查各类技术社区与此相关的内容,有一些零散的用 Python 实现的,有一些把思路简单的讲了讲,还有与我思路相同的大佬, 看大佬的发布文章的时候还是 2022 年初,早看到大佬的文章自己就不用走弯路了。 但是没有看有整体技术实现过程。此文就是基于此,将整体的实现思路与实现过程描述出来。

测试工具实现思路

总体思路描述

一个标准的测试用例最基本的就是有三个元素用例标题、操作步骤和预期结果,别管是是功能的、性能的、接口的、白盒的,用例标题用以表示这个用例是做什么的,操作步骤和预期结果用以表示你要如何操作得出何种结果才算是证明此功能是通过你的测试。 再天马行空的自由发挥,如果一个用例缺少了这三种的任何一项都不能叫做测试用例最多算是需求描述/需求感悟/需求理解。
在日常工作中基本不可能一个 XMind 画布只描述一个用例,肯定要有一个用例所属的目录/项目, 所以 XMind 画布中一个分支中最好有四个节点,来对应此四个字段,否则就不应该叫测试用例,比如一些需求的理解、描述等。
使用 XMind 思维导图来写测试用例看中的就是自由性,所以在转文件的时候不能让编写者丧失了自由扩展节点的特性,如何保证编写者可以自由扩展节点,就只能从分支节点的最后往前找,当找到最后一个节点时,这个节点当做预期结果,那他的父节点就作为操作步骤, 此时用例标题不应该是操作步骤的父节点,而应该是这个分支之前的所有节点的连接。这样用以保证用例标题是独一无二的,事实上在一个项目中用例标题就应该是这样的,否则无法区分不同的用例要验证的功能。
到此为止就生成了以用例步骤为基准的一条测试用例,此方法用递归来实现是项目最核心的方法,用以提供基础数据。

如果拿到最基础的数据后,在通过一系列的规则,修剪标题,判定优先级等优化得出一个个完整的测试单元。因为用例标题是父节点的连接,所以用例标题相同的步骤一定是同一个用例,就算他们看起来是完全不同的分支。

层级

层级是一种用例所在路径,用例属于哪个大模块下。当设置的层级超过 XMInd 画布能容纳的最大时就会报错,默认最顶层为 0 级, 比如:我的画布中节点有三个,层级却为一级,这就把操作步骤作为一个层级(路径)了,就会报错。

预处理:解压

使用 JDK 中 ZipFile 工具

转换策略

当前提供的转换策略有两种:CSV 和 EXCEL

Excel 转换策略

  • 横向单元格设置策略
  • 纵向单元格设置策略
  • 列换设置策略
  • 单元格合并策略

横向、纵向单元格样式设置主要设置一般单元格样式。
列换设置策略根据单元格内容调整列宽长度,用以适应各种 XMind 转换结果
单个格合并策略用来实现将相同的用例不中合并到一块,形成一个用例

CSV 转换

CSV 就是生成标准的用例字符串后直接写入到文件中

共收到 4 条回复 时间 点赞

我记得 3 年前在论坛看到了 xmind2testcase,这是 python 的第三方库就拿来用了,web 页面,主要拿来导入禅道用例

yeyu 回复

嗯嗯

yeyu 回复

刚看了下思路完全不一样,大佬做的比较全,连 Web 页面都提供了,我这个要手动执行 JAVA 程序,而且可以说思路完全不一样😂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册