导语
在上一篇探索框架(四)--驱动程序+UI界面(wxpython)中已经画出了UI界面,并且已经完成了相关的控件事件,还遗留了“运行”按钮的功能完善,本次目的是要实现点击“运行”按钮后,可以根据所选的配置文件中的内容,去执行相关的测试用例脚本程序。
一、准备工作
在之前的框架和接口自动化实战中,有编写相关的测试用例脚本,而在探索框架(三)--驱动程序设计(unittest+Python)这里,有完成基于unittest编写的用例脚本的驱动程序的设计,而这次呢,用例脚本中有许多不是基于unittest编写的,那么这次来完成一个通用的驱动程序。
事先准备了一些用例脚本,如下:
# 使用面向对象的方法,但不使用unittest框架
class test_a():
def __init__(self):
print("test_a初始化")
def test_case1(self):
print("test_a的test_case1")
def test_case2(self, num2):
print("test_a的test_case2")
if __name__ == '__main__':
# 实例化类
obj = test_a()
# 调用测试用例方法
obj.test_case1()
obj.test_case2()
基于框架驱动程序的设计,现在脚本的作用就是帮助调试,所以先用简单的脚本来协助,能验证相关功能即可(等框架驱动程序都已基本调试完毕,就可以加上真实的用例脚本一起调试啦)。
准备了如下的配置文件(图1),可以再根据用例进行增加。
初步设计了测试驱动类图,如下:
二、完成驱动类及方法的程序
调用其他需要运行的脚本的方法有许多,具体可见探索框架(五)--调用其他脚本运行方法(Python),这里选用其中的第二种方式,通过Python命令来调用脚本运行。
驱动类及方法的脚本如下:
# 测试驱动类
class testframe_driver():
# 定义执行配置文件生成csv报告方法
def run_configfile(self, configfile):
# 读取配置文件内容
file = open(configfile, "r")
table = csv.reader(file)
# 跳过第一行
next(table)
for ele in table:
casename = ele[1]
stros = ('python ' + casename)
if ele[2] == "yes":
# 执行脚本
os.system(stros)
实现了驱动类及方法的程序以后,需要在“运行”按钮那里加以使用,需要修改探索框架(四)中编写的run_driver方法,就不需要再去读取配置文件了,只需要调用驱动方法即可,修改后的代码如下:
# 定义运行方法
def run_driver(self, event):
# 进行文本框的非空校验
if self.file_txt.GetValue() == "":
# 显示弹窗,内容为"请选择配置文件",标题为"提示",wx.YES_DEFAULT只有一个确定按钮,wx.YES_NO有确定和取消按钮
dlg = wx.MessageDialog(None, "请选择配置文件", "提示", style=wx.YES_DEFAULT | wx.ICON_QUESTION)
# 如果点击确定,则关闭提示弹窗
if dlg.ShowModal() == wx.ID_YES:
dlg.Destroy()
return 0
# 调用测试驱动程序
# 实例化测试驱动类
objdriver = testframe_driver()
# 调用驱动方法
objdriver.run_configfile(self.configfile)
至此,基本的驱动程序以及UI界面控件事件的绑定已经基本完成,在进行下一步之前,可以先回顾总结一下已经完成的程序,加以梳理。
三、总结梳理程序运行过程
简单梳理了一下程序的类、方法间的调用过程,如下图(图3),梳理的过程其实也是查漏补缺的过程,后续的程序会越加复杂,梳理总结会使思路更加清晰。