久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

使用python把xmind轉換成excel測試用例的實現代碼

瀏覽:5日期:2022-07-08 15:34:53

前言

因為寫好了測試xmind腦圖后,然后再編寫測試用例,實在是太麻煩了,所以我寫了一點測試用例后,就網上百度了下,怎么直接把xmind腦圖轉換成excel測試用例,純個人學習筆記

本文參考:https://www.jb51.net/article/197246.htm

https://www.jb51.net/article/197249.htm

提示:以下是本篇文章正文內容,下面可供參考

一、確定好自己的xmind的用例格式

因為xmind的格式關系到編寫代碼的邏輯關系,所以需要先確定好自己的xmind的格式,本人學習時使用的格式如下:

使用python把xmind轉換成excel測試用例的實現代碼

二、xmindparser庫的使用

1.下載庫

默認下載最新庫,在配好環境python環境變量的前提下,cmd中輸入如下命令:

pip install xmindparser

或直接在pycharm中,點擊左上角“File” > Settings(或者直接Ctrl+Alt+s) > Project:你的項目名稱 > Python Interpreter > + > 搜索xmindparser > Install Package

使用python把xmind轉換成excel測試用例的實現代碼使用python把xmind轉換成excel測試用例的實現代碼使用python把xmind轉換成excel測試用例的實現代碼使用python把xmind轉換成excel測試用例的實現代碼

2.xmindparser的使用

代碼如下(示例):

from xmindparser import xmind_to_dictimport jsonxm = xmind_to_dict('sulinkAPP.xmind')[0][’topic’]# indent為顯示json格式,ensure_ascii未顯示為中文,不顯示ASCII碼print(json.dumps(xm, indent=2, ensure_ascii=False))

運行結果顯示為:

{ 'title': 'sulinkAPP', 'topics': [{ 'title': '登錄', 'topics': [{ 'title': '正向用例', 'topics': [{ 'title': '正確的手機號碼一鍵登錄', 'topics': [{ 'title': '進入‘登錄/注冊’頁面', 'topics': [{ 'title': '成功進入‘登錄/注冊’頁面' }] }, { 'title': '選中‘我已閱讀并同意用戶協議’,點擊‘本機號碼一鍵登錄’', 'topics': [{ 'title': '進入‘手機快捷登錄頁面’' }] }, { 'title': '點擊‘一鍵登錄’', 'topics': [{ 'title': '登錄成功,跳轉至‘我的’頁面' }] }] }, { 'title': '正確的手機號碼及驗證碼登錄', 'topics': [{ 'title': '進入‘登錄/注冊’頁面', 'topics': [{ 'title': '成功進入‘登錄/注冊’頁面' }] }, { 'title': '點擊‘其他登錄方式’', 'topics': [{ 'title': '成功進入‘手機登錄’頁面' }] }, { 'title': '選擇正確的區號,輸入正確的手機號碼,點擊‘獲取驗證碼’', 'topics': [{ 'title': '提示‘驗證碼已發送’,并正確收到驗證碼' }] }, { 'title': '正確輸入收到的驗證碼,選中‘我已閱讀并同意用戶協議’,點擊登錄', 'topics': [{ 'title': '登錄成功,跳轉至‘我的’頁面' }] }] }] }] }]}

三、xlwt庫的使用

1.下載xlwt庫

默認下載最新庫,在配好環境python環境變量的前提下,cmd中輸入如下命令:

pip install xlwt

或如同xmindparser一樣,在pycharm中下載

2.xlwt庫的簡單使用

簡單的使用如下:

import xlwt # 導入模塊workbook = xlwt.Workbook(encoding=’utf-8’) # 創建workbook 對象worksheet = workbook.add_sheet(’sheet1’) # 創建工作表sheetworksheet.write(0, 0, ’hello’) # 往表中寫內容,第一各參數 行,第二個參數列,第三個參數內容workbook.save(’students.xls’) # 保存表為students.xls

詳細的使用,可以參照此文章:https://www.jb51.net/article/154535.htm

四、讀取xmind數據并寫入excel表格中

1.簡單的創建一個用例excel表格,并寫入第一行數據

代碼如下

import xlwt # 導入模塊from xmindparser import xmind_to_dictxm = xmind_to_dict('sulinkAPP.xmind')[0][’topic’]# 讀取xmind數據workbook = xlwt.Workbook(encoding=’utf-8’) # 創建workbook對象worksheet = workbook.add_sheet(xm['title'], cell_overwrite_ok=True) # 創建工作表,并設置可以重寫單元格內容row0 = ['testcaseid', ’需求名稱’, ’測試用例名稱’, ’執行步驟’, ’預期結果’, ’服務名稱’, ’版本’, ’執行人員’]# 寫成excel表格用例的要素for i in range(len(row0)): worksheet.write(0, i, row0[i])

2.讀取xmind數據,然后寫入上面表格中

在上面的代碼的基礎上添加點,把xmind數據寫入excel表格中

import xlwt # 導入模塊from xmindparser import xmind_to_dictxm = xmind_to_dict('sulinkAPP.xmind')[0][’topic’]# 讀取xmind數據workbook = xlwt.Workbook(encoding=’utf-8’) # 創建workbook對象worksheet = workbook.add_sheet(xm['title'], cell_overwrite_ok=True) # 創建工作表,并設置可以重寫單元格內容row0 = ['testcaseid', ’需求名稱’, ’測試用例名稱’, ’執行步驟’, ’預期結果’, ’服務名稱’, ’版本’, ’執行人員’]# 寫成excel表格用例的要素for i in range(len(row0)): worksheet.write(0, i, row0[i])x = 0 # 寫入數據的當前行數z = 0 # 用例的編號for i in range(len(xm['topics'])): test_module = xm['topics'][i] for j in range(len(test_module['topics'])): test_suit = test_module['topics'][j] for k in range(len(test_suit['topics'])): test_case = test_suit['topics'][k] z += 1 c1 = len(test_case['topics'])# 執行步驟有幾個 for n in range(len(test_case['topics'])): x += 1 test_step = test_case['topics'][n] test_except = test_step['topics'][0] worksheet.write(x, 4, f'{n + 1}.' + test_except['title'])# 預期結果 worksheet.write(x, 3, f'{n + 1}.' + test_step['title']) # 執行步驟 worksheet.write_merge(x - c1 + 1, x, 0, 0, z) # testcaseid worksheet.write_merge(x - c1 + 1, x, 1, 1, test_module['title']) # 測試需求名稱 worksheet.write_merge(x - c1 + 1, x, 2, 2, test_case['title']) # 測試用例名稱workbook.save(xm['title'] + '.xls') # xls名稱取xmind主題名稱

