Python+unittest+pywinauto+htmlTestRunner完整的UI界面自动化框架

一、项目介绍

该框架的搭建,可以适合任何的界面进行自动化操作,广泛的使用在工业领域、人工智能领域等以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文件的参数和数据传递给用例层进行使用

报告层:测试报告的生成与管理

三、项目目录

 

项目的整体架构思想:

  1. 从主程序main函数,对测试套件容器进行编写
  2. testcase_list(主要包含了具体的testcase中所要执行的test用例函数名称)中的测试用例集进行加载
  3. 根据加载的测试用例,在testcase的定义的class类继承的unittest.Testcase中的以test开头的函数进行执行
  4. 测试用例根据被测软件的业务逻辑检查点进行执行,包括对被测软件控件的控制,包括对不同控件的点击,输入,选取等调取test_method中封装好的具体的方法
  5. 执行完毕后,将测试结果交给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界面,对不同的模块实现选择性执行,真正实现不仅是测试进行使用,能面向更多的人员进行使用的自动化测试平台。

后期出模块讲解及后期扩展

原创不易,侵权必究

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值