144 lines
4.4 KiB
Python
144 lines
4.4 KiB
Python
import sys
|
|
import tkinter
|
|
import tkinter.ttk
|
|
import tkinter.filedialog
|
|
|
|
|
|
class Window(tkinter.Tk):
|
|
element = {}
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.title('标题')
|
|
self.w = 550
|
|
self.h = 450
|
|
self.geometry('%sx%s+%s+%s' % (self.w, self.h, int(self.winfo_screenwidth() / 2 - self.w / 2), int(self.winfo_screenheight() / 2 - self.h / 2)))
|
|
self.minsize(self.w, self.h)
|
|
|
|
def into_element(self, name, element):
|
|
self.element[name] = element
|
|
return self
|
|
|
|
def cl(self, row, col, name, text):
|
|
this = tkinter.Label(self, text=text)
|
|
this.grid(row=row, column=col, padx=4, pady=4, sticky='w')
|
|
self.into_element(name, this)
|
|
return self
|
|
|
|
def ce(self, row, col, name, text):
|
|
this = tkinter.Entry(self, bg='yellow', width=48)
|
|
this.insert(0, text)
|
|
this.grid(row=row, column=col, padx=4, pady=4, sticky='w')
|
|
self.into_element(name, this)
|
|
return self
|
|
|
|
def cu(self, row, col, name, text):
|
|
this = tkinter.Entry(self, width=48, state='readonly')
|
|
this.insert(0, text)
|
|
this.grid(row=row, column=col, padx=4, pady=4, sticky='w')
|
|
self.into_element(name, this)
|
|
return self
|
|
|
|
def cb(self, row, col, name, text, func):
|
|
this = tkinter.Button(self, text=text, command=self.__getattribute__(func))
|
|
this.grid(row=row, column=col, padx=4, pady=0, sticky='w')
|
|
self.into_element(name, this)
|
|
return self
|
|
|
|
def cs(self, row, col, name, data):
|
|
this = tkinter.Spinbox(self, values=data, width=25, state='readonly')
|
|
this.grid(row=row, column=col, padx=4, pady=0, sticky='w')
|
|
self.into_element(name, this)
|
|
return self
|
|
|
|
def cc(self, row, col, name, data):
|
|
this = tkinter.ttk.Combobox(self, values=data, width=20, state='readonly')
|
|
this.set(data[-1])
|
|
this.grid(row=row, column=col, padx=4, pady=0, sticky='w')
|
|
self.into_element(name, this)
|
|
return self
|
|
|
|
@staticmethod
|
|
def cu_set(element, text):
|
|
element.config(state='normal')
|
|
element.delete(0, 'end')
|
|
element.insert('end', text)
|
|
element.config(state='readonly')
|
|
|
|
def open_w(self):
|
|
self.cu_set(self.element['i_w'], tkinter.filedialog.askopenfilename(filetypes=[('Excel 文件', '*.xlsx')]))
|
|
|
|
def open_p(self):
|
|
self.cu_set(self.element['i_p'], tkinter.filedialog.asksaveasfilename(filetypes=[('HTML 文件', '*.html')], defaultextension='html', initialfile='test'))
|
|
|
|
def open_x(self):
|
|
self.cu_set(self.element['i_x'], tkinter.filedialog.asksaveasfilename(filetypes=[('LOG 文件', '*.log')], defaultextension='log', initialfile='test'))
|
|
|
|
def exec_test(self):
|
|
self.element['b_z'].config(state='disabled')
|
|
self.update()
|
|
import time
|
|
time.sleep(15)
|
|
# self.element['b_z'].grid_forget()
|
|
|
|
from Base.Class.Command import shell
|
|
import sys
|
|
# shell(cmd='ping 119.29.29.29', stdout=sys.stdout)
|
|
res = shell(cmd='ping 119.29.29.29 -n 2', stdout=sys.__stdout__, stderr=sys.__stderr__)
|
|
# sys.stdout.write(res['stdout'])
|
|
# sys.stderr.write(res['stderr'])
|
|
# import os
|
|
# os.system('ping 119.29.29.29')
|
|
self.element['b_z'].config(state='normal')
|
|
self.update()
|
|
|
|
|
|
|
|
|
|
|
|
win = Window()
|
|
win.cl(0, 0, 'l_w', '测试用例(必选)')
|
|
win.cu(0, 1, 'i_w', '')
|
|
win.cb(0, 2, 'b_w', '选择文件', 'open_w')
|
|
|
|
win.cl(1, 0, 'l_t', '用例名称(必选)')
|
|
win.ce(1, 1, 'i_t', '')
|
|
|
|
win.cl(2, 0, 'l_m', '模块名称')
|
|
win.ce(2, 1, 'i_m', '')
|
|
|
|
win.cl(3, 0, 'l_n', '用例编号')
|
|
win.ce(3, 1, 'i_n', '')
|
|
|
|
|
|
|
|
win.cl(4, 0, 'l_l', '用例级别')
|
|
win.ce(4, 1, 'i_l', '')
|
|
|
|
win.cl(5, 0, 'l_o', '用例组织模式')
|
|
win.cc(5, 1, 'i_o', ['根据级别分类', '根据顺序执行'])
|
|
|
|
win.cl(6, 0, 'l_r', '写入测试结果')
|
|
win.cc(6, 1, 'i_r', ['是', '否'])
|
|
|
|
win.cl(7, 0, 'l_v', '日志和报告详细度')
|
|
win.cc(7, 1, 'i_v', [1, 2, 3, 4, 5])
|
|
|
|
win.cl(8, 0, 'l_p', '报告输出路径')
|
|
win.cu(8, 1, 'i_p', './')
|
|
win.cb(8, 2, 'b_p', '选择目录', 'open_p')
|
|
|
|
win.cl(9, 0, 'l_x', '日志输出路径')
|
|
win.cu(9, 1, 'i_x', './')
|
|
win.cb(9, 2, 'b_x', '选择目录', 'open_x')
|
|
|
|
win.cl(10, 0, 'l_i', '报告标题')
|
|
win.ce(10, 1, 'i_i', '自动化测试报告')
|
|
|
|
win.cl(11, 0, 'l_d', '报告描述')
|
|
win.ce(11, 1, 'i_d', '暂无描述')
|
|
|
|
win.cb(12, 0, 'b_z', '执行测试', 'exec_test')
|
|
|
|
win.mainloop()
|