测试工具研发_(3)测试框架驱动之事件绑定

1、GUI界面

在这里插入图片描述

2、主要涉及界面的事件绑定

# encoding: utf-8
"""
V1.0、测试框架界面类的实现
(1)绑定事件的处理,另外根据输入的文件路径过长,将文本框拉长处理:调整比例且对box1做平铺
(2)事件处理中打开配置文件,并且对文件进行了读取
"""
import csv

import wx
# 测试框架界面类的实现


class UI_testframe:
    # 初始化方法定义窗体、面板、控件
    def __init__(self):
        # 定义app对象
        self.app = wx.App()
        # 定义窗体
        self.window = wx.Frame(None, title="测试框架v1.0", size=(400, 300))
        # 定义panel面板
        self.panel = wx.Panel(self.window)
        # 定义面板上的控件
        # 定义标签文字
        self.lbl_file=wx.StaticText(self.panel, label="测试框架配置文件")
        # 定义文件显示文本框
        self.txt_file=wx.TextCtrl(self.panel)
        # 定义打开按钮
        self.but_open=wx.Button(self.panel, label="打开")
        # 定义执行按钮
        self.but_run = wx.Button(self.panel, label="执行")
        # 定义成功之按钮
        self.but_clear = wx.Button(self.panel, label="重置")
        # 定义退出按钮
        self.but_exit = wx.Button(self.panel, label="退出")
        # 定义配置文件名称
        self.configfile = ""

    # 控件排版
    def UI_layout(self):
        # 定义一个水平box
        box1 = wx.BoxSizer()
        box1.Add(self.lbl_file, flag=wx.ALL, border=10),
        box1.Add(self.txt_file, flag=wx.ALL, border=10, proportion=2),

        # 定义一个水平box
        box2 = wx.BoxSizer()
        box2.Add(self.but_open, flag=wx.ALL, border=10),
        box2.Add(self.but_run, flag=wx.ALL, border=10),
        box2.Add(self.but_clear, flag=wx.ALL, border=10),
        box2.Add(self.but_exit, flag=wx.ALL, border=10),
        # 定义一个竖直box,进行排版,并生效
        box3 = wx.BoxSizer(wx.VERTICAL)
        box3.Add(box1, flag=wx.TOP | wx.EXPAND, border=40),
        box3.Add(box2, flag=wx.TOP, border=40),
        self.panel.SetSizer(box3)

    # 按钮触发绑定事件
    def UI_event(self):
        self.but_open.Bind(wx.EVT_BUTTON, self.openfile)

    # 事件1:打开配置文件
    def openfile(self, event):
        # 设置打开文件对话框
        self.dlg_open = wx.FileDialog(self.panel, style=wx.FD_OPEN, message="打开文件", wildcard="*.csv")
        # 点击控件的ok,
        if self.dlg_open.ShowModal()==wx.ID_OK:
            # 控件txt_file放入文件
            self.txt_file.AppendText(self.dlg_open.GetPath())
            # 在这里给属性configfile赋值,方便后面调用
            self.configfile = self.dlg_open.GetPath()

    # 读取csv配置文件
    def readfile(self):
        file = open(self.configfile, "r", encoding="utf-8")  # !!!这里有个问题,读取文件必须以utf-8格式进行读取
        table = csv.reader(file)
        for content in table:
            print(content)


    # 显示窗体对象
    def UI_show(self):
        self.window.Show()
        self.app.MainLoop()


if __name__ == '__main__':
    a = UI_testframe()
    a.UI_layout()
    a.UI_event()
    a.UI_show()

# encoding: utf-8
"""
V1.1、测试框架界面类的实现
(1)新增了测试驱动类,用于测试驱动的执行
"""
import csv
import os
import wx


# 界面类
class UI_testframe:
    # 初始化方法定义窗体、面板、控件
    def __init__(self):
        # 定义app对象
        self.app = wx.App()
        # 定义窗体
        self.window = wx.Frame(None, title="测试框架v1.0", size=(400, 300))
        # 定义panel面板
        self.panel = wx.Panel(self.window)
        # 定义面板上的控件
        # 定义标签文字
        self.lbl_file=wx.StaticText(self.panel, label="测试框架配置文件")
        # 定义文件显示文本框
        self.txt_file=wx.TextCtrl(self.panel)
        # 定义打开按钮
        self.but_open=wx.Button(self.panel, label="打开")
        # 定义执行按钮
        self.but_run = wx.Button(self.panel, label="执行")
        # 定义成功之按钮
        self.but_clear = wx.Button(self.panel, label="重置")
        # 定义退出按钮
        self.but_exit = wx.Button(self.panel, label="退出")
        # 定义配置文件名称
        self.configfile = ""

    # 控件排版
    def UI_layout(self):
        # 定义一个水平box
        box1 = wx.BoxSizer()
        box1.Add(self.lbl_file, flag=wx.ALL, border=10),
        box1.Add(self.txt_file, flag=wx.ALL, border=10, proportion=2),

        # 定义一个水平box
        box2 = wx.BoxSizer()
        box2.Add(self.but_open, flag=wx.ALL, border=10),
        box2.Add(self.but_run, flag=wx.ALL, border=10),
        box2.Add(self.but_clear, flag=wx.ALL, border=10),
        box2.Add(self.but_exit, flag=wx.ALL, border=10),
        # 定义一个竖直box,进行排版,并生效
        box3 = wx.BoxSizer(wx.VERTICAL)
        box3.Add(box1, flag=wx.TOP | wx.EXPAND, border=40),
        box3.Add(box2, flag=wx.TOP, border=40),
        self.panel.SetSizer(box3)

    # 按钮触发绑定事件
    def UI_event(self):
        self.but_open.Bind(wx.EVT_BUTTON, self.openfile)
        self.but_run.Bind(wx.EVT_BUTTON, self.rundriver)

    # 事件1:打开配置文件
    def openfile(self, event):
        # 设置打开文件对话框
        self.dlg_open = wx.FileDialog(self.panel, style=wx.FD_OPEN, message="打开文件", wildcard="*.csv")
        # 点击控件的ok,
        if self.dlg_open.ShowModal()==wx.ID_OK:
            # 控件txt_file放入文件
            self.txt_file.AppendText(self.dlg_open.GetPath())
            # 在这里给属性configfile赋值,方便后面调用
            self.configfile = self.dlg_open.GetPath()

    # 读取测试框架配置文件
    def rundriver(self, event):
        driver = DriverTestframe()
        driver.runtestfile(self.configfile)

    # 显示窗体对象
    def UI_show(self):
        self.window.Show()
        self.app.MainLoop()


# # 测试驱动类的实现
class DriverTestframe:
    # 测试驱动执行方法
    def runtestfile(self, file):
        file = open(file, "r", encoding="utf-8")  # !!!这里有个问题,读取文件必须以utf-8格式进行读取
        table = csv.reader(file)
        header = next(table)  # 跳过首行
        for content in table:
            configf = content[1]
            # print(configf)
            os.system(f"python {configf}")


if __name__ == '__main__':
    a = UI_testframe()
    a.UI_layout()
    a.UI_event()
    a.UI_show()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿_焦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值