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

2023-09-18 15:01:33

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框架程序,它提供许多好用的功能,例如获取窗口对象、窗口属性调整、截图、全局热键注册、剪切板操作和管理员权限提权。是一款非常优秀的自动化测试工具。

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

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

更多推荐

go并发(进程、线程、协程)

背景go强大的多线程能力很强大,能并发处理大量的任务。详细案例分类主要介绍go中的进程、线程、协程这三个东西。它们的关系按照内存大小的关系依次是进程>线程>协程(一般一个协程2K)。进程进程基本上是一个正在执行的程序,它是操作系统中最小的资源分配单位。比如电脑上运行的一个软件就是一个进程。go开启进程的方式有三种,本质

MySQL(2) Explain

1、概念使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈2、使用在select语句之前增加explain关键字,MySQL会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL在explain语句后马上执行一条showwarnings语句,会展示mysql对上

Docker

前言:📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年!📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。😇😇😇有兴趣的话关注博主一起学习,一起进步吧!一、初识Docker1.1项目部署的问题大型项目组件较多,

Session,cookie,cache,memcache三者的详细讲解

1.SessionSession是一种在服务器端跟踪客户端状态的机制,主要用于在用户与服务器之间建立会话。当用户访问网站时,服务器会为该用户创建一个唯一的会话,并为其分配一个唯一的会话标识符(通常是一个长字符串),这个标识符存储在服务器上。之后,用户和服务器之间的所有交互都通过这个唯一的会话标识符进行标识,以保持状态的

基于时序分析及约束(1)-时序约束是什么?

首先回答标题的问题:时序约束是什么?简单来讲,时序约束就是你要告诉综合工具,你的标准是什么。综合工具应该如何根据你的标准来布线,以满足所以寄存器的时序要求。为什么要做时序约束?这里引用特权同学书中的话:“没有任何设计约束的工程,编译器工作的时候就如脱缰的野马,漫无目的且随意任性;但是,任何的设计过约束或者欠约束,都可能

打造本地紧密链接的开源社区——KCC@长沙开源读书会&openKylin爱好者沙龙圆满举办...

2023年9月9日,由开源社联合openKylin社区举办的KCC@长沙开源读书会&openKylin爱好者沙龙,在长沙圆满举办。这是KCC@长沙首次正式进入公众视野,开展开源交流活动,也是openKylin社区长沙首场线下沙龙。长沙地区及其周边的众多开源爱好者齐聚活动现场,聆听读书分享、参与开源话题讨论,实现1+1>

HAM高可用配置及故障切换

1.什么是MHAMHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可

RK3588修改eth0和eth1,对调这两个网卡设备的名称

1、以太网卡的名称一般是ethX(X可以是0,1,2,3…),一般我们的设备只有一个网卡,并且一般也不会改变它的网卡名称,所以不需要关注此问题,但是有一些设备有两三个网卡,有时候我们需要eth0是指定的硬件网卡设备,此时我们就需要人为干预一下,修改一下网卡的名称,使其满足我们的使用场景。2、在rk平台,假如你的两个网卡

蓝蓝设计提供地理信息系统GIS界面设计

北京蓝蓝设计(北京兰亭妙微科技有限公司)是一家专业的设计公司,致力于为客户打造卓越的用户体验和品牌价值。他们在地理信息系统(GIS)UI界面设计领域拥有丰富的经验和专业的设计团队。他们深入了解地理信息系统的特点和用户需求,通过用户研究和数据分析,精心设计出符合用户习惯和心理的GISUI界面。他们注重界面的布局和排版,确

软文发稿:软文发稿小技巧让你瞬间爆红

欢迎阅读本篇科普文章,我们将为您介绍软文发稿推广的小技巧,帮助您快速在网络平台上获得广泛关注。不仅仅是吸引眼球,我们还将分享实用的策略,帮助您提高软文的质量,提升传播效果。1.精准抓住受众要瞬间爆红,首先要明确目标受众。在撰写软文之前,进行市场调研是必不可少的步骤。了解受众的年龄、性别、兴趣爱好、需求等信息,有助于您编

深圳企业智荟康亮相深圳教装展,大力推动校园健康午休工程

2023年9月15日上午,第五届深圳教育装备博览会在深圳(福田)会展中心隆重开幕。本届教博会以“数字赋能·先行示范”为主题,这场盛会吸引了来自全国各地的众多教育界人士和专业观众。主办方介绍,本次展会将有效推动教育装备领域的技术革新和产业升级,将继续引领行业风向,加速促进产业融合,为各级各类教育机构和教育装备企业提供新技

热文推荐