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

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

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

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

从这里我们可以分析出来xmind的格式的两个属性是我们用的,title 和topics ,其中title是我们要的内容,topics是内容的个数,这里可以封装两个函数来用,代码我贴出来,因为要求的xls格式不一样

所以具体的逻辑还要具体的去写,我是按照我们工具要求的excel格式来写的,可以给大家参考一下,你们需要什么格式可以在write_excel函数里面调整逻辑.

下一篇再把tkinter设计的gui代码以及如何用pyintaller打包成exe贴上来。注:以下代码都是在Python3环境下的

1 from xmindparser importxmind_to_dict2 importre3 importxlwt4

5 classxmind_to_xls():6 defxmind_num(self,value):7 """获取xmind标题个数"""

8 try:9 return len(value['topics'])10 exceptKeyError:11 return012

13 defxmind_title(self,value):14 """获取xmind标题内容"""

15 return value['title']16

17 defxmind_cat(self,filename):18 '''调试函数,打印内容用的'''

19 self.out =xmind_to_dict(filename)20 self.story = self.out[0]['topic']['topics']21 self.num=len(self.story)22 print(self.out)23 print(self.out[0]['topic']['title'])24 returnself.story,self.num25

26 def write_excel(self,xmind_file,servicename='',editionname='',performer=''):27 '''生成excel文件函数'''

28 self.f=xlwt.Workbook()29 self.sheet1 =self.f.add_sheet('sheet1',cell_overwrite_ok=True)30 self.row0 = ["storyid", '需求名称', '测试用例名称', '执行步骤', '预期结果', '服务名称', '版本', '执行人员']31 #生成第一行

32 for i inrange(0,len(self.row0)):33 self.sheet1.write(0,i,self.row0[i])34 self.out =xmind_to_dict(xmind_file)35 self.xls_name=self.out[0]['topic']['title']36 self.story = self.out[0]['topic']['topics']37 self.storynum =len(self.story)38 j=1 #用例计算器

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

40 for i inrange(0, self.storynum):41 self.storyname = self.story[i]['title']42 print(self.storyname)43 self.regex_str = ".*[\[【](.+?)[\]】].*"

44 self.storyid_reg =re.match(self.regex_str, self.storyname)45 ifself.storyid_reg:46 self.storyid=self.storyid_reg.group(1)#正则取出用例编号

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

48 self.testcase_num=self.xmind_num(self.story[i]['topics'][0])49 for k inrange(0,self.testcase_num):50 self.testcase=self.story[i]['topics'][0]['topics'][k]51 self.testcase_name =self.xmind_title(self.testcase)52 self.testcase_stepnum=self.xmind_num(self.testcase) #每个用例的步骤数量

53 self.sheet1.write(k + i + z + j, 2, self.testcase_name)54 self.sheet1.write(k + i + z +j, 0, self.storyid)55 self.sheet1.write(k + i + z + j, 1, self.storyname)56 self.sheet1.write(k + i + z + j, 5, servicename)57 self.sheet1.write(k + i + z + j, 6, editionname)58 self.sheet1.write(k + i + z + j, 7, performer)59 for x inrange(0,self.testcase_stepnum):60 self.testcase_step=self.testcase['topics'][x]61 self.teststep_title=self.xmind_title(self.testcase_step) #用例步骤名称

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

63 if self.teststep_num !=0:64 for y inrange(0,self.teststep_num):65 self.test_results=self.testcase_step['topics'][y]66 self.test_result=self.xmind_title(self.test_results)#用例结果

67 self.sheet1.write(k + i + z + j+y+1, 3, self.teststep_title)68 self.sheet1.write(k + i + z + j + y+1, 4, self.test_result)69 z = z + y+1

70 else:71 self.test_result=' '

72 self.sheet1.write(k + i + z + j+1 , 3, self.teststep_title)73 self.sheet1.write(k + i + z + j+1 , 4, self.test_result)74 z = z + 1

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

77

78 if __name__ == '__main__':79 xmind_file = "C:\\Users\\Administrator\\Desktop\\版本测试.xmind" #xmind文件

80 servicename='aa'

81 editionname='bb'

82 performer='cc'

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

84 xmind_to_xls().xmind_cat(xmind_file)

