一、项目介绍
该框架的搭建,可以适合任何的界面进行自动化操作,广泛的使用在工业领域、人工智能领域等以QT框架和MFC为主的界面开发中做自动化专项工作。
第一阶段:对所有的UI界面进行自动化测试,通俗的讲就是通过Pywinauto对软件的控件进行操作,包括鼠标的点击,键盘的操作等,从而达到自动测试的目的。
第二阶段:根据公司要求,增加Pyqt5,进行测试平台的搭建,实现公司的界面化操作执行自动化的测试任务。
第一阶段整个流程:
1-导入功能包unittest、os、pywinauto
2-创建一个测试的Class类并继承(unittest.TestCase)
3-写具体的测试内容setUp(),结束模块tearDown(),以及测试用例模块test_case() 【测试用例必须是test_ 开头】
4-组装testsuit(套件),批量运行多个测试类的用例
5-运行testsuit,生成测试报告
二、框架分层
控制层:主要对框架提供配置路径,测试套件及执行测试类
方法层:对控件进行控制的方法test_method和针对windows系统环境进行系统的控制的方法basic_method;可在进行添加一个具体的case_mehod,业务逻辑的控制方法层
用例层:根据被测软件的业务逻辑检查点进行编码的测试脚本
数据层:数据和脚本分离,将配置文件ini文件的参数和数据传递给用例层进行使用
报告层:测试报告的生成与管理
三、项目目录
项目的整体架构思想:
- 从主程序main函数,对测试套件容器进行编写
- testcase_list(主要包含了具体的testcase中所要执行的test用例函数名称)中的测试用例集进行加载
- 根据加载的测试用例,在testcase的定义的class类继承的unittest.Testcase中的以test开头的函数进行执行
- 测试用例根据被测软件的业务逻辑检查点进行执行,包括对被测软件控件的控制,包括对不同控件的点击,输入,选取等调取test_method中封装好的具体的方法
- 执行完毕后,将测试结果交给HTMLTestRunner,并生成具体的测试报告
-
四、核心方法的研究
该框架的建立,将unittest与pywinauto相结合,可以实现windows下对任何软件进行自动化测试。
1、对test_method的核心,是使用pywinauto对不同的控件进行封装,从而能进行代码的复用和操作
#==========================button方法===============================================
def button_click_method(window_name, button_type):
"""
:param window_name: button所在的窗口名称,
:param button_type: button名称
"""
win = window_type_method(window_name)
win.child_window(title_re=button_type, control_type="Button").click_input()
2、对控件要可以进行获取和研究,根据print_control_identifiers()打印的控件信息,对不同的控件可以方法的封装和控制
-
五、后期扩展
经过上述的框架的建立,可以实现无界面前端的自动化测试,对不同的软件进行自动化测试。
随着业务的建立和成熟,可以增加Qt界面,对不同的模块实现选择性执行,真正实现不仅是测试进行使用,能面向更多的人员进行使用的自动化测试平台。
后期出模块讲解及后期扩展
原创不易,侵权必究