前言
每个公司都有一个维护测试case的系统,有自研的也有买的,比如QC, 禅道等等,QA往往习惯使用xmind等思维导图工具来编写测试用例。
因为思路清晰,编写方便,那么这就有一个问题,大多数公司要求所有的case都要导入到系统统一维护,然而系统对xmind的支持并不友好,或者根本不支持,就我们目前的情况来说,系统支持导入xmind文件导入,但是导入后所有的用例都是乱的,而且没有测试步骤,没有预期结果等等问题,因此针对这一痛点,便诞生了今天的小工具,虽然这个工具只能解决我的问题,但是里面有大家可以学习参考的地方,希望对你有帮助,那么我的目的就达到了。
一、工具源码
"""
import tkinter as tk
from tkinter import filedialog, messagebox
import xmind
import os
from xmindparser import xmind_to_dict
class ParseXmind(object):
def __init__(self, root):
self.count = 0
self.case_fail = 0
self.case_success = 0
self.case_block = 0
self.case_priority = 0
# total汇总用
self.total_cases = 0
self.total_success = 0
self.total_fail = 0
self.total_block = 0
self.toal_case_priority = 0
# GUI
root.title('Xmind用例个数统计及文件解析')
width = 760
height = 600
xscreen = root.winfo_screenwidth()
yscreen = root.winfo_screenheight()
xmiddle = (xscreen - width) / 2
ymiddle = (yscreen - height) / 2
root.geometry('%dx%d+%d+%d' % (width, height, xmiddle, ymiddle)) # 窗口默认大小
# 3个frame
self.frm1 = tk.Frame(root)
self.frm2 = tk.Frame(root)
self.frm3 = tk.Frame(root)
# 布局
self.frm1.grid(row = 1, padx = '20', pady = '20')
self.frm2.grid(row = 2, padx = '30', pady = '30')
self.frm3.grid(row = 0, padx = '40', pady = '40')
self.lable = tk.Label(self.frm3, text = "Xmind文件完整路径")
self.lable.grid(row = 0, column = 0, pady = '5')
self.file_path = tk.Entry(self.frm3, bd = 2)
self.file_path.grid(row = 0, column = 1, pady = '5')
def get_full_file_path_text():
"""
获取xmind文件完整路径
:return:
"""
full_xmind_path = self.file_path.get() # 获取文本框内容
# 简单对输入内容做一个校验
if full_xmind_path == "" or "xmind" not in full_xmind_path:
messagebox.showinfo(title = "warning", message = "xmind文件路径错误!")
try:
self.create_new_xmind(full_xmind_path)
except FileNotFoundError:
pass
else:
xmind_file = full_xmind_path[:-6].split("/")[-1] # xmind文件名,不带后缀
path_list = full_xmind_path[:-6].split("/") # xmind文件用/分割后的一个列表
path_list.pop(0)
path_list.pop(-1)
path_full = "/" + "/".join(path_list) # xmind文件的目录
new_xmind_file = "{}/{}_new.xmind".format(path_full, xmind_file) # 新的xmind文件完整路径
messagebox.showinfo(title = "success", message = "已生成新的xmind文件:{}".format(new_xmind_file))
# 页面的一些空间的布局
self.button = tk.Button(self.frm3, text = "提交", width = 10, command = get_full_file_path_text, bg = '#dfdfdf')
self.button.grid(row = 0, column = 2, pady = '5')
self.but_upload = tk.Button(self.frm1, text &