如何实现WinApp的UI自动化测试?

WinApp(WindowsAPP)是运行在Windows操作系统上的应用程序,通常会提供一个可视的界面,用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都属于WinApp。常见的WinApp,其扩展名基本都是*.exe,运行后也都会有一个漂亮、易用的UI界面,本章就详细介绍如何通过脚本实现WinApp的UI自动化测试。

1.1.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的功能测试是相同的,都是一种黑盒测试。以需求为准,运用各种测试方法设计测试用例,尽可能地思考、全覆盖用户使用场景,实现测试用例,保障产品质量。

1.2.WinApp自动化测试工具

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

1.AutoIt

AutoIt当前最新版本是v3,是用以编写并生成具有BASIC语言风格的脚本程序的免费软件,它被设计用来在Windows GUI(用户界面)中进行自动操作。使用AutoIt可以模拟鼠标和键盘实现对窗口/控件的操作,是一款非常优秀的Windows GUI自动化测试软件。AutoIt有着诸多优点,例如简单易懂的类BASIC表达式、操作窗口与进程、直接与窗口的"标准控件"交互、脚本可以编译为标准可执行文件、COM支持、直接调用外部DLL和Windows API函数、高精度和易使用的数学运算。AutoIt在设计时就尽可能小,且不用依赖外部DLL文件或添加注册表项目即可独立运行,也可以安全的成为服务运行。脚本可以使用Aut2Exe编译为可独立运行的文件。

2.WinAppDriver

WinAppDriver(Windows Application Driver)是微软的一款客户端自动化测试工具,类似Selenium的UI自动化测试服务工具。支持测试运行在Windows 10或Windows Server 2016以上系统的UWP、WinForms、WPF、Win32程序。WinAppDriver支持Appium,因此使用Appium-Python-Client依赖库可以像测试移动端APP一样,完成Windows桌面程序的自动化脚本的开发。

3.PyWinAuto

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

4.PyAutoGUI

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

5.Coded UI

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

6.UIAutomation

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

最后如果你想学习软件测试和需要软件测试资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/587900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用内网穿透轻松实现在外远程访问本地威联通QNAP NAS

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 前言 购入威联通NAS后,很多用户对于如何在外在公网环境下的远程访问威联通NAS…

学习使用echats实现双刻度echarts双Y轴,左右Y轴数据的方法

学习使用echats实现双刻度echarts双Y轴&#xff0c;左右Y轴数据的方法 代码效果图 代码 <!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?cline-stack&langjs --> <!DOCTYPE html> <html lang"en" style"height: 10…

Visual Studio 任务列表

任务列表 帮助我们快速找到注释位置&#xff08;用在需要反复查找修改的地方&#xff09; 使用//todo&#xff1a;注释的内容就会显示在任务列表中。 任务列表如何打开&#xff1f; 视图—任务列表 &#xff08;CTRlwt&#xff09; 创建自定义令牌&#xff1a; 在 “工具”…

学习路径概览

根据codewave 低代码官方的资料&#xff0c;我们以一个简单的初级采购管理系统为例&#xff0c;带大家进行学习。学习的案例框架如下&#xff1a; https://ik4mh7u2np.feishu.cn/docx/NjyEd9qD5oElkoxJhapc3fV4nPe?fromfrom_copylink​​​​​​​ 主要分为以下四个学习模块

L1-075:强迫症

题目描述 小强在统计一个小区里居民的出生年月&#xff0c;但是发现大家填写的生日格式不统一&#xff0c;例如有的人写 199808&#xff0c;有的人只写 9808。有强迫症的小强请你写个程序&#xff0c;把所有人的出生年月都整理成 年年年年-月月 格式。对于那些只写了年份后两位…

Centos7部署Keepalived+lvs服务

IP规划&#xff1a; 服务器IP地址主服务器20.0.0.22/24从服务器20.0.0.24/24Web-120.0.0.26/24Web-220.0.0.27/24 一、主服务器安装部署keepalivedlvs服务 1、调整/proc响应参数 关闭Linux内核的重定向参数&#xff0c;因为LVS负载服务器和两个页面服务器需要共用一个VIP地…

『番外篇八』SwiftUI 脑洞大开实现“另类”视图跟随方法

概览 在 SwiftUI 的开发中,我们时常需要用指尖丝滑般地操作指定视图:比如,我们需要在拖动视图后让它自动归位,或者拖动一个视图时让另一个视图跟随它移动。 我们随后将会详细讨论上述两个 SwiftUI 中与视图移动相关场景的实现。 在本篇博文中,您将学到如下内容: 概览1.…

python期刊稿件在线投稿系统q2ud0

