- WinAppDriver (*Paused Project)
- Winium
- White framework (DEPRECATED)
- Jubula
- pywinauto
- Oracle Application Testing Suite
- SikuliX
- FlaUI
- AutoIt
- ZAPTEST
- AirTest
- Appium (no this is not a typo)
- Robot Framework
- AltUnity Tester
- Nexial
- Karate
- WinAppDriver
- Winium
- TestArchitect
- Ranorex
- Tricentis Tosca
- TestComplete
- Micro Focus UFT (QTP)
- SikuliX
- Robot Framework
- AutoIt
- White Framework
- Conformiq
WinAppDriver建立在WebDriver协议之上——Web和移动应用程序测试的黄金标准。您可以使用 WinAppDriver 来驱动任何 Windows 应用程序,例如经典的 Windows 控件 (Win32)、WPF、WinForms 和使用各种语言绑定(C#、Java、Python、Ruby)和测试运行程序(MSTest、JUnit、Nunit)的 UWP , 等等。)。
优点 | 缺点 |
◘ 借助 WebDriver,您可以使用任何您喜欢的语言和测试运行程序来测试您的 Windows 应用程序 | ◘ 仅在 Windows 10 上运行,不适用于 macOS 或 Linux |
◘ 它是基于 WebDriver 的,所以 Selenium/Appium 测试人员感觉就像在家里一样 | ◘ 无法自动化由其他技术栈(如 Java、DevExpress、Infragistics、SAPGUI 和 Oracle Forms 等)编写的应用程序。 |
◘ 您可以毫不费力地以相同的语言与 Selenium 和 Appium 项目集成 | ◘ 没有内置的间谍工具。您必须使用inspect.exe (Windows SDK) 并将inspect.exe 属性映射到WinAppDriver 属性 |
◘ 您可以执行高级手势,如压力、倾斜、桶形按钮(表面笔)等。 | ◘ 您必须知道如何编写和构建可维护的测试自动化框架 |
◘ 您可以使用 XPath 和其他属性来定位 Windows UI 元素 | ◘ 没有录音和回放 |
◘ 您可以使用行业标准的POM | ◘ 没有对 ALM 集成的内置支持 |
◘ 它是免费的、开源的,并由 Microsoft 提供支持 |
UFT/QTP是自早期以来在测试自动化市场中仍然存在的最古老的工具之一。UFT 是一个强大的 UI 测试工具。它允许您测试各种平台,包括桌面、Web、Web 服务、SAP 和移动。它还与 HP Quality Center 无缝集成。
优点 | 缺点 |
◘ 由于其关键字驱动测试方法,UFT 更容易被非技术测试人员采用 | ◘ 无法在 macOS 和 Linux 上运行 |
◘ UFT 可以自动化各种平台,如 .NET、Java、浏览器、移动应用程序、Web 服务、SAP、ComponentOne、DevExpress、UIA、数据库等。 | ◘ 专有的测试运行器 |
◘ 跨平台端到端测试在一个流程中从 API 跳转到桌面、移动和 Web。 | ◘ UFT 仅支持 VBScript |
◘ 使用各种对象属性和 XPath 定位元素。 | ◘ 名词优先关键字方法在测试创建和维护中造成不必要的摩擦 |
◘ 能够与 Git、Subversion 和 TortoiseSVN 集成以进行测试资产的版本控制 | ◘ 编写测试时鼠标点击过多 |
◘ 内置对象间谍工具 | ◘ 商业广告,所以你必须付费,没有免费增值 |
◘ 内置录音回放,运行可靠 | |
◘ 内置 ALM 集成,尤其是与 HP Quality Center/HP ALM 等的集成。 |
如果您已经将 HP QC 作为您的测试管理系统,UFT 是您测试自动化的自然选择。
Robot Framework是另一个由关键字驱动的开源工具。该机器人非常灵活,因为您可以将它与许多桌面自动化库一起使用,例如 SwingLibrary(Java Swing GUI)、SikuliLibrary(SikuliX)、SapGuiLibrary、JavaFXLibrary(JavaFX 应用程序)、EclipseLibrary(Eclipse RCP/SWT)和 AutoItLibrary(AutoIt)。
优点 | 缺点 |
◘ 可以在多个操作系统上运行:Windows、Linux、macOS | ◘ 您必须使用 Eclipse 或 RIDE 来编写测试(没有内置 IDE) |
◘ 以关键字驱动的格式编写易于理解的测试,因此不需要太多编码 | ◘ 测试以制表符分隔,因此很难查看 |
◘ 支持桌面、网页、移动等多种平台 | ◘ 没有内置的对象间谍工具 |
◘ 支持多种测试运行器 | ◘ 没有内置的 ALM 集成 |
◘ 多元素定位器类型 | ◘ 无内置录音回放 |
◘ 可以使用页面对象 | ◘ 过时的文档和用户指南 |
◘ 可以使用Pabot并行运行多个测试 | |
◘ 强大的社区支持 | |
◘ 它是免费的 |
Robot Framework 是昂贵的商业工具的绝佳替代品。如果您的预算紧张,请考虑采用 Robot FW。但是,从长远来看,要注意在学习和维护框架方面的不那么明显的投资。
环境安装
1. 安装Node.js 和Appium :
Appium(二):Node.js下载与安装、非GUI版本appium下载与安装、GUI版本appium下载与安装 - SmallGrayCode - 博客园
建议Appium的非GUI和GUI版都安装,我们用的一般是非GUI,但是有时候可以用GUI版本定位问题,比如通过Appium session定位元素。
2. 安装WinAppDriver (官网上WinAppDriver是集成在Appium, 安装了Appium,是不需要再安装WinAppDriver,但是我安装了Appium后,运行程序会提示WinAppDriver未安装,可能是版本问题)
参考 :使用微软的WinAppDriver进行Windows客户端自动化测试 - 南书房 - 博客园
基本步骤流程
1, 安装Nodejs
2. 安装Appium
3. 安装WinAPPDriver(虽然Appium官网说不用单独安装这个,但是我试了不安装会遇到问题)
4. 我是用C#, 在vs2015(2017)里新建一个工程,并把通过Nuget安装上Appium driver.
具体设置过程参考: Windows - Appium
5. 启动Appium
6. 开启开发者模式
7.启动WinAppDriver.exe(这一步一般是不需要的,如果报WinAppDriver没起来或没安装可以试一试)
在C:\Program Files (x86)\Windows Application Driver, 可以双击里面的WinAppDriver.exe文件
8. 环境好啦,开始写测试代码
定位元素-SDK-Inspect.exe
官方介绍: Accessibility tools - Inspect - Win32 apps | Microsoft Docs
这里要注意:我发现有些朋友说装了SDK后没有找到inspect.exe, 我猜是因为有几个版号,没有找对文件夹,下图是我电脑上实际找到的位置(找版号最大的,没找到的话,把这几个文件夹都看一下)
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86