测试用例xmind转excel

1. 如何让xmind写的测试用例,转化为excel格式

xmind作为测试用例编写工具,具有结构化和可视化表达‌,灵活性和高效性,易于查看和执行‌等好处;但是很多企业测试管理平台又需要用excel导入,于是xmind转excel的自动化就必不可少了
转化的步骤如下:

  1. 看一下xmind里面的测试用例结构
    xmind测试用例

  2. 先用xmind_to_dict转化为固定的dict格式
    转化后的格式如下:
    在这里插入图片描述

  3. 字典格式转化为列表
    在这里插入图片描述

  4. 列表使用panda 写到excel 表格中去

2. 以下为代码

备注: xmind中可能会写一些备注或者非测试用例内容的注释,所以判断了一下最后一个标识为正/反才转化

# ooding: utf-8
from xmindparser import xmind_to_dict
import pandas as pd


file_name = "XX版本测试用例"

_data = xmind_to_dict (f'{file_name}.xmind')[0]['topic']


def opera_dict_to_list(dict_data,_list= []):
    '''输入xmind转来而来的字典格式的数据,然后转化为列表'''
    title_list=[]
    topic_list=[]
    try:
        topics=dict_data.get("topics")
        title=dict_data.get("title")
        # 将前缀追加
        title_list.append(title)
        title_list=_list+title_list
        # 如果到达末尾就返回
        if topics is None :
            yield title_list
        # 如果是列表就存起来
        elif isinstance(topics,list):
            for topic in topics:
                topic_list.append(topic)
    except AttributeError as e :
        print("异常结束")
        return
    # 若列表不存在就递归寻找
    if topic_list:
        for topic in topic_list:
            yield from opera_dict_to_list(topic,title_list)

def  case_data_into_excel(list):
    data={}
    data["用例标题"]=[]
    data["测试步骤"] = []
    data["预期结果"] = []
    data["正反向"] = []
    for case in list:
        # 仅对最后一个为正/反的列表进行组装测试用例
        if case[-1] in ("正","反"):
            # 构造测试用例标题
            data['用例标题'].append('验证:'+'-'.join(case[:-2]))
            # 构造测试用例步骤
            if len(case)>6:
                data['测试步骤'].append(f"1.进入{case[0]}-{case[1]}\n2.进行{case[2]}操作\n3.对{case[3]}进行检查\n4.{'-'.join(case[4:-2])}")
            else:
                data['测试步骤'].append(f'1.进行{"-".join(case[:-2])}操作检查')
            # 构造预期结果
            data['预期结果'].append(case[-2])
            # 正反向表示
            data['正反向'].append(case[-1])
    df = pd.DataFrame(data)
    df.to_excel(f"{file_name}.xlsx",index=False)


if __name__ == '__main__':
    cases_list=[]
    for j in opera_dict_to_list(_data):
        cases_list.append(j[1:])
    case_data_into_excel(cases_list)


转化前的xmind
转化前的xmind

转化后会在当前路径里面生成一个同名的excel
在这里插入图片描述
excel中的内容

转化后excel中的格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值