恿榫 发表于 2025-10-18 18:15:03

将 XMind 测试用例转换为 CSV 文件导入测试管理平台

在日常的软件测试工作中,我们常常使用 XMind 来整理测试用例。XMind 的可视化结构让用例层次清晰、逻辑直观,但当我们需要将这些用例导入到测试管理平台(如 TestRail、禅道、Jira 等)时,就需要把它们转换成 CSV 文件。本文就分享一个简单易行的方法。
为什么需要转换


[*]批量导入:测试管理平台通常支持 CSV 批量导入,避免重复手动录入。
[*]结构清晰:XMind 中的测试用例按模块、功能、子功能组织,转换成 CSV 后便于统一管理。
[*]提高效率:特别是面对上百条用例时,自动化转换节省大量时间。
说明

这里我用到的xminf版本是图中这个,其他版本自测

准备工作


[*]XMind 文件:确保你的测试用例已经整理好,最好按照模块-功能-用例步骤的层级结构。
操作步骤

1. XMind文件格式

目前脚本按这个格式处理的,可以根据自己的需求部分代码

2. 编写转换脚本

用 Java 可以快速把文本解析成 CSV,例如:
import com.fasterxml.jackson.databind.JsonNode;import com.fasterxml.jackson.databind.ObjectMapper;import com.opencsv.CSVWriter;import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.nio.file.Path;import java.nio.file.Paths;import java.util.ArrayList;import java.util.Enumeration;import java.util.List;import java.util.Scanner;import java.util.concurrent.atomic.AtomicReference;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;public class XmindToCsvConverter {    public static void main(String[] args) throws Exception {      // XMind 文件路径      String xmindFile = "/Users/xx.xmind";      convertXmindToCsv(xmindFile);    }    public static void convertXmindToCsv(String xmindFile) throws Exception {      // 1. 解压 XMind 并读取 content.json      String jsonContent = extractJsonFromXmind(xmindFile);      ObjectMapper objectMapper = new ObjectMapper();      JsonNode rootNode = objectMapper.readTree(jsonContent);      // 获取根节点的名称,作为 CSV 文件名      String rootTitle = rootNode.get(0).get("rootTopic").get("title").asText();      // 确定 CSV 文件路径(与 XMind 文件同目录)      Path xmindPath = Paths.get(xmindFile);      // 获取 XMind 所在目录      String outputDir = xmindPath.getParent().toString();      // 生成 CSV 文件路径      String outputCsv = outputDir + "/用例csv/" + rootTitle + ".csv";      System.out.println("CSV文件名: " + outputCsv);      // 2. 解析 JSON 生成测试用例      List testCases = new ArrayList();      // CSV 表头      testCases.add(new String[]{"模块", "用例标题", "前置条件", "步骤ID", "步骤", "预期结果"});      // 变量存储上一个节点信息      AtomicReference lastModule = new AtomicReference("");      AtomicReference lastCaseTitle = new AtomicReference("");      AtomicReference lastPrecondition = new AtomicReference("");      AtomicReference isFirstStep = new AtomicReference(true);      // 遍历 XMind 结构      for (JsonNode sheet : rootNode) {            traverseNode(sheet.get("rootTopic"), new ArrayList(), testCases, lastModule, lastCaseTitle, lastPrecondition, isFirstStep);      }      // 3. 保存到 CSV 文件      try (CSVWriter writer = new CSVWriter(new FileWriter(outputCsv))) {            writer.writeAll(testCases);      }      System.out.println("转换完成: " + outputCsv);    }    private static String extractJsonFromXmind(String xmindFile) throws IOException {      try (ZipFile zipFile = new ZipFile(xmindFile)) {            for (Enumeration

澹台忆然 发表于 2025-11-8 05:14:44

很好很强大我过来先占个楼 待编辑

簑威龙 发表于 2025-11-15 12:29:50

东西不错很实用谢谢分享

郦珠雨 发表于 2025-11-27 18:26:17

鼓励转贴优秀软件安全工具和文档!

万俟谷雪 发表于 2025-12-8 12:49:38

热心回复!

栓汨渎 发表于 2025-12-11 01:31:24

热心回复!

咸和璧 发表于 2025-12-13 11:34:38

感谢分享

染悄 发表于 2025-12-25 19:10:18

收藏一下   不知道什么时候能用到

昝沛珊 发表于 2025-12-26 16:43:27

鼓励转贴优秀软件安全工具和文档!

全阳霁 发表于 2026-1-13 18:44:04

过来提前占个楼

瞪皱炕 发表于 2026-1-15 08:06:58

谢谢分享,辛苦了

蔓好 发表于 2026-1-18 15:25:56

收藏一下   不知道什么时候能用到

巨耗 发表于 2026-1-18 19:10:11

收藏一下   不知道什么时候能用到

貊淀 发表于 2026-1-19 10:06:21

分享、互助 让互联网精神温暖你我

痨砖 发表于 2026-1-20 23:49:18

感谢分享,下载保存了,貌似很强大

空娅芬 发表于 2026-1-21 18:06:04

分享、互助 让互联网精神温暖你我

劳暄美 发表于 2026-1-29 04:26:18

感谢分享

欧阳梓蓓 发表于 2026-1-30 03:22:37

感谢发布原创作品,程序园因你更精彩

师悠逸 发表于 2026-2-4 03:56:08

很好很强大我过来先占个楼 待编辑

驳嗦 发表于 2026-2-8 03:10:27

感谢分享,学习下。
页: [1] 2
查看完整版本: 将 XMind 测试用例转换为 CSV 文件导入测试管理平台