图形化界面的Xmind用例转excel工具

界面

在这里插入图片描述

convert.py

xmind转换为excel

# !/Desktop/codearea/pytestlearn2/venv/bin/python3.9
"""
@Author:Zhming
@Project:XmindtoExcelGUI 
@File:convert
@Software:PyCharm 
@Date:2022/3/3
"""

import xlwt
from xmindparser import xmind_to_dict


def handle_xmind(filename):
    out = xmind_to_dict(filename)
    return out[0]['topic']['topics']


def handle_path(topic, topics_lists, title):
    """
    遍历解析后的xmind数据
    :param topic:xmind解析后的数据
    :param topics_lists:从topic提取的数据存放的列表
    :param title:从topic提取的title
    :return:
    """
    # title去除首尾空格
    title = title.strip()
    # 如果调用本方法,则concatTitle赋值为第一个层级的名称(所属模块名称)
    if len(title) == 0:
        concatTitle = topic['title'].strip()
    else:
        concatTitle = title + '|' + topic['title'].strip()
    # 如果第一层下没有数据了,那么就把第一层级的名称填加到topics_lists里
    if topic.__contains__('topics') == False:
        topics_lists.append(concatTitle)
    # 如果有,那么就遍历下一个层级......这样就把所有title都写到topics_lists里了
    else:
        for d in topic['topics']:
            handle_path(d, topics_lists, concatTitle)


def handle_title(topics):
    """
    判断是title的类别:所属模块,所属子模块,用例,操作步骤,预期结果,备注
    :param topics: 传入topic的列表
    :return: 经过处理的字典,{'model': '...', 'sub_model': '...', 'case': '...', 'step': '...', 'expect': '...'}

    """
    list = []
    for l in topics:
        dict = {
   }
        for i in l:
            if "模块" in i.split("_"):
                dict["model"] = i[3:]
            elif "子模块" in i.split("_"):
                dict["sub_model"] = i[4:]
            elif "测试用例:" in i or "测试用例:" in i:
                dict["case"] = i[5:]
            elif "步骤:" in i or "步骤:" in i:
                dict["step"] = i[3:]
            elif "预期:" in i or "预期:" in i:
                dict["expect"] = i[3:]
            elif "备注:" in i or "备注:" in i:
                dict["remark"] = i[3:]
            else:
                try:
                    dict["case"] = dict["case"] + "_" + i
                except:
                    pass
        list.append(dict)
    return list


def handle_topics(topics):
    index = 0
    title_lists = []
    # 遍历第一层级的分支(所属模块)
    for h in topics:
        topics_lists = []
        handle_path(h, topics_lists, '')
        # print("这个是lists,", topics_lists)
        # 取出topics下所有的title放到1个列表中
        for j in range(0, len(topics_lists)):
            title_lists.append(topics_lists[j].split('|'))
    return title_lists


def write_to_temp1(list, excelname):
    """
    把解析的xmind文件写到xls文件里
    使用基础模板
    :param list: 经过处理的字典,格式 [{'model': '...', 'sub_model': '...', 'case': '...', 'step': '...','expect': '.'},{...},...]
    :param excelname: 输出的excel文件路径,文件名固定为:xmind文件名.xls
    :return:
    """
    f = xlwt.Workbook()
    # 生成excel文件
    sheet = f.add_sheet('测试用例', cell_overwrite_ok=True)
    row0 = [
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值