執行結果如下:使用python把xmind轉換成excel測試用例的實現代碼

3.調整下表格的格式

在上面的代碼的基礎上修改下,簡單的增加表格的樣式

import xlwt # 導入模塊from xmindparser import xmind_to_dictdef styles(): '''設置單元格的樣式的基礎方法''' style = xlwt.XFStyle() return styledef borders(status=1): '''設置單元格的邊框 細實線:1,小粗實線:2,細虛線:3,中細虛線:4,大粗實線:5,雙線:6,細點虛線:7大粗虛線:8,細點劃線:9,粗點劃線:10,細雙點劃線:11,粗雙點劃線:12,斜點劃線:13''' border = xlwt.Borders() border.left = status border.right = status border.top = status border.bottom = status return borderdef heights(worksheet, line, size=4): '''設置單元格的高度''' worksheet.row(line).height_mismatch = True worksheet.row(line).height = size*256def widths(worksheet, line, size=11): '''設置單元格的寬度''' worksheet.col(line).width = size*256def alignments(**kwargs): '''設置單元格的對齊方式 status有兩種:horz(水平),vert(垂直) horz中的direction常用的有:CENTER(居中),DISTRIBUTED(兩端),GENERAL,CENTER_ACROSS_SEL(分散),RIGHT(右邊),LEFT(左邊) vert中的direction常用的有:CENTER(居中),DISTRIBUTED(兩端),BOTTOM(下方),TOP(上方)''' alignment = xlwt.Alignment() if 'horz' in kwargs.keys(): alignment.horz = eval(f'xlwt.Alignment.HORZ_{kwargs[’horz’].upper()}') if 'vert' in kwargs.keys(): alignment.vert = eval(f'xlwt.Alignment.VERT_{kwargs[’vert’].upper()}') alignment.wrap = 1 # 設置自動換行 return alignmentdef fonts(name=’宋體’, bold=False, underline=False, italic=False, colour=’black’, height=11): '''設置單元格中字體的樣式 默認字體為宋體,不加粗,沒有下劃線,不是斜體,黑色字體''' font = xlwt.Font() # 字體 font.name = name # 加粗 font.bold = bold # 下劃線 font.underline = underline # 斜體 font.italic = italic # 顏色 font.colour_index = xlwt.Style.colour_map[colour] # 大小 font.height = 20 * height return fontdef patterns(colors=1): '''設置單元格的背景顏色,該數字表示的顏色在xlwt庫的其他方法中也適用,默認顏色為白色 0 = Black, 1 = White,2 = Red, 3 = Green, 4 = Blue,5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green,18 = Dark Blue, 19 = Dark Yellow ,almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray,23 = Dark Gray, the list goes on...''' pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN pattern.pattern_fore_colour = colors return patterndef main(): xm = xmind_to_dict('sulinkAPP.xmind')[0][’topic’] # print(json.dumps(xm, indent=2, ensure_ascii=False)) # indent為顯示json格式,ensure_ascii為顯示為中文,不顯示ASCII碼 workbook = xlwt.Workbook(encoding=’utf-8’) # 創建workbook對象 worksheet = workbook.add_sheet(xm['title'], cell_overwrite_ok=True) # 創建工作表 row0 = ['testcaseid', ’需求名稱’, ’測試用例名稱’, ’執行步驟’, ’預期結果’, ’服務名稱’, ’版本’, ’執行人員’] sizes = [10, 11, 30, 60, 50, 11, 11, 11] dicts = {'horz': 'CENTER', 'vert': 'CENTER'} style2 = styles() style2.alignment = alignments(**dicts) style2.font = fonts() style2.borders = borders() style2.pattern = patterns(7) heights(worksheet, 0) for i in range(len(row0)): worksheet.write(0, i, row0[i], style2) widths(worksheet, i, size=sizes[i]) style = styles() style.borders = borders() x = 0 # 寫入數據的當前行數 z = 0 # 用例的編號 for i in range(len(xm['topics'])): test_module = xm['topics'][i] for j in range(len(test_module['topics'])): test_suit = test_module['topics'][j] for k in range(len(test_suit['topics'])): test_case = test_suit['topics'][k] z += 1 c1 = len(test_case['topics']) # 執行步驟有幾個 for n in range(len(test_case['topics'])): x += 1 test_step = test_case['topics'][n] test_except = test_step['topics'][0] worksheet.write(x, 4, f'{n + 1}.' + test_except['title'], style) # 預期結果 worksheet.write(x, 3, f'{n + 1}.' + test_step['title'], style) # 執行步驟 worksheet.write_merge(x - c1 + 1, x, 0, 0, z, style) # testcaseid worksheet.write_merge(x - c1 + 1, x, 1, 1, test_module['title'], style) # 測試需求名稱 worksheet.write_merge(x - c1 + 1, x, 2, 2, test_case['title'], style) # 測試用例名稱 workbook.save(xm['title'] + '.xls') # xls名稱取xmind主題名稱if __name__ == '__main__': main()

運行結果如下:

使用python把xmind轉換成excel測試用例的實現代碼

4.封裝方法

上面的代碼基本已經完成了,但是為了更好看,代碼可讀性更高,所以封裝下方法