python制作脑图_使用Python将xmind脑图转成excel用例(一)相关推荐

  1. python制作音乐模块_用Python打造一个只属于你的专属音乐播放器,享受动手的快乐!...

    平常我们总是用爬虫爬取网页上的音乐,今天我们换个玩法,用Python制作一个独一无二只属于你的音乐播放器,小伙伴们觉得如何?如果觉得提议还不错,那就立即动手吧! 一.需要的库 pygame tkint ...

  2. 如何用python制作三维动画_用Python制作3D动画

    很多小伙伴可能不知道,在3D动画甚至电影制作的过程中,Python也在其中扮演了很重要的角色呢! 比如皮克斯的动画片一般使用Maya软件制作,并且流程中使用到了大量的Maya Python插件. 另外 ...

  3. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(二)

    今天继续新的专题.主要讲解[利用PYTHON制作桌面版爬虫软件]下的如何实现界面功能(一).该讲主要包括以下三个内容:掌握如何编写主函数,运行界面. 了解pywin32模块. 如何用python识别Q ...

  4. python制作表白神器_用Python个女神做一个表白神器

    用Python给女神表白 情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器. 程序介绍 运用pygame制作一个小游戏,当女神用鼠标点击&q ...

  5. python制作阴阳师脚本_利用python制作一个阴阳师小游戏

    利用python制作一个阴阳师小游戏 发布时间:2020-11-27 13:59:49 来源:亿速云 阅读:84 这期内容当中小编将会给大家带来有关利用python制作一个阴阳师小游戏,文章内容丰富且 ...

  6. python制作手机壁纸_用Python生成自己独一无二的手机壁纸

    已经12月份了,马上就要过年了,要不要换一个喜气洋洋.洋洋洒洒.洒扫应对.对牛弹琴的手机壁纸呢? 今天小编给大家表演的节目是:用Python生成自己独一无二的手机壁纸. 首先我们需要选择一个现成的手机 ...

  7. python制作手机壁纸_用Python生成自己专属的手机春节壁纸

    ↑ 关注 + 置顶 ~ 有趣的不像个技术号 马上就要过年了,要不要换一个喜气洋洋.洋洋洒洒.洒扫应对.对牛弹琴的手机壁纸呢? 今天小五给大家表演的节目是:用Python生成自己独一无二的手机壁纸. 首 ...

  8. python制作gif动画_使用Python代码制作GIF动态图

    使用Python PIL.Image 制作GIF图片: import PIL.Image 相关模块 img = Image.open(img_name) 打开图片 img.save(save_name ...

  9. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  10. 用python制作3d动画_-用 Python 做科学计算--Visual-制作3D演示动画

    # Visual-制作3D演示动画 [Visual](http://vpython.org) 是Python的一个简单易用的3D图形库,使用它可以快速创建3D场景.动画.和TVTK相比它更加适合于创建 ...

最新文章

  1. Java 函数式接口以及Lambda举例
  2. SAP Commerce Cloud如何针对Spartacus进行安装
  3. excel下划线转驼峰公式
  4. mongodb save和insert区别
  5. 通过常用监控命令快速发现性能问题
  6. 鸿蒙HI3516-HAP的编译打包和安装
  7. 如何清除BIOS密码
  8. 初识powerpoint的计算机教案,《初识PowerPoint》教案
  9. javashop7.15大型多店铺商城源码 java多店铺商 城系统b2b2c
  10. 边沿触发器(T触发器)
  11. vue elementui table表格序号一列 样式设计
  12. python 切片步长_python 切片步长
  13. 计算机老师素质能力提升计划要求,教师2021个人素质提升计划范文
  14. 我的心只悲伤七次-纪伯伦
  15. 基于apache实现https
  16. 索尼M36h怎么刷第三方recovery?
  17. 基于scapy实现随机源IP的DNS发包工具
  18. 水库大坝安全监测监控系统平台xmind分析+辽阳市水库大坝安全检测平台+志豪未来科技有限公司+陈志豪
  19. Vue/React项目的package.json文件scripts命令解析
  20. 将多个文件压缩成gzip,将gzip解压成多个文件

热门文章

  1. tableau 日周月筛选器_Tableau技巧——快速计算同比和环比(及其衍生)
  2. SCI收录声学学科期刊31种
  3. 10种微信公众号的推广吸粉方法
  4. 电脑连接上WIFI后,如何查看WIFI密码?
  5. 自考本科的单科成绩包括英语和计算机吗,自考问题自考统考科目(例如:英语,计算机等 – 手机爱问...
  6. 阿里云 mysql 导出数据_mysql数据库导出数据库
  7. 芯动科技简答题(数字后端)
  8. 单片机控制无线传输模块nRF905之模块化编程
  9. 求最大值(三种方法)
  10. html自动验证邮件地址格式,JS进行E-mail地址格式验证代码