最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python將xmind腦圖轉(zhuǎn)成excel用例的實(shí)現(xiàn)代碼(一)

 更新時(shí)間:2020年10月12日 10:38:23   作者:晚風(fēng)拂面  
這篇文章主要介紹了使用Python將xmind腦圖轉(zhuǎn)成excel用例的實(shí)現(xiàn)代碼(一),本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

最近接到一個(gè)領(lǐng)導(dǎo)需求,將xmind腦圖直接轉(zhuǎn)成可以導(dǎo)入的excel用例,并且轉(zhuǎn)換成gui可執(zhí)行的exe文件,方便他人使用。

因?yàn)閷?duì)Python比較熟悉,所以就想使用Python3來(lái)實(shí)現(xiàn)這個(gè)功能,先理一下思路,首先要將xmind轉(zhuǎn)換成Python可用的數(shù)據(jù)格式,正好找到了一個(gè)xmindparser庫(kù)可以做這個(gè)事情,然后就好辦了,用xlwt庫(kù)寫成xls文件,再用Python自帶的gui庫(kù) tkinter來(lái)寫 gui界面,最后用pyinstaller來(lái)打包。

計(jì)劃分兩個(gè)py文件來(lái)寫,一個(gè)文件寫excel ,一個(gè)文件寫gui界面,因?yàn)樾枰獙?dǎo)入的字段比較多,而且導(dǎo)入的格式有嚴(yán)格的要求,所以寫excel的邏輯還是有點(diǎn)復(fù)雜的,所以我們確定xmind的文件有相應(yīng)的格式來(lái)寫,測(cè)試編號(hào) 測(cè)試需求 測(cè)試用例標(biāo)題 測(cè)試用例執(zhí)行步驟 測(cè)試用例預(yù)期結(jié)果 測(cè)試用例預(yù)置條件都要按照相應(yīng)的格式來(lái)。格式如圖

通過(guò)xmindparser解析出來(lái)的格式是這樣的,是Python的字典加列表的格式

from xmindparser import xmind_to_dict
import re
import xlwt

