xmind转csv导入禅道或者testlink

很多测试人员使用的xmind编写测试用例,条理清晰且直观,但是面临一个使用后归档的问题,如果直接放到svn或者git上还算简单,有些是要上传到禅道等系统进行用例管理,按模板一条一条的拷贝任务量就大了,于是就参考文档自己编写了一个导入禅道的工具

1、规范用例模板xmin,因为解析的时候是按模板来的,如果模板变化太大可能需要修改代码
在这里插入图片描述
导入禅道的csv模板(这几个字段导入就可以了,删减了一些字段)
在这里插入图片描述

2、运行环境
python版本:python3.x
lib包:xmindparser,xlwt,pandas 可pip直接安装

3、代码详情

from xmindparser import xmind_to_dict
import os, sys
import xlwt
import pandas as pd

class Xmind2Csv:

    def toCsv(path):
        xm = xmind_to_dict(path)[0]['topic'] #读取xmind数据
        # print(json.dumps(xm, indent=2, ensure_ascii=False))

        workbook = xlwt.Workbook(encoding='GBK') #创建workbook
        worksheet = workbook.add_sheet(xm['title'], cell_overwrite_ok=True) #创建sheet
        row0 = ['所属模块', '用例标题', '前置条件', '步骤', '预期', '关键词', '优先级','用例类型', '适用阶段']
        for i in range(len(row0)):
            worksheet.write(0, i, row0[i])

        x = 0 #写入数据的当前函数
        for i in range(len(xm['topics'])):
            test_module = xm['topics'][i] #获取测试模块

            # print(test_module['title'])
            for j in range(len(test_module['topics'])):
                test_suit = test_module['topics'][j] #获取功能或用例集
                # print(test_suit)
                for k in range(len(test_suit['topics'])):
                    test_case = test_suit['topics'][k] #获取用例标题
                    # print(test_case)
                    # print(test_case['topics'])
                    if test_case.get('topics'):
                        for n in range(len(test_case['topics'])):
                            test_step = test_case['topics'][n] #获取步骤
                            # print(test_step)
                            x += 1
                            if(test_module['title'] == "机器人"):
                                worksheet.write(x, 0, "/机器人(#84)")
                            elif(test_module['title'] == "控制器"):
                                worksheet.write(x, 0, "/控制器(#85)")
                            elif (test_module['title'] == "设计器"):
                                worksheet.write(x, 0, "/设计器(#86)")
                            else:
                                worksheet.write(x, 0, "")
                            worksheet.write(x, 1, test_case['title'])
                            worksheet.write(x, 2, "")
                            worksheet.write(x, 3, test_step['title'])
                            if test_step.get('topics'):
                                worksheet.write(x, 4, test_step['topics'][0]['title'])
                            else:
                                worksheet.write(x, 4, "")

                            worksheet.write(x, 5, "")
                            worksheet.write(x, 6, "3")
                            worksheet.write(x, 7, "功能测试")
                            worksheet.write(x, 8, "功能测试阶段")
                    else:
                        x += 1
                        if (test_module['title'] == "机器人"):
                            worksheet.write(x, 0, "/机器人(#84)")
                        elif (test_module['title'] == "控制器"):
                            worksheet.write(x, 0, "/控制器(#85)")
                        elif (test_module['title'] == "设计器"):
                            worksheet.write(x, 0, "/设计器(#86)")
                        else:
                            worksheet.write(x, 0, "")
                        worksheet.write(x, 1, test_case['title'])
                        worksheet.write(x, 2, "")
                        worksheet.write(x, 3, "")
                        worksheet.write(x, 4, "")

                        worksheet.write(x, 5, "")
                        worksheet.write(x, 6, "3")
                        worksheet.write(x, 7, "功能测试")
                        worksheet.write(x, 8, "功能测试阶段")

        workbook.save(xm["title"] + ".xls")
        data_xls = pd.read_excel(xm["title"] + ".xls", index_col=0)
        data_xls.to_csv(xm["title"] + ".csv", encoding='GBK')
        os.remove(xm["title"] + ".xls")



if __name__ == "__main__":
     Xmind2Csv.toCsv(sys.argv[1])
#    Xmind2Csv.toCsv("0515版本.xmind")

解释:先把xmind内容解析成xml,然后根据json取值存入到xls中,禅道支持的是csv格式,所以就转了一下格式保存为csv格式并删除xls

4、在xmind存放文件夹路径上面输入cmd或者打开cmd到用例文件夹下,执行如下命令,如:

  python xmind2excel.py 0515版本.xmind

在这里插入图片描述
5、数据导入到禅道

选择GBK格式和生成的csv文件
在这里插入图片描述

### XMind 测试用模板概述 为了创建适合导入到不同测试管理工具中的测试用,可以利用特定结构化的XMind模板来组织这些用。对于希望将XMind文档换成TestLink XML文件的情况,存在一种名为`xmind2testlink`的命令行工具能够处理此过程[^1]。 ```bash xmind2testlink XMind测试用模板.xmind -xml => XMind测试用模板.xml ``` 而对于那些倾向于使用作为项目管理和缺陷跟踪系统的团队来说,则有另一个脚本叫做`xmind2testcase`用于生成CSV格式的数据集以便上传至该平台[^2]: ```bash xmind2testcase XMind测试用模板.xmind -csv => XMind测试用模板.csv ``` 值得注意的是,在某些情况下可能需要调整`xmind2testcase`源码以适应内部使用的自定义模板需求[^4]。这表明虽然官方提供了基础版本的支持,但在实际应用过程中仍需考虑企业特有的业务逻辑或格式要求。 当涉及到具体如何构建一个合适的XMind测试用模板时,通常建议遵循如下几个原则: - 清晰地标明每个测试项的目标; - 提供详尽的前提条件描述; - 列举所有必要的输入数据以及预期的结果说明; - 如果适用的话,还可以加入优先级标签或者其他元数据字段; 至于获取具体的模板实方面,可以通过启动相关服务并访问指定URL地址(如<http://127.0.0.1:5001>),在线查看和下载所需的XMind文件测试用[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值