找回密码
 立即注册
首页 业界区 安全 将 XMind 测试用例转换为 CSV 文件导入测试管理平台 ...

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

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


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

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

准备工作


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

1. XMind文件格式

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

2. 编写转换脚本

用 Java 可以快速把文本解析成 CSV,例如:
[code]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

相关推荐

您需要登录后才可以回帖 登录 | 立即注册