• WinApp自动化测试之工具的选择


    WinApp(Windows APP)是运行在Windows操作系统上的应用程序,通常会提供一个可视的界面,用于和用户交互。

    例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都属于WinApp。常见的WinApp,其扩展名基本都是*.exe,运行后也都会有一个漂亮、易用的UI界面,下面就详细介绍如何通过脚本实现WinApp的UI自动化测试。

    WinApp测试简介

    Windows系统下开发GUI应用程序有很多方式,常见有基于C++的Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout,基于C#的Winform、WPF,基于Chromium和Node.js的Electron,基于Java的AWT、Swing,基于Pascal的Delphi,基于Go语言的walk,每种技术都有自己的亮点。

    但对于测试人员来说,都要全面开展测试,为保障产品质量下足功夫,带给用户好的体验。

    WinApp测试涉及面非常广,大方向上可以从安装与卸载、升级更新、UI界面、业务功能、性能、交叉事件、兼容性、安全性、硬件环境、异常情况几个方面开展测试。

    安装与卸载

    验证程序是否可以正确安装、运行、卸载。

    升级更新

    新版本发布后,存在更新提示,且下载、安装、更新、启动、运行、卸载等功能正常。

    UI界面

    验证程序界面的布局、风格是否与需求相符,文字、菜单、配色、图片等显示正确,易操作、人性化。

    业务功能

    验证需求说明书中描述的业务功能模块均已实现,且符合预期。

    性能

    验证程序的负载能力,对CPU、磁盘、内存、电量等的消耗。

    交叉事件

    与Windows系统上的其它应用互不影响。例如同时打开被测程序和其它一个程序,两者互不干扰,都可以稳定运行。

    兼容性

    可以在支持的不同品牌、型号、系统版本上正常运行。

    安全性

    安全性是非常重要的一项测试,例如用户权限、数据安全、接口安全。

    硬件环境

    不同硬件环境下验证,例如CPU、磁盘、内存、笔记本电量等对程序的影响。

    异常情况

    各种异常情况下测试程序,例如磁盘不足、网络不佳等情况。

    WinApp的功能测试实质上和测试人员测试Web、移动端APP的功能测试是相同的,都是一种黑盒测试。以需求为准,运用各种测试方法设计测试用例,尽可能地思考、全覆盖用户使用场景,实现测试用例,保障产品质量。

    WinApp自动化测试工具

    WinApp自动化测试工具非常多,但不同的项目实现自动化测试有着不同的目的,因此根据自己需求结合自动化测试工具的优缺点,选择合适的工具尤为重要,对后续的自动化脚本开发及维护都大有裨益。下面整理了一些WinApp自动化测试工具,给大家提供参考。

    AutoIt

    AutoIt当前最新版本是v3,是用以编写并生成具有BASIC语言风格的脚本程序的免费软件,它被设计用来在Windows GUI(用户界面)中进行自动操作。

    使用AutoIt可以模拟鼠标和键盘实现对窗口/控件的操作,是一款非常优秀的Windows GUI自动化测试软件。

    AutoIt有着诸多优点,例如简单易懂的类 BASIC 表达式、操作窗口与进程、直接与窗口的"标准控件"交互、脚本可以编译为标准可执行文件、COM支持、直接调用外部DLL 和 Windows API 函数、高精度和易使用的数学运算。

    AutoIt在设计时就尽可能小,且不用依赖外部DLL文件或添加注册表项目即可独立运行,也可以安全的成为服务运行。脚本可以使用Aut2Exe编译为可独立运行的文件。

    WinAppDriver

    WinAppDriver(Windows Application Driver)是微软的一款客户端自动化测试工具,类似Selenium的UI自动化测试服务工具。

    支持测试运行在Windows 10或Windows Server 2016以上系统的UWP、WinForms、WPF、Win32程序。WinAppDriver支持Appium,因此使用 Appium-Python-Client 依赖库可以像测试移动端APP一样,完成Windows桌面程序的自动化脚本的开发。

    PyWinAuto

    PyWinAuto是Python的一个库,用于测试Windows系统上的GUI应用程序,允许发送鼠标和键盘操作到窗口对话框和控件。PyWinAuto提供的API是对Windows标准控件的行为处理,例如指定窗口、鼠标操作、键盘操作、获取窗口或控件属性,使用方便,且对中文也有很好的支持。

    PyAutoGUI

    PyAutoGUI是Python的一个第三方库,可对GUI程序实现自动化测试。主要通过控制鼠标和键盘,与其他应用程序交互。PyAutoGUI可以在Windows、macOS和Linux系统上工作,支持Python2和Python3。

    Coded UI

    Coded UI Test是Visual Studio 2010对于Testing Project(测试工程)提供的关于UI自动化测试的框架,支持Win32、Web、WPF等UI自动化测试,是一个非常强大的测试工具。它的原理是获取到Windows窗口上的控件,然后针对控件的部分属性进行获取和对比,模拟对控件点击、双击、右键点击等事件。Coded UI不但支持手动编写,还支持自动录制。

    UIAutomation

    UIAutomation封装了微软的UIAutomation API,支持测试Win32、MFC、WPF、Modern UI(Metro UI)、Qt、Firefox等UI框架程序,它提供许多好用的功能,例如获取窗口对象、窗口属性调整、截图、全局热键注册、剪切板操作和管理员权限提权。是一款非常优秀的自动化测试工具。

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    文档获取方式:

    加入我的软件测试交流群:632880530免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

    这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

    以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

  • 相关阅读:
    JavaWeb开发之——SQL简介&通用语法及分类(05)
    10个简单但超级有用的Python装饰器
    GitHub推送代码时弹出验证框总是登录失败
    js 去除字符串左右两边空格
    MATLAB神经网络编程(八)——BP神经网络的限制与改进
    反射Reflect
    一文读懂HD Wallet以及BIP32、BIP39、BIP43、BIP44
    如何部署SpringBoot工程
    六千字带你快速上手操作MySQL
    微前端无界 项目使用记录
  • 原文地址:https://blog.csdn.net/YJT1002/article/details/133684081