ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 将xmind用例转换为excel用例

2021-11-08 20:32:42  阅读:154  来源: 互联网

标签:case title python topics excel topic 用例 print


# -*- coding: utf-8 -*-

from xmindparser import xmind_to_dict
import xlwt

# 记录列数,全局变量,还原方便
columnIndex = 0
# 记录行数
rowIndex = 1
# 每个完整用例子主题的个数
caseCount = 0


def get_xmind_zen_dict(ws, main_topic):
"""
ws:工作表
main_topic:主功能点
"""
# 获取功能模块个数
feature_topic_count = len(case_topics_count)
global rowIndex
global columnIndex
global caseCount

title_list = ['用例目录', '用例名称', '前提条件', '操作步骤', '期望结果']
# 用例标题写入excel首行
for j in range(0, len(title_list)):
ws.write(0, j, title_list[j])
j += 1

# 比对功能点,并写入固定列
for index in range(0, feature_topic_count):
# 当前层级主题的标题
topic_title = case_topics_count[index]['title']
# 将已经提取出来的外层主题进行对比,设置为最外层的用例名
if topic_title in main_topic:
columnIndex = 1 # 设置功能点key到固定列
# 将功能点写入固定列
ws.write(rowIndex, columnIndex, topic_title)

if 'topics' in case_topics_count[index].keys():
# 开始读取功能用例,并记录用例个数
caseCount += 1
topic_topics = case_topics_count[index]['topics'] # 获取用例步骤

# 写前提条件
if 'topics' in topic_topics[0]:
qianti_topics = topic_topics[0]['topics']
qianti_topics_j = []
for title in qianti_topics:
qianti_topics = title['title'].encode('utf-8') # unicode编码转str
qianti_topics_j.append(qianti_topics) # 追加内容
qianti = "\n".join([str(e) for e in qianti_topics_j]) # 拼接并换行
ws.write(rowIndex, columnIndex + 1, qianti)

# 写步骤
step_topics = topic_topics[1]['topics']
#print(type(step_topics))
step_topics_j = []
for title in step_topics:
step_topics = title['title'].encode('utf-8')
#print('=====')
step_topics_j.append(step_topics)
#print(step_topics_j)
step = "\n".join([str(e) for e in step_topics_j]) # 拼接多个步骤并换行
ws.write(rowIndex, columnIndex + 2, step)
#print('===步骤==')


# 写预期结果
yuqi_topics = topic_topics[2]['topics']
yuqi_topics_j = []
for title in yuqi_topics:
yuqi_topics = title['title'].encode('utf-8')
#print(yuqi_topics)
yuqi_topics_j.append(yuqi_topics)
yuqi = "\n".join([str(e) for e in yuqi_topics_j])
ws.write(rowIndex, columnIndex + 3, yuqi)



rowIndex += 1

# 写系统版本,功能模块
system_version = 'IoT Platform 2.1-系统管理优化'
for i in range(0, caseCount):
ws.write(i+1, 0, system_version)


print('用例总数%s:' % caseCount)

if __name__ == '__main__':
# 用例地址
file_path = 'Iot Platform V2.1系统管理优化用例.xmind'
#file_path = 'Iot platform.xmind'
save_file = 'export.xlsx'

# 首层画布
xmind_origin = xmind_to_dict(file_path)
#print('+++画布所有内容+++')
#print(xmind_origin)

# 用例标题
case_title = xmind_origin[0]['topic']['title']
#print('--取出用例标题---')
#print(case_title)

# 主用例
case_topics = xmind_origin[0]['topic']['topics']
#print('---取出各模块用例--')
#print(case_topics)

# 取出单个模块的功能用例
case_topics_count = case_topics[0]['topics']
#print('---取出单个模块的功能用例点--')
#print(case_topics_count)

# 需要把功能点title记录下来,以便进行匹配
main_topic = []
for topic in case_topics_count:
main_topic.append(topic['title'])
#print('==取出功能点title==')
#print(main_topic)

# 使用xlwt模块
wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet('Test', cell_overwrite_ok=True)


# 用例集遍历
get_xmind_zen_dict(ws, main_topic)

# 保存Excel文档
wb.save('export.xls')

标签:case,title,python,topics,excel,topic,用例,print
来源: https://www.cnblogs.com/relustarry/p/15526022.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有