亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:17日期: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
相關文章:
主站蜘蛛池模板: aaa黑人一级毛片 | 美国一级特级毛片片aa视频 | 国产精品人伦久久 | 午夜日韩久久影院 | 大学生一级一片第一次欧美 | 国产黄在线观看 | 亚洲精品网站在线观看不卡无广告 | 亚洲情a成黄在线观看 | 伊人成人久久 | 亚洲香蕉毛片久久网站老妇人 | 日韩六九视频 | 黑人草逼视频 | 国产欧美日韩在线播放 | 91无套极品外围在线播放 | 日韩在线高清 | 成人午夜在线 | 亚洲综合图库 | 欧美精品v国产精品v日韩精品 | 国产页 | 国产精品久久久久久免费 | 91preon国产在线观看 | 一级毛片免费视频 | 亚洲v欧美v日韩v国产v | 青青青国产色视频在线观看 | 台湾永久内衣秀86部钟真 | 久久99精品久久久久久欧洲站 | 中文字幕综合久久久久 | 91插插插插插 | 亚洲高清在线观看 | 亚洲国产九九精品一区二区 | 天天在线天天综合网色 | 亚洲最大的视频网站 | 在线观看嗯啊成人动作片 | 成年免费大片黄在线观看一 | 日本成人黄色网址 | 成人啪啪网站18 | 嫩草视频在线 | 91精品免费观看老司机 | 精品黄色片 | 男女很黄很色床视频网站免 | 亚洲成年网站在线777 |