# -*- coding:utf-8 -*-from xmindparser import xmind_to_dictimport xlwtclass XlwtSeting(object): @staticmethod # 靜態方法裝飾器,使用此裝飾器裝飾后,可以直接使用類名.方法名調用(XlwtSeting.styles()),并且不需要self參數 def template_one(worksheet): dicts = {'horz': 'CENTER', 'vert': 'CENTER'} sizes = [15, 15, 30, 60, 45, 45, 15, 15] se = XlwtSeting() style = se.styles() style.alignment = se.alignments(**dicts) style.font = se.fonts(bold=True) style.borders = se.borders() style.pattern = se.patterns(7) se.heights(worksheet, 0) for i in range(len(sizes)): se.widths(worksheet, i, size=sizes[i]) return style @staticmethod def template_two(): dicts2 = {'vert': 'CENTER'} se = XlwtSeting() style = se.styles() style.borders = se.borders() style.alignment = se.alignments(**dicts2) return style @staticmethod def styles(): '''設置單元格的樣式的基礎方法''' style = xlwt.XFStyle() return style @staticmethod def borders(status=1): '''設置單元格的邊框, 細實線:1,小粗實線:2,細虛線:3,中細虛線:4,大粗實線:5,雙線:6,細點虛線:7大粗虛線:8,細點劃線:9,粗點劃線:10,細雙點劃線:11,粗雙點劃線:12,斜點劃線:13''' border = xlwt.Borders() border.left = status border.right = status border.top = status border.bottom = status return border @staticmethod def heights(worksheet, line, size=4): '''設置單元格的高度''' worksheet.row(line).height_mismatch = True worksheet.row(line).height = size * 256 @staticmethod def widths(worksheet, line, size=11): '''設置單元格的寬度''' worksheet.col(line).width = size * 256 @staticmethod def alignments(wrap=1, **kwargs): '''設置單元格的對齊方式, :接收一個對齊參數的字典{'horz': 'CENTER', 'vert': 'CENTER'}horz(水平),vert(垂直) :horz中的direction常用的有:CENTER(居中),DISTRIBUTED(兩端),GENERAL,CENTER_ACROSS_SEL(分散),RIGHT(右邊),LEFT(左邊) :vert中的direction常用的有:CENTER(居中),DISTRIBUTED(兩端),BOTTOM(下方),TOP(上方)''' alignment = xlwt.Alignment() if 'horz' in kwargs.keys(): alignment.horz = eval(f'xlwt.Alignment.HORZ_{kwargs[’horz’].upper()}') if 'vert' in kwargs.keys(): alignment.vert = eval(f'xlwt.Alignment.VERT_{kwargs[’vert’].upper()}') alignment.wrap = wrap # 設置自動換行 return alignment @staticmethod def fonts(name=’宋體’, bold=False, underline=False, italic=False, colour=’black’, height=11): '''設置單元格中字體的樣式, 默認字體為宋體,不加粗,沒有下劃線,不是斜體,黑色字體''' font = xlwt.Font() # 字體 font.name = name # 加粗 font.bold = bold # 下劃線 font.underline = underline # 斜體 font.italic = italic # 顏色 font.colour_index = xlwt.Style.colour_map[colour] # 大小 font.height = 20 * height return font @staticmethod def patterns(colors=1): '''設置單元格的背景顏色,該數字表示的顏色在xlwt庫的其他方法中也適用,默認顏色為白色 0 = Black, 1 = White,2 = Red, 3 = Green, 4 = Blue,5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green,18 = Dark Blue, 19 = Dark Yellow ,almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray,23 = Dark Gray, the list goes on...''' pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN pattern.pattern_fore_colour = colors return patternclass XmindToXsl(XlwtSeting): def __init__(self, name): '''調用類時,讀取xmind文件,并生成excel表格''' try: self.xm = xmind_to_dict(name)[0][’topic’] except Exception as e: print(f'打開xmind文件失敗:{e}') self.workbook = xlwt.Workbook(encoding=’utf-8’) # 創建workbook對象 self.worksheet = self.workbook.add_sheet(self.xm['title'], cell_overwrite_ok=True) # 創建工作表 def save(self, name): '''保存表格''' self.workbook.save(name + '.xls') @staticmethod def xmind_num(value): '''獲取xmind標題個數''' try: return len(value['topics']) except KeyError: return 0 @staticmethod def xmind_title(value): '''獲取xmind標題內容''' return value['title'] def write_excel(self, result=’’, performer=’’, editionname=’’): '''生成excel文件的方法''' row0 = ['testcaseid', ’需求名稱’, ’測試用例名稱’, ’執行步驟’, ’預期結果’, ’實際結果’, ’執行人員’, ’版本’] style2 = self.template_one(self.worksheet) for i in range(len(row0)): self.worksheet.write(0, i, row0[i], style2) style = self.template_two() x = 0 # 寫入數據的當前行數 z = 0 # 用例的編號 for i in range(self.xmind_num(self.xm)): test_module = self.xm['topics'][i] modnum = self.xmind_num(test_module) if modnum != 0: for j in range(modnum): test_suit = test_module['topics'][j] suit_num = self.xmind_num(test_suit) if suit_num != 0: for k in range(suit_num): test_case = test_suit['topics'][k] z += 1 c1 = self.xmind_num(test_case) # 執行步驟有幾個 if c1 != 0: for n in range(c1): x += 1 test_step = test_case['topics'][n] test_except = test_step['topics'][0] self.heights(self.worksheet, x, size=2) step = f'{n + 1}.' + self.xmind_title(test_step) # 執行步驟 exce = f'{n + 1}.' + self.xmind_title(test_except) # 預期結果 self.worksheet.write(x, 3, step, style) # 寫入執行步驟 self.worksheet.write(x, 4, exce, style) # 寫入預期結果 self.worksheet.write(x, 5, result, style) # 寫入實際結果 self.worksheet.write(x, 6, performer, style) # 寫入執行人 mod = self.xmind_title(test_module) # 測試需求名稱 case = self.xmind_title(test_case) # 測試用例名稱 self.worksheet.write_merge(x - c1 + 1, x, 0, 0, z, style) # 寫入testcaseid self.worksheet.write_merge(x - c1 + 1, x, 1, 1, mod, style) # 寫入測試需求名稱 self.worksheet.write_merge(x - c1 + 1, x, 2, 2, case, style) # 寫入測試用例名稱 self.worksheet.write_merge(x - c1 + 1, x, 7, 7, editionname, style) # 寫入版本名稱 else: print('測試用例沒有操作步驟及預期結果') else: print('沒有測試用例') else: print('沒有測試套件') self.save(self.xm['title']) # 保存if __name__ == '__main__': names = 'sulinkAPP.xmind' xx = XmindToXsl(names) xx.write_excel()

