基于Python+uiautomation的windowsGUI自动化测试概述

基于Python+uiautomation的windowsGUI自动化测试概述

    • 1 前言
    • 2 PythonGUI工具
      • 2.1 常用的PythonGUI编程工具
      • 2.2 常用PythonGUI自动化测试工具
      • 2.3 说明
    • 3 uiautomation简介
      • 3.2 uiautomation信息获取
      • 3.3 大体内容
    • 4 uiautomation使用方法
      • 4.1 常用方法
      • 4.2 句柄常用操作
      • 4.3 windows程序常用操作
      • 4.4 句柄的抓取
    • 5 控件定位
    • 6 项目示例
      • 6.1 示例说明
      • 6.2 示例代码
    • 7 示例效果
    • 8 预告

1 前言

一直使用Python做自动化测试,近期遇到了要对桌面端软件即windowsGUI进行自动化测试。Python的GUI自动化测试工具有很多,但是都有不同的侧重点。本次会详细说明为啥选择uiautomation来做测试。

2 PythonGUI工具

2.1 常用的PythonGUI编程工具

详情参考:https://blog.csdn.net/NoamaNelson/article/details/113678356

工具 简介
wxPython https://www.wxpython.org/ wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面
Kivy https://kivy.org/#home vy是一个开源工具包能够让使用相同源代码创建的程序能跨平台运行。它主要关注创新型用户界面开发,如:多点触摸应用程序。Kivy还提供一个多点触摸鼠标模拟器。当前支持的平台包括:Linux、Windows、Mac OS X和Android
Flexx https://flexx.readthedocs.io/en/stable/ Flexx 是一个纯 Python 工具包,用来创建图形化界面应用程序。其使用 Web 技术进行界面的渲染。你可以用 Flexx 来创建桌面应用,同时也可以导出一个应用到独立的 HTML 文档。因为使用纯 Python 开发,所以 Flexx 是跨平台的。
PyQt https://www.riverbankcomputing.com/static/Docs/PyQt5/ PyQt是Qt库的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次发布也是在1998年,但是当时它叫 PyKDE,因为开始的时候SIP和PyQt没有分开。PyQt是用SIP写的。PyQt 提供 GPL版和商业版
Tkinter https://docs.python.org/zh-cn/3/library/tkinter.html Tkinter(也叫Tk接口)是Tk图形用户界面工具包标准的Python接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。Tk和Tkinter可以运行在大多数的Unix平台、Windows、和Macintosh系统
Pywin32 https://pypi.org/project/pywin32/223/ Windows Pywin32允许你像VC一样的形式来使用PYTHON开发win32应用
PyGTK https://iowiki.com/pygtk/pygtk_quick_guide.html PyGTK让你用Python轻松创建具有图形用户界面的程序.底层的GTK+提供了各式的可视元素和功能,如果需要,你能开发在GNOME桌面系统运行的功能完整的软件
pyui4win 域名停更 pyui4win是一个开源的采用自绘技术的界面库。支持C++和python,用它可以很容易实现QQ和360安全卫士这样的绚丽界面。而且,pyui4win有所见即所得界面设计器,让C++开发人员和python开发人员直接用

2.2 常用PythonGUI自动化测试工具

详细对比参考:https://blog.csdn.net/m0_37602827/article/details/108308991

工具 简介
pywinauto https://pypi.org/project/pywinauto/0.4.0/ 主要使用到 Application 类,用于应用程序管理(打开与关闭应用等)、窗口管理(最小化、最大化、关闭窗口)
Pywin32 https://pypi.org/project/pywin32/223/ 包含 win32gui、win32api、win32con 3个子模块,用于窗口管理(定位窗口、显示和关闭窗口、获取窗口位置等)
pyautogui https://pyautogui.readthedocs.io/en/latest/

2.3 说明

经过前边的介绍,我们主要是用例进行自动化测试的,所有pythonGUi编程的一些工具就用不到了。而常用的那三种pythonGUI自动化测试工具,有支持的平台有限,所以经过一番折腾,看到大神使用uiautomation,经过验证该工具很不错,用起来也方便。

3 uiautomation简介

https://www.cnblogs.com/Yinkaisheng/p/3444132.html

3.2 uiautomation信息获取

  • 博客:https://www.cnblogs.com/Yinkaisheng/p/3444132.html
  • github:https://github.com/yinkaisheng/Python-UIAutomation-for-Windows/blob/master/readme_cn.md

3.3 大体内容

  • 所以安装的时候直接:
  • UIAutomation实现的自动化支持微软提供的各种界面开发框架,如Win32, MFC, Windows Forms, WPF, Metro App, IE;
  • 另外Qt, Firefox, Chrome实现了UI Automation Provider,也支持UIAutomation;
  • UIAutomation支持平台包括Windows XP(SP3),Windows Vista, Windows 7, Windows 8、8.1、10;

4 uiautomation使用方法

4.1 常用方法

4.2 句柄常用操作

4.3 windows程序常用操作

4.4 句柄的抓取

直接运行automation模块枚举窗口时,支持下列参数(从doc窗口运行automation.py程序 ):

5 控件定位

使用Inspect.exe工具进行控件识别和定位

  • 上下载该软件,双击打开,如下:

  • 示例:比如打开计算器后,识别控件的信息如下


    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月7日
下一篇 2021年3月7日

相关推荐