python实现xmind_使用Python将xmind脑图转成excel用例的实现代码(一)

最近接到一个领导需求,将xmind脑图直接转成可以导入的excel用例,并且转换成gui可执行的exe文件,方便他人使用。

因为对Python比较熟悉,所以就想使用Python3来实现这个功能,先理一下思路,首先要将xmind转换成Python可用的数据格式,正好找到了一个xmindparser库可以做这个事情,然后就好办了,用xlwt库写成xls文件,再用Python自带的gui库 tkinter来写 gui界面,最后用pyinstaller来打包。

计划分两个py文件来写,一个文件写excel ,一个文件写gui界面,因为需要导入的字段比较多,而且导入的格式有严格的要求,所以写excel的逻辑还是有点复杂的,所以我们确定xmind的文件有相应的格式来写,测试编号 测试需求 测试用例标题 测试用例执行步骤 测试用例预期结果 测试用例预置条件都要按照相应的格式来。格式如图

2020101210340473.png

通过xmindparser解析出来的格式是这样的,是Python的字典加列表的格式

2020101210340474.png

from xmindparser import xmind_to_dict

import re

import xlwt

class xmind_to_xls():

def xmind_num(self,value):

"""获取xmind标题个数"""

try:

return len(value['topics'])

except KeyError:

return 0

def xmind_title(self,value):

"""获取xmind标题内容"""

return value['title']

def xmind_cat(self,filename):

'''调试函数,打印内容用的'''

self.out = xmind_to_dict(filename)

self.story = self.out[0]['topic']['topics']

self.num=len(self.story)

print(self.out)

print(self.out[0]['topic']['title'])

return self.story,self.num

def write_excel(self,xmind_file,servicename='',editionname='',performer=''):

'''生成excel文件函数'''

self.f=xlwt.Workbook()

self.sheet1 =self.f.add_sheet('sheet1',cell_overwrite_ok=True)

self.row0 = ["storyid", '需求名称', '测试用例名称', '执行步骤', '预期结果', '服务名称', '版本', '执行人员']

#生成第一行

for i in range(0,len(self.row0)):

self.sheet1.write(0,i,self.row0[i])

self.out = xmind_to_dict(xmind_file)

self.xls_name=self.out[0]['topic']['title']

self.story = self.out[0]['topic']['topics']

self.storynum = len(self.story)

j=1 #用例计算器

z = 0 # 用例结果数计数器

for i in range(0, self.storynum):

self.storyname = self.story[i]['title']

print(self.storyname)

self.regex_str = ".*[\[【](.+?)[\]】].*"

self.storyid_reg = re.match(self.regex_str, self.storyname)

if self.storyid_reg:

self.storyid=self.storyid_reg.group(1)#正则取出用例编号

#print(self.storyid_reg.group(1))

self.testcase_num=self.xmind_num(self.story[i]['topics'][0])

for k in range(0,self.testcase_num):

self.testcase=self.story[i]['topics'][0]['topics'][k]

self.testcase_name =self.xmind_title(self.testcase)

self.testcase_stepnum=self.xmind_num(self.testcase) #每个用例的步骤数量

self.sheet1.write(k + i + z + j, 2, self.testcase_name)

self.sheet1.write(k + i + z + j, 0, self.storyid)

self.sheet1.write(k + i + z + j, 1, self.storyname)

self.sheet1.write(k + i + z + j, 5, servicename)

self.sheet1.write(k + i + z + j, 6, editionname)

self.sheet1.write(k + i + z + j, 7, performer)

for x in range(0,self.testcase_stepnum):

self.testcase_step=self.testcase['topics'][x]

self.teststep_title=self.xmind_title(self.testcase_step) #用例步骤名称

self.teststep_num=self.xmind_num(self.testcase_step) #用例步骤个数

if self.teststep_num != 0:

for y in range(0,self.teststep_num):

self.test_results=self.testcase_step['topics'][y]

self.test_result=self.xmind_title(self.test_results)#用例结果

self.sheet1.write(k + i + z + j+y+1, 3, self.teststep_title)

self.sheet1.write(k + i + z + j + y+1, 4, self.test_result)

z = z + y+1

else:

self.test_result=' '

self.sheet1.write(k + i + z + j+1 , 3, self.teststep_title)

self.sheet1.write(k + i + z + j+1 , 4, self.test_result)

z = z + 1

j=j+k

self.f.save(self.xls_name+'.xls') #xls名称取xmind主题名称

if __name__ == '__main__':

xmind_file = "C:\\Users\\Administrator\\Desktop\\版本测试.xmind" # xmind文件

servicename='aa'

editionname='bb'

performer='cc'

#xmind_to_xls().write_excel(xmind_file,servicename,editionname,performer)

xmind_to_xls().xmind_cat(xmind_file)

到此这篇关于使用Python将xmind脑图转成excel用例的实现代码(一)的文章就介绍到这了,更多相关Python xmind转excel用例内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值