運行的結果如下:

使用python把xmind轉換成excel測試用例的實現代碼

五、創建一個簡單的GUI頁面

1.簡單使用tkinter

因為不需要太復雜的GUI頁面,所以我直接使用的是python自帶的tkinter庫,先簡單了解下tkinter庫怎么使用,參考文檔:https://blog.csdn.net/qq_46018418/article/details/105927203

import tkintertop = tkinter.Tk() # 生成主窗口label = tkinter.Label(top, text=’Hello, GUI’) # 生成標簽label.pack() # 將標簽添加到主窗口button1 = tkinter.Button(top, text='text') # 生成按鈕1button1.pack(side=tkinter.LEFT) # 將button1添加到top主窗口左邊button1 = tkinter.Button(top, text='text2') # 生成按鈕2button1.pack(side=tkinter.RIGHT) # 將button1添加到top主窗口左邊top.mainloop() # 進入消息循環(必需組件)

代碼運行結果如下:

使用python把xmind轉換成excel測試用例的實現代碼

2.使用tkinter創建一個簡單的GUI頁面

先初步使用tkinter創建一個簡單的GUI頁面,初步了解tkinter的使用細節

import tkinterdef getvalue(): '''獲取文本框中數據''' global path re = path.get() print(re)top = tkinter.Tk() # 生成主窗口top.title('test') # 設置窗口的標題top.geometry('350x250') # 設置窗口的大小top.geometry(’+800+350’) # 設置窗口出現的位置top.resizable(0, 0) # 將窗口大小設置為不可變label = tkinter.Label(top, text=’目標路徑’) # 生成一個標簽label.grid(row=0, column=0) # 使用grid布局,標簽顯示在第一行,第一列path = tkinter.StringVar() # 生成一個StringVar 對象,來保存下面輸入框中的內容firstEntry = tkinter.Entry(top, textvariable=path) # 生成一個文本框,內容保存在上面變量中firstEntry.grid(row=0, column=1) # 使用grid布局,文本框顯示在第一行,第二列# 生成一個按鈕,按鈕上顯示文字為“test”,設置點擊按鈕后,執行command后面的方法# (注意:只寫方法名,保存方法的位置,不能加上()來調用)例:getvalue,不能寫成getvalue()clickButton = tkinter.Button(top, text='提交', command=getvalue)clickButton.grid(row=0, column=2) # 使用grid布局,按鈕顯示在第一行,第三列top.mainloop() # 進入消息循環(必需組件)

代碼運行結果如下:使用python把xmind轉換成excel測試用例的實現代碼

3.豐富GUI頁面元素

進一步使用tkinter,把之前封裝的方法需要的參數,看情況添加上GUI頁面中

import tkinterfrom tkinter.filedialog import askopenfilenamedef get_value(): '''獲取文本框中數據''' re = path.get() per = person.get() ver = version.get() print(f'地址:{re},測試人員:{per},測試版本:{ver}')def select_path(): '''選擇要轉換成excel的xmind地址''' path_ = askopenfilename() path.set(path_)top = tkinter.Tk() # 生成主窗口top.title('test') # 設置窗口的標題top.geometry('350x250') # 設置窗口的大小top.geometry(’+800+350’) # 設置窗口出現的位置top.resizable(0, 0) # 將窗口大小設置為不可變# 文件的路徑first_label = tkinter.Label(top, text=’目標路徑:’) # 生成一個標簽first_label.grid(row=0, column=0) # 使用grid布局,標簽顯示在第一行,第一列path = tkinter.StringVar() # 生成一個StringVar 對象,來保存下面輸入框中的內容first_entry = tkinter.Entry(top, textvariable=path) # 生成一個文本框,內容保存在上面變量中first_entry.grid(row=0, column=1) # 使用grid布局,文本框顯示在第一行,第二列# 生成一個按鈕,按鈕上顯示文字為“test”,設置點擊按鈕后,執行command后面的方法# (注意:只寫方法名,保存方法的位置,不能加上()來調用)例:get_value,不能寫成get_value()way_button = tkinter.Button(top, text='路徑選擇', command=select_path)way_button.grid(row=0, column=2) # 使用grid布局,按鈕顯示在第一行,第三列# 測試人員second_label = tkinter.Label(top, text='執行人員:')second_label.grid(row=1, column=0)person = tkinter.StringVar()second_entry = tkinter.Entry(top, textvariable=person)second_entry.grid(row=1, column=1)# 版本third_label = tkinter.Label(top, text='測試版本:')third_label.grid(row=2, column=0)version = tkinter.StringVar()third_entry = tkinter.Entry(top, textvariable=version)third_entry.grid(row=2, column=1)# 提交按鈕f_btn = tkinter.Frame(top, bg=’red’) # 設置一個frame框架,并設置背景顏色為紅色f_btn.place(x=0, y=205, width=350, height=45) # 設置框架的大小,及在top窗口顯示位置submit_button = tkinter.Button(f_btn, text='提交', command=get_value, width=49, height=2, bg='#00FFFF') # 設置按鈕的文字,調用方法,大小,顏色,顯示框架submit_button.grid(row=0, column=2) # 使用grid布局,按鈕顯示在第一行,第一列# 進入消息循環(必需組件)top.mainloop()