class xmind_to_xls():
 def xmind_num(self,value):
  """獲取xmind標(biāo)題個(gè)數(shù)"""
  try:
   return len(value['topics'])
  except KeyError:
   return 0

 def xmind_title(self,value):
  """獲取xmind標(biāo)題內(nèi)容"""
  return value['title']

 def xmind_cat(self,filename):
  '''調(diào)試函數(shù),打印內(nèi)容用的'''
  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文件函數(shù)'''
  self.f=xlwt.Workbook()
  self.sheet1 =self.f.add_sheet('sheet1',cell_overwrite_ok=True)
  self.row0 = ["storyid", '需求名稱', '測(cè)試用例名稱', '執(zhí)行步驟', '預(yù)期結(jié)果', '服務(wù)名稱', '版本', '執(zhí)行人員']
  #生成第一行
  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 #用例計(jì)算器
  z = 0 # 用例結(jié)果數(shù)計(jì)數(shù)器
  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)#正則取出用例編號(hào)
    #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) #每個(gè)用例的步驟數(shù)量
    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) #用例步驟個(gè)數(shù)
     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)#用例結(jié)果
       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\\版本測(cè)試.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)

到此這篇關(guān)于使用Python將xmind腦圖轉(zhuǎn)成excel用例的實(shí)現(xiàn)代碼(一)的文章就介紹到這了,更多相關(guān)Python xmind轉(zhuǎn)excel用例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基于matplotlib實(shí)現(xiàn)繪制三維圖形功能示例

    Python基于matplotlib實(shí)現(xiàn)繪制三維圖形功能示例

    這篇文章主要介紹了Python基于matplotlib實(shí)現(xiàn)繪制三維圖形功能,涉及Python使用matplotlib模塊進(jìn)行三維圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 詳解Python自帶的日期日歷處理calendar庫(kù)的使用

    詳解Python自帶的日期日歷處理calendar庫(kù)的使用

    在?Python?開發(fā)中,我們經(jīng)常需要處理日期和時(shí)間,雖然?datetime?庫(kù)是最常用的選擇,但其實(shí)?Python?標(biāo)準(zhǔn)庫(kù)中的?calendar?模塊也是一個(gè)強(qiáng)大的工具,下面我們就來(lái)看看它的具體使用吧
    2024-12-12
  • python庫(kù)geopy計(jì)算多組經(jīng)緯度距離的實(shí)現(xiàn)方式

    python庫(kù)geopy計(jì)算多組經(jīng)緯度距離的實(shí)現(xiàn)方式

    這篇文章主要介紹了python庫(kù)geopy計(jì)算多組經(jīng)緯度距離的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python復(fù)合條件下的字典排序

    python復(fù)合條件下的字典排序

    這篇文章主要介紹了python復(fù)合條件下的字典排序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python面向?qū)ο笤砼c基礎(chǔ)語(yǔ)法詳解

    Python面向?qū)ο笤砼c基礎(chǔ)語(yǔ)法詳解

    這篇文章主要介紹了Pyhton面向?qū)ο笤砼c基礎(chǔ)語(yǔ)法,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本原理、概念、語(yǔ)法與相關(guān)使用技巧,需要的朋友可以參考下
    2020-01-01
  • python?math模塊使用方法介紹

    python?math模塊使用方法介紹

    math庫(kù)是python的內(nèi)置數(shù)學(xué)類函數(shù)庫(kù),支持整數(shù)和浮點(diǎn)數(shù)運(yùn)算,math模塊下的函數(shù),返回值均為浮點(diǎn)數(shù),除非有說(shuō)明,math模塊提供類似C語(yǔ)言標(biāo)準(zhǔn)定義的數(shù)學(xué)函數(shù)
    2022-08-08
  • Python使用Pandas處理測(cè)試數(shù)據(jù)的方法

    Python使用Pandas處理測(cè)試數(shù)據(jù)的方法

    Pandas是一個(gè)功能極其強(qiáng)大的數(shù)據(jù)分析庫(kù),可以高效地操作各種數(shù)據(jù)集,這篇文章主要介紹了Python自動(dòng)化測(cè)試-使用Pandas來(lái)高效處理測(cè)試數(shù)據(jù),需要的朋友可以參考下
    2023-02-02
  • 淺談tensorflow 中的圖片讀取和裁剪方式

    淺談tensorflow 中的圖片讀取和裁剪方式

    這篇文章主要介紹了淺談tensorflow 中的圖片讀取和裁剪方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python中Scipy庫(kù)在信號(hào)處理中的應(yīng)用詳解

    Python中Scipy庫(kù)在信號(hào)處理中的應(yīng)用詳解

    信號(hào)處理作為數(shù)字信號(hào)處理領(lǐng)域的關(guān)鍵技術(shù),涵蓋了從信號(hào)獲取、傳輸、存儲(chǔ)到最終應(yīng)用的一系列處理步驟,在這篇博客中,我們將深入探討Python中Scipy庫(kù)在信號(hào)處理領(lǐng)域的應(yīng)用,需要的朋友可以參考下
    2023-12-12
  • Python中XML轉(zhuǎn)JSON、XML轉(zhuǎn)字典代碼示例

    Python中XML轉(zhuǎn)JSON、XML轉(zhuǎn)字典代碼示例

    大家都知道python的字典和json類似,那么可不可以先將xml轉(zhuǎn)換成json再去做其他的事情呢,下面這篇文章主要給大家介紹了關(guān)于Python中XML轉(zhuǎn)JSON、XML轉(zhuǎn)字典的相關(guān)資料,需要的朋友可以參考下
    2024-02-02

最新評(píng)論

资源县| 连城县| 黄骅市| 满城县| 南平市| 淮安市| 土默特左旗| 醴陵市| 云安县| 渝北区| 桃源县| 延寿县| 雅江县| 平顺县| 龙里县| 肇州县| 沙雅县| 高雄市| 平利县| 罗源县| 新邵县| 南靖县| 江川县| 镶黄旗| 潮州市| 彝良县| 建水县| 莫力| 鹿邑县| 安徽省| 阿勒泰市| 都匀市| 宝兴县| 牟定县| 观塘区| 中宁县| 潼关县| 开化县| 双鸭山市| 博白县| 东丰县|