本系统的用户可分为管理员、投稿者、审稿人和编辑四个用户角色组成。管理员可以管理系统内所有功能&#xff0c;主要有个人中心、投稿者管理、审稿人管理、编辑管理、个人稿件管理、审核稿件管理、稿件信息管理、类型管理等功能&#xff1b;编辑登录系统主要有个人中心、审核稿…

四种常见智能指针的介绍

一、介绍 当类中有指针成员时&#xff0c;一般有两种方式来管理指针成员&#xff1a;一是采用值型的方式管理&#xff0c;每个类对象都保留一份指针指向的对象的拷贝&#xff1b;另一种更优雅的方式是使用智能指针(smart pointer)&#xff0c;从而实现指针指向的对象的共享。 …

统信系统常见问题解决方法

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 背景说明 本文所说的问题&#xff0c;是基于浪潮统信UOS的环境存在的问题。 一、WPS新建文档默认保存格式不对 解决办法&#xff1a; 1.编辑/opt/apps/cn.wps.wps-office-pro/files/kingsoft/wps-office/…

UML类图学习

UML类图学习 UML类图是描述类之间的关系概念1.类(Class)&#xff1a;使用三层矩形框表示2.接口(interface)&#xff1a;使用两层矩形框表示&#xff0c;与类图主要区别在于顶端有<<interface>>显示3、继承类&#xff08;extends&#xff09;&#xff1a;用空心三角…

蓝桥杯C/C++程序设计——单词分析

题目描述 小蓝正在学习一门神奇的语言&#xff0c;这门语言中的单词都是由小写英文字母组 成&#xff0c;有些单词很长&#xff0c;远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词&#xff0c;他准备不再完全记忆这些单词&#xff0c;而是根据单词中哪个字母出…

Pytest 项目结合Jenkins

一、window安装centos7虚拟机 参考网上其他教程 二、Linux安装Jenkins 进入jenkins.io网址&#xff0c;点击download&#xff0c;选择CentOS版本 1、Linux中安装java环境和git Jenkins的运行需要java环境&#xff1b;安装git是为代码上传给仓库做准备&#xff1b; yum - y…

C语言-环境搭建

文章目录 内容Notepad的安装gcc编译工具的配置 编写软件的安装&#xff1a;软件传送门&#xff1a;Notepad软件选择一个合适的路径&#xff0c;一键傻瓜式安装即可 编译工具gcc在windows环境下的配置&#xff1a;解压gcc编辑工具包解压出来的mingw64文件放到一个合适的磁盘路径…

华为HCIE-Datacom课程介绍

厦门微思网络HCIE-Datacom课程介绍 一、认证简介 HCIE-Datacom&#xff08;Huawei Certified ICT Expert-Datacom&#xff09;认证是华为认证体系中的顶级认证&#xff0c;HCIE-Datacom认证定位具备坚实的企业网络跨场景融合解决方案理论知识&#xff0c;能够使用华为数通产品…

副业类小报童热门专栏TOP15

今天介绍15个副业小报童&#xff0c;可以说是当前小报童平台&#xff0c;副业类专栏的天花板内容了 这些专栏&#xff0c;都有免费内容可以查看&#xff0c;而且还是3天无理由退款的&#xff0c;完全可以尝试着订阅一波 关键单价都非常亲民&#xff0c;怎么都不亏&#xff01…

安装与部署Hadoop

一、前置安装准备1、机器2、java3、创建hadoop用户 二、安装Hadoop三、环境配置1、workers2、hadoop-env.sh3、core-site.xml4、hdfs-site.xml5、linux中Hadoop环境变量 四、启动hadoop五、验证 一、前置安装准备 1、机器 主机名ip服务node1192.168.233.100NameNode、DataNod…

工智能基础知识总结--什么是CRF

什么是CRF CRF是给定随机变量X的条件下,随机变量Y的马尔科夫随机场(概率无向图)。 这里主要介绍在线性链上的特殊的条件随机场,称为线性链条件随机场,可用于序列标注等问题。 线性链条件随机场如下图所示,输出变量仅与输入变量以及相邻输出变量有连线。 CRF的参数化表示…

【网络安全】有趣的基础知识

背景 逐条记录网络安全学习中有趣的内容和知识。 内容 CNNIC&#xff08;中国互联网络信息中心&#xff09;是中国国家域名.cn的管理组织。中国互联网络信息中心于1997年6月3日组建&#xff0c;现为工业和信息化部 直属事业单位 &#xff0c;行使国家互联网络信息中心职责。…

政务大数据能力平台建设方案:文件全文30页,附下载

关键词&#xff1a;智慧政务解决方案&#xff0c;智慧政务建设&#xff0c;智慧政务服务平台&#xff0c;智慧政务大数据&#xff0c;数字政务一体化平台。大数据&#xff0c;政务大数据建设 一、智慧政务建设需求 1、政务服务需求&#xff1a;智慧政务建设需要满足人民群众的…