代碼運行結果如下:

使用python把xmind轉換成excel測試用例的實現代碼

4.封裝方法,關聯轉換方法

上面代碼已經初步實現了所需的功能,下面進行封裝方法,關聯之前寫好的xmind轉換excel表格的方法

import tkinterimport refrom tkinter.filedialog import askopenfilenamefrom tkinter import messageboxfrom xmindToExcel.xmind_to_xls import XmindToXslclass MainUI(object): def __init__(self,, geometrysize='350x250', geometry='+800+350'): self.top = tkinter.Tk() # 生成主窗口 self.top.title(title) # 設置窗口的標題 self.top.geometry(geometrysize) # 設置窗口的大小 self.top.geometry(geometry) # 設置窗口出現的位置 self.top.resizable(0, 0) # 將窗口大小設置為不可變 self.path = tkinter.StringVar() # 生成一個StringVar 對象,來保存下面輸入框中的內容 self.person = tkinter.StringVar() self.version = tkinter.StringVar()# 調用自己寫的create_widgets()方法 self.create_widgets() def get_value(self): '''獲取文本框中數據,并調用XmindToXsl類''' path = self.path.get() per = self.person.get() ver = self.version.get() print(f'地址:{path},測試人員:{per},測試版本:{ver}') regvalue = ’.*.xmind$’ xmind_reg = re.match(regvalue, path) if xmind_reg: # xmind轉換成xls xmind_to_xls = XmindToXsl(path) xmind_to_xls.write_excel(performer=per, editionname=ver) else: messagebox.showinfo(title=’提示’, message=’請選擇正確的xmind文件,謝謝!’) def select_path(self): '''選擇要轉換成excel的xmind地址''' path_ = askopenfilename() self.path.set(path_) def create_widgets(self): '''創建窗口中的各種元素''' # 文件的路徑 first_label = tkinter.Label(self.top, text=’目標路徑:’) # 生成一個標簽 first_label.grid(row=0, column=0) # 使用grid布局,標簽顯示在第一行,第一列 first_entry = tkinter.Entry(self.top, textvariable=self.path) # 生成一個文本框,內容保存在上面變量中 first_entry.grid(row=0, column=1) # 使用grid布局,文本框顯示在第一行,第二列 way_button = tkinter.Button(self.top, text='路徑選擇', command=self.select_path) way_button.grid(row=0, column=2) # 使用grid布局,按鈕顯示在第一行,第三列 # 測試人員 second_label = tkinter.Label(self.top, text='執行人員:') second_label.grid(row=1, column=0) second_entry = tkinter.Entry(self.top, textvariable=self.person) second_entry.grid(row=1, column=1) # 版本 third_label = tkinter.Label(self.top, text='測試版本:') third_label.grid(row=2, column=0) third_entry = tkinter.Entry(self.top, textvariable=self.version) third_entry.grid(row=2, column=1) # 提交按鈕 f_btn = tkinter.Frame(self.top, bg=’red’) # 設置一個frame框架,并設置背景顏色為紅色 f_btn.place(x=0, y=205, width=350, height=45) # 設置框架的大小,及在top窗口顯示位置 submit_button = tkinter.Button(f_btn, text='提交', command=self.get_value, width=49, height=2, bg='#00FFFF') # 設置按鈕的文字,調用方法,大小,顏色,顯示框架 submit_button.grid(row=0, column=2) # 使用grid布局,按鈕顯示在第一行,第一列 # 進入消息循環(必需組件) self.top.mainloop()if __name__ == '__main__': mu = MainUI(title='sulinkAPP')

代碼運行結果如下:

使用python把xmind轉換成excel測試用例的實現代碼使用python把xmind轉換成excel測試用例的實現代碼

六、打包

1.下載安裝pyinstaller

下載安裝pyinstaller 庫,建議使用pip在線下載安裝,因為有較多依賴庫,pip下載安裝時,會自動安裝依賴庫

pip install pyinstaller

2.使用pyinstaller打包文件

如編寫上面全部代碼的環境為虛擬環境,則打包時需要在主環境安裝編寫時導入的庫(如:xmindparser,xlwt),如果沒有使用虛擬環境,則不需重復安裝。安裝好pyinstaller后,到項目的目錄下,運行cmd,輸入命令。

pyinstaller -F mainUI.py -p xmind_to_xls.py

-F 后是main文件,-p 后是自己編寫的依賴py文件,多個文件使用;分隔。使用python把xmind轉換成excel測試用例的實現代碼使用python把xmind轉換成excel測試用例的實現代碼

因為是自己學習,所以直接把mainUI文件當做main文件。注:如果運行打包后的exe文件包,報“xlwt no find”之類的錯,請在主環境pip下載安裝對應的庫

# 總結 以上就是這幾天學習的結果,感覺還是學習到了不少東西,希望能夠幫助到你們

