1. 如何让xmind写的测试用例,转化为excel格式
xmind作为测试用例编写工具,具有结构化和可视化表达,灵活性和高效性,易于查看和执行等好处;但是很多企业测试管理平台又需要用excel导入,于是xmind转excel的自动化就必不可少了
转化的步骤如下:
-
看一下xmind里面的测试用例结构
-
先用xmind_to_dict转化为固定的dict格式
转化后的格式如下:
-
字典格式转化为列表
-
列表使用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
转化后会在当前路径里面生成一个同名的excel
excel中的内容