from xmindparser import xmind_to_dict
from ReadeXmind import ParserXmind
import json
class ParserXmind:
def __init__(self,xmind_path):
self.xmind_path = xmind_to_dict(xmind_path)[0]
# 分割标识
self.flag = '=>'
# 解析结果
self.parser_result = {}
self.paserXmind()
def parserTestCase(self,Case):
res = {}
for param in Case:
k = param.get("title")
v = param.get("topics")[0].get("title")
res.update({k: v})
return res
def paserXmind(self,parser_dict=None,parent_dir=''):
k = parser_dict or self.xmind_path
title = k.get('title')
topic = k.get('topic')
topics = k.get('topics')
parent_dir = f"{parent_dir}{self.flag}{title}"
if topic:
self.paserXmind(topic, parent_dir)
if topics:
for x in topics:
self.paserXmind(x, parent_dir)
if title == 'TestCase':
parent_dir = f'{parent_dir}{self.flag}{topics[0].get("title")}'
parent_dir = parent_dir.strip(f'{self.flag}')
vv = self.parserTestCase(topics[0].get("topics"))
self.parser_result.update({parent_dir: vv})
class ParamXmindBody(list):
def __init__(self,need_choice_case,*args,**kwargs):
list.__init__(self,*args,**kwargs)
parser_result_text = ParserXmind(r'C:\Users\80640\Desktop\链接、事务响应时间过长.xmind')
case_dict = parser_result_text.parser_result
for case in case_dict.keys():
if str(case).startswith(need_choice_case):
self.append([case_dict[case].get('Body'),case_dict[case].get('斷言'),case_dict[case].get('描述')])
if __name__ == '__main__':
print(ParamXmindBody('画布 1=>管理系統=>退出'))
if __name__ == '__main__':
print(ParserXmind(r'C:\Users\80640\Desktop\链接、事务响应时间过长.xmind').parser_result)
解析Xmind转成用例
最新推荐文章于 2024-06-20 14:47:46 发布