xmind转换为excel-用例
xmind用例格式import xlwtimport osfrom xmindparser import xmind_to_dict# 1、调用xmind_to_dict 将xmind转为dictdef xmind_dict(filename):dict_data = xmind_to_dict(filename)#输出topics下的子节点topics_data = dict_data[0]['
·
目录
一、xmind用例格式
注:标题不能超过三级
二、python代码
import xlwt
import os
import json
from xmindparser import xmind_to_dict
# 1、调用 xmind_to_dict 将xmind转为dict
def xmind_dict(filename):
dict_data = xmind_to_dict(filename)
#输出topics下的子节点
topics_data = dict_data[0]['topic']['topics']
return topics_data
# 2、读取dict,获取数据
def ng_test(testdata):
case_sum_temp = []
# print(json.dumps(testdata, ensure_ascii=False) )
for i in range(len(testdata)):
case_n1 = testdata[i]['title']
b = len(testdata[i]['topics'])
for j in range(b):
case_n2 = testdata[i]['topics'][j]['title']
c = len(testdata[i]['topics'][j]['topics'])
for x in range(c):
case_n3 = testdata[i]['topics'][j]['topics'][x]['title']
case_name = '【'+case_n1+'-'+case_n2+'】'+case_n3 # 用例名
#遇到不符合的case则忽略,判断条件-值错误
try:
case_premise = testdata[i]['topics'][j]['topics'][x]['topics'][0]['title']
case_level = testdata[i]['topics'][j]['topics'][x]['topics'][0]['topics'][1]['title']
except KeyError as a:
continue
#是否冒烟
try:
smoke = testdata[i]['topics'][j]['topics'][x]['topics'][0]['topics'][1]['topics'][0]['title']
case_smoke = "是" #不为空就为是
except KeyError as exe:
case_smoke = "否"
#步骤&预期
d = testdata[i]['topics'][j]['topics'][x]['topics'][0]['topics'][0]['topics']
case_step = ""
case_result =""
for y in range(len(d)):
step_temp = testdata[i]['topics'][j]['topics'][x]['topics'][0]['topics'][0]['topics'][y]['title']
case_step = case_step + step_temp #步骤
expect_result_temp = testdata[i]['topics'][j]['topics'][x]['topics'][0]['topics'][0]['topics'][y]['topics'][0]['title']
case_result = case_result + expect_result_temp #预期
#保存为元祖添加到列表中
case_sum_temp.append([case_name,case_premise,case_step,case_result,case_level,case_smoke])
return case_sum_temp
#3、excel文件地址及文件名,写入对应值
def excel_info(filename):
#a表格基本信息
excel_name = filename[filename.rindex('/') + 1:filename.index('.xmind')]
excel_path = filename[:filename.rindex('/')]
excel_file = os.path.join(excel_path, excel_name + '.xls')
return excel_file
# 4、调用 数据存储至excel中
def excel_data(excel_name,testdata):
# a、创建表格,初始化
workbook = xlwt.Workbook(encoding='utf-8')
data_sheet = workbook.add_sheet('sheet1')
# b、输入表头
excel_title = ['用例名称', '前置条件', '用例步骤', '预期结果', '优先级', '是否冒烟case']
for i in range(len(excel_title)):
data_sheet.write(0, i, excel_title[i])
#c、输入case数据
for x in range(len(ng_test(testdata))):
for y in range(len(excel_title)):
data_sheet.write(x+1, y, ng_test(testdata)[x][y])
# d、保存
workbook.save(excel_name)
return data_sheet
if __name__ == '__main__':
filename = 'case路径.xmind'
excel_data(excel_info(filename),xmind_dict(filename))
print("运行结束!")
三、转换结果
四、更新日志
0706更新
-修复bug
-对于不符合规范的case进行忽略,方便对case进行注释
-读取可优化为jsonpath读取
更多推荐
已为社区贡献1条内容
所有评论(0)