到此這篇關于使用python把xmind轉換成excel測試用例的實現代碼的文章就介紹到這了,更多相關python excel測試用例內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: python
相關文章:
主站蜘蛛池模板: 欧美一区在线看 | 最新亚洲黄色网址 | 中文字幕 国产精品 | 国产精品综合久久 | 一级黄色av片 | 日韩电影一区二区三区 | 夜夜草av | 西西做爰免费视频 | 最新中文字幕视频 | 性色av一区二区三区免费看开蚌 | 成人一区二区三区 | 欧美日韩一区二区三区在线观看 | 蜜桃视频网站在线观看 | 一区视频在线 | 久久久精品国产 | 青青草在线视频免费观看 | 91欧美激情一区二区三区成人 | 天天综合天天色 | 欧美日韩国产高清 | 日韩三级在线 | 精品久久久久久久久久久久 | av看片网| 毛片99| 国产黄色大片免费看 | 龙珠z中文版普通话 | 日日干天天操 | 欧美日韩在线一区 | 国产精品高潮呻吟 | 成人三区 | 狠狠色狠狠色合久久伊人 | 精品国产欧美一区二区三区不卡 | 热久久影院 | 日韩在线观看毛片 | 亚洲成人av在线 | 久久av一区二区三区亚洲 | 免费成人在线网站 | 欧美精品久久久 | 97伦理电影院 | 国产片侵犯亲女视频播放 | 亚洲精品一区二区三区中文字幕 | 国产精品久久久久久久久大全 | 精品国产污网站污在线观看15 | 精品久久久久一区二区国产 | 综合久久99 | 一区二区三区精品视频 | 国产精品日韩一区二区 | 国产91黄色 | 欧美成人a | 国产真实乱全部视频 | 久久免费99精品久久久久久 | 99精品久久久久久久免费看蜜月 | 精品乱码久久久 | 精品日韩一区 | 91精品免费| 国产精品美女久久久久aⅴ国产馆 | 成人片网址 | 久久新| 日韩精品视频在线 | 精品国产一区二区三区性色av | 26uuu成人免费毛片 | 国产野精品久久久久久久不卡 | 中文字幕在线看片 | 国产三级视频 | 黄色一级大片在线免费看产 | 国产福利在线观看 | 91视频播放 | 亚洲 欧美 综合 | 精品成人免费一区二区在线播放 | 综合久久99 | 91精品国产欧美一区二区成人 | 99精品欧美一区二区三区 | 成av在线 | 午夜精品一区二区三区在线视频 | 做a视频在线观看 | 日韩视频免费 | 久久99精品视频在线观看 | 亚洲一区精品在线 | 狠狠综合 | 婷婷激情五月 | 一区二区三区精品 | 玖玖操| 蜜臀久久99精品久久久无需会员 | 成年人在线观看 | 国产成人在线网站 | 成人在线观看中文字幕 | 九九亚洲| 黄色片免费 | 大黄网站在线观看 | 亚洲精品一区二三区 | 欧美aⅴ| 国产欧美精品一区二区 | 国产伦精品一区二区三区四区视频 | 日韩欧美国产一区二区 | 久久免费在线观看 | 久久综合九色综合欧美狠狠 | 成人精品鲁一区一区二区 | 中文字幕在线看第二 | 91资源在线观看 | 精品久久网 | 久久久久久久一区 | 精品久久一区二区三区 | 另类sb东北妇女av | 欧美一级二级视频 | 91久久国产综合久久蜜月精品 | 国产999精品久久久久久 | 日韩亚洲视频 | 久久av免费 | 欧美精品一区二区三区在线四季 | 国产在线日韩 | 四虎影院在线看 | 天天网| 日韩日日夜夜 | 一级淫片免费 | 国产日韩精品在线观看 | 免费成人小视频 | 人人人艹 | 九九视频网| 久草新免费| 国产精品99久久久久久动医院 | 一级毛片免费播放 | 成人片免费看 | 一区二区三区国产 | 国产精品一区二区在线 | 国产激情精品视频 | 视频精品一区 | 9l蝌蚪porny中文自拍 | 操碰97| 百性阁综合另类 | 日韩视频在线观看中文字幕 | 伊人网伊人 | 男人天堂网址 | 黄色成人在线观看视频 | 国产精品嫩草55av | 欧美成人高清视频 | 国产精品久久久久久 | 欧美日韩一区在线观看 | 91看片| 国产成人久久精品一区二区三区 | 国产精品视频免费看 | 久久美女| 久久久久久麻豆 | 亚洲综合精品视频 | 超碰在线91 | 久久综合成人精品亚洲另类欧美 | 欧美一级一 | 伊人网站 | 久久蜜桃av| 91国内产香蕉 | 欧美极品一区 | 人人干在线视频 | 国产香蕉视频在线播放 | 日本在线免费看 | 国产精品伊人 | 久久不射电影网 | 一级毛片网 | 黄色电影在线免费观看 | 蜜桃中文字幕 | 91精品电影 | 精品在线一区二区 | 婷五月综合 | jizz中国zz女人18高潮 | 亚洲第一页在线 | 在线色站| 国产精品久久一区 | 免费一区 | 成人影院在线 | 欧美成年黄网站色视频 | av免费资源 | 免费精品视频 | 国产91在线视频 | 激情小网站| 日韩一区二区在线免费 | 国产日韩欧美 | 午夜毛片 | 日本中文字幕一区 | 国产免费一级特黄录像 | 亚洲 欧美 在线 一区 | 国产福利网站 | 国产精品日韩 | 久久精品一 | 99精品一级欧美片免费播放 | 亚洲电影免费 | 日韩综合在线 | 欧美一区二区黄色片 | 男女视频在线观看 | 婷婷精品视频 | 国产精品一区二区三区四区 | 日韩欧美国产一区二区 | 特级淫片裸体免费看 | 国产乱码精品一品二品 | 一级大毛片| 久久久久网站 | 日韩精品小视频 | 不卡一区| 中文字幕成人 | 中文字幕成人免费视频 | 国产精品第52页 | www.91av在线 | 天天久久婷婷 | 91精品国产欧美一区二区成人 | www91在线观看 | 日韩激情免费视频 | 黄网在线免费观看 | 玖玖色资源 | 欧美精品一区二区三区蜜桃视频 | 国产亚洲欧美一区 | 视频一区在线播放 | 一级黄色片a级 | 久久av一区 | 色香蕉在线 | 亚洲成人久久久 | 久久手机在线视频 | 久久精品伊人 | 国产在线小视频 | 丝袜久久 | 成人 在线 | 品久久久久久久久久96高清 | 日日操天天操 | 日韩精品在线网站 | 一区二区中文字幕 | 欧美国产日韩在线观看 | 色欧美综合 | 国产在线欧美 | 能免费看的av | 国产一区二区av在线 | 久久亚洲天堂 | 激情久久av一区av二区av三区 | 九色91视频 | 人人爱人人草 | 古典武侠第一页久久777 | 久久不卡| 中文字幕在线免费观看 | 中文字幕二区 | 狠狠搞狠狠操 | 91精品国产综合久久婷婷香蕉 | 毛片在线看片 | 2018狠狠干 | 性一级录像片片视频免费看 | 亚洲精品国产片 | 国产免费看 | 欧美视频网站 | 天天干夜夜拍 | 最新日韩av| 天天操天天拍 | 中文久久| 日韩福利片| 成人妇女免费播放久久久 | 色噜噜色综合 | 日日夜夜草 | 久久久久久久久久毛片 | 日本久久久久 | 亚洲精品一区二区在线观看 | 精品一区二区久久久久久久网站 | 中文字幕亚洲欧美日韩在线不卡 | 国产区91| 国产精品69毛片高清亚洲 | 国产精品自拍视频网站 | 狠狠av | 一区二区三区四区精品 | 欧美性v| av免费观看网站 | 九九久久久 | 狠狠综合久久 | 女人久久久 | 国产96精品久久久 | 欧美久久精品 | 伊人夜夜躁av伊人久久 | 亚洲成av人片在线观看 | 黄色免费高清视频 | 丝袜 亚洲 另类 欧美 综合 | 91视频一88av | 99精品国产高清一区二区麻豆 | 一级电影在线观看 | 男女免费在线观看视频 | 亚洲视频久久久 | 久草毛片| 三级免费毛片 | 中文av一区| 中文字幕一区在线观看视频 | 日本色综合 | 亚洲国产精品久久久久久 | 国产精品99久久久久久久vr | 国产a级毛片 | 国产精品久久久久久久久免费桃花 | 女同久久另类99精品国产 | 久久国 | 在线视频一二区 | 国产精品一级 | 亚洲精品国精品久久99热 | www.精品 | 午夜小电影 | 成人免费网站 | av在线免费网址 | 91精品久久久久久久久久入口 | 中文字幕一二三区 | 91精品国产欧美一区二区 | 综合婷婷 | 色优久久| 中文字幕三区 | 91精品国产色综合久久不卡98口 | 台湾av片 | 国产一级一级特黄女人精品毛片 | 亚洲综合精品 | 一级大片一级一大片 | 精品一区二区视频 | 欧美日韩视频在线第一区 | 999久久久国产999久久久 | 亚洲美女视频 | 国产大学生情侣呻吟视频 | 91视频久久 | 日韩视频在线免费观看 | 日本久久网站 | 狠狠色综合久久丁香婷婷 | 亚洲一区二区三区在线播放 | 成人日韩 | 国产精品片aa在线观看 | 国产精品69久久久久水密桃 | 亚洲欧美一区二区三区视频 | 亚洲国产成人久久综合一区,久久久国产99 | 久久久久久久网站 | 国产一区 | 色吧一区| 久久精品91久久久久久再现 | 在线视频亚洲 | 中文字幕久久精品 | 久久精选视频 | av在线免费观看网站 | 日本aa级毛片免费观看 | 欧美性福 | 日韩精品av一区二区三区 | 日韩五月 | 在线观看精品视频网站 | 秋霞av在线 | 久草 在线| 成年人在线看片 | 激情999| 成人网在线观看 | 欧美中文字幕一区二区 | 午夜寂寞福利视频 | 亚洲精品国产a久久久久久 国产毛片毛片 | 国产精品久久久久久中文字 | 久久久精品影院 | 免费看黄视频网站 | 日本不卡精品 | 亚洲一区二区三区在线免费观看 | 欧美激情 在线 | 情趣视频在线免费观看 | 97国产一区二区精品久久呦 | 日韩精品久久久久久 | 91无吗| 欧美一区不卡 | 成人午夜小视频 | 久久久国产一区二区三区 | 亚洲精品电影网在线观看 | 91av在| 日韩欧美第一页 | 97av在线 | 久草在线资源福利站 | 精品日韩一区 | 嫩草影院懂你的 | 国产成人在线免费观看 | 久久中文字幕一区 | 综合久久综合久久 | 欧美日韩电影一区二区三区 | 色人人 | 亚洲欧美一区二区三区四区 | 欧日韩不卡在线视频 | 国产亚洲精品久久久久动 | 精品久久久一区 | 日韩欧美国产精品综合嫩v 国产高清av在线一区二区三区 | 一区二区三区视频 | 国产精品美乳一区二区免费 | 国产成人在线网站 | 日韩视频在线免费观看 | 自拍偷拍欧美 | 国产精品久久久久久久久久久小说 | 久久久久久久99精品免费观看 | 成人性大片免费观看网站 | 国产99久久 | 视频一区 中文字幕 | 国产成人精品高清久久 | 午夜免费剧场 | 国产免费av在线 | 在线成人av| 欧美日韩一区二区三区四区 | 日韩在线视频观看 | 亚洲国产精品第一区二区 | 久久99亚洲精品 | 天堂欧美城网站 | 精品国产黄色片 | 综合婷婷 | 日韩欧美第一页 | 久久久精品视频免费观看 | 国产日韩欧美精品一区二区 | 欧美极品在线 | 久久99这里只有精品 | 国产福利91精品一区二区三区 | 成人免费毛片高清视频 | www.久久久久| 91成人在线| 欧美午夜视频 | 男女国产网站 | 国产二区在线播放 | 91成人在线免费视频 | 久久综合色88 | 免费一级片 | 自拍偷拍欧美 | 午夜私人影院在线观看 | 国产精品成人一区二区 | 日韩欧美国产一区二区三区 | 在线看www| 二区视频 | 亚洲精品成人在线 | 亚洲天堂中文字幕 | 欧美日韩成人一区 | 女人久久久 | 在线观看国产 | 国产九九av | 精品一区二区三区在线视频 | 国产美女在线观看 | 伊人网在线视频免费观看 | 激情开心成人网 | 久久久久女人精品毛片九一韩国 | 懂色一区二区三区av片 | 三级黄色片在线观看 | 日韩在线观看中文字幕 | 国产91在线免费观看 | 精品香蕉视频 | 日韩在线精品 | 欧美日韩三区 | 午夜男人网 | 日本亚洲精品成人欧美一区 | 成人精品一区二区三区中文字幕 | 亚洲欧洲精品视频在线观看 | 中文字幕av高清 | 久久久久久久一区二区三区 | 电影午夜精品一区二区三区 | 97精品 | 吊视频一区二区三区 | 成人av在线网 | av伊人网 | 成人av影院 | 日日鲁鲁 | 呦一呦二在线精品视频 | 北条麻妃国产九九九精品小说 | 日韩高清一区二区 | 久久久久久影院 | 国产黄色免费网站 | 在线精品亚洲 | 国产精品亚洲欧美日韩一区在线 | 亚洲成人一区二区 | 黄a一级 | 日韩成人影院 | 亚洲+变态+欧美+另类+精品 | 亚洲午夜精品视频 | 国产日韩欧美 | 午夜影院a| 欧美精品一区二区三区在线四季 | 国产精品久久久久久久一区探花 | 五月激情综合网 | 精品一区二区不卡 | 成人免费视屏 | 国模一区二区三区 | 午夜精品一区 | 成人亚洲 | 亚洲 欧美 另类 综合 偷拍 | 一区二区三区小视频 | 亚洲精品www久久久久久 | 亚洲成人二区 | 人人干人人干人人干 | 亚洲人免费 | 国产传媒在线观看 | 99热国产在线观看 | 美女视频一区二区三区 | 精品国产精品国产偷麻豆 | 久久久久久久久久久久福利 | 黄色一级毛片免费 | 亚洲美女一区二区三区 | 天堂资源| 久久成人一区 | 奇米av| 精品国产31久久久久久 | 色五月激情五月 | 成人精品一区二区三区中文字幕 | 色综合色综合 | 成人精品鲁一区一区二区 | 日本视频一区二区三区 | 国产精品99久久久久久www | 99精品欧美一区二区三区综合在线 | www.一区二区三区 | 欧美日韩精品综合 | 国产精品女教师av久久 | 久久99这里只有精品 | 最近日韩中文字幕 | 国产91久久久 | 久久天堂网 | 精品国产黄a∨片高清在线 激情网站免费 | 久久久久久久一区二区 | 亚洲精品一区二区三区在线播放 | 午夜精品久久久久久99热软件 | 亚洲国产日韩一区 | 久久婷婷视频 | 亚洲第一页中文字幕 | 日韩一级免费在线观看 | 红桃av一区二区 | 麻豆自拍偷拍 | 国产精品一区欧美 | 精品国产一区在线 | 国产精品久久久久久二区 | 久久久久国产一区二区三区 | 精品国产乱码久久久久久88av | 日本一级毛片免费看 | 国产欧美精品一区二区三区 | 日韩欧美中字 | 中文字幕在线电影观看 | 国产精品久久天天躁 | 亚洲国产视频一区 | 成年人在线视频播放 | 欧美成人综合视频 | 欧美大片一区二区 | 亚洲一道本 | 国产www视频 | 免费看的毛片 | 在线观看91 | 国产精自产拍久久久久久 | 99精品欧美一区二区蜜桃免费 | 高清国产视频 | 日日夜夜精品网站 | 国产精品一区免费在线观看 | 久久久久国产 | 午夜免费 | 最近的中文字幕在线看视频 | 亚洲色图第八页 | 国产一区二区三区在线 | 国产成年人小视频 | 精品久久网站 | 日韩中文在线播放 | 青娱乐一区 | 国产日韩中文字幕 | 欧美日韩一区二区三区 | av国产精品| 亚洲国产成人av | 免费观看一区二区三区毛片 | 中文字幕av一区 | 日日久 | 91精品国产欧美一区二区成人 | 久久窝 | 人妖av| 蜜桃av一区 | 四虎com| 国产精品色哟哟哟 | 欧美中文在线 | 日本在线观看视频一区 | 极品一区 | 久久精品国产亚卅av嘿嘿 | 91在线播 | 色九九| 91精品一区二区三区久久久久久 | 欧美日韩电影一区二区三区 | 91国内精品久久 | 三级色黄| 欧美一区2区三区4区公司二百 | 欧美黄色一区 | 国产99999 | 国产伦乱| av毛片| 日本综合色 | 亚洲三级在线观看 | 日韩在线免费 | 日韩av免费在线观看 | 国外爱爱视频 | 欧美啪啪| 国产精品视频 | 日韩在线视频中文字幕 | 亚洲视频一区在线 | av毛片| 国产成人一区 | 日韩在线视频免费看 | 日韩综合一区 | 成人av在线网 | 日本精品二区 | 欧美日韩中文 | jizzjizzjizz亚洲女 | 国产三级 | 欧美成人a∨高清免费观看 在线视频成人 | 久久九| 亚洲精品成人在线 | 欧美一区二区三区成人 | 色女人av | 麻豆一区| 国产区视频在线观看 | av免费在线播放 | 久章操| 成人无遮挡毛片免费看 | 国产高清免费 | 国产最新视频 | 欧美怡红院视频一区二区三区 | 国产一区二区精品在线 | 亚洲成人在线观看视频 | 视频在线一区 | 欧美午夜精品久久久久久人妖 | 一区二区三区国产精品 | 欧美在线视频不卡 | 天天干天天操天天爽 | 狠狠夜夜 | 国产在线成人 | 毛片网在线观看 | 国产精品456在线影视 | 欧美八区| 亚洲一区中文字幕在线 | 日韩视频三区 | 欧美视频综合 | 欧美日韩在线精品 | 欧美一区二区在线 | 日韩欧美中文字幕在线视频 |