UI自动化(UI Automation)解决方案

36

项目上有通过VPN和跳板机进行调试的需求,但是VPN经常掉线导致跳板机失去连接,想着使用自动化工具重新连接,不过最终还是没有找到好的方案,先记下研究过程中发现的工具。

Webdriver 协议

WebDriver 可以被视为一种接口规范。它定义了一组用于自动化客户端操作的协议和接口。这些接口允许开发者编写脚本来模拟用户与客户端的交互,例如导航到网页、点击链接、填写表单、执行脚本命令等。

WebDriver 的关键特点是它的客户端-服务器架构。客户端,通常是开发者编写的测试脚本,发送遵循WebDriver协议的命令到服务器端,即浏览器的驱动程序。驱动程序解析这些命令,并将其转换为浏览器可以理解的操作。这种设计使得WebDriver可以在不同的编程语言和操作系统上运行,支持多种浏览器和平台。

下面介绍的多款自动化工具都是遵循WebDriver接口规范来使用的。

w3cWebdriver:https://w3c.github.io/webdriver/

Selenium

Selenium 是一个开源的自动化测试工具套件,主要用于 web 浏览器应用程序的自动化测试。它支持多种浏览器和操作系统,可以模拟真实用户的行为,如点击、输入、拖拽等操作。

Selenium 支持多种操作系统和浏览器,包括 Windows、Mac、Linux 以及 Chrome、Firefox、Internet Explorer 等

Selenium 的核心组件包括:

  1. Selenium IDE:这是一个浏览器插件,可以录制用户的操作,生成测试脚本。这些脚本可以用其他 Selenium 组件执行。

  2. Selenium WebDriver:这是 Selenium 的核心组件,它模拟用户与浏览器的交互。WebDriver 为多种编程语言提供了 API,如 Java、C#、Python、Ruby 等。开发者可以使用这些 API 编写测试脚本,控制浏览器进行各种操作。

官网:https://www.selenium.dev/zh-cn/

Appium

Appium 主要用于移动应用程序的测试,包括 iOS、Android 和 Windows 应用程序。Appium 使用 WebDriver 协议来驱动 iOS、Android 和 Windows 模拟器或真实设备上的原生、移动 Web 和混合应用程序。

Appium 客户端库为多种编程语言提供了支持,包括 Java、Python、Ruby、C# 等。这些客户端库公开了一组 API,允许测试作者编写脚本来自动化移动设备的操作。

官网:http://appium.io/docs/en/2.4/

WinAppDriver

用于自动化 Windows 应用程序的 UI 测试。WinAppDriver 基于 Windows Application Driver 协议,该协议由微软开发,用于自动化 Windows 应用程序。

WinAppDriver 专注于 Windows 桌面和 UWP(Universal Windows Platform)应用程序的自动化测试。它允许开发者编写测试脚本,以自动化 Windows 应用程序的用户界面交互。

WinAppDriver 在实现上兼容了 Appium 客户端的操作方式,当使用 WinAppDriver 时,开发者可以继续使用Appium客户端库,只需将测试脚本的初始化指向 WinAppDriver 服务器而不是 Appium 服务器。

官网:https://github.com/microsoft/WinAppDriver

SikuliX

SikuliX 是一个开源的自动化测试框架,使用图像和脚本来自动化 GUI 应用程序。基于 Sikuli,是由 Jython 实现的 Sikuli 脚本语言,用于编写自动化脚本。SikuliX 支持多种操作系统,包括 Windows、Linux 和 macOS,并且可以通过 Java 扩展支持其他平台。

对于没有编程背景的用户,SikuliX 提供了一个易于使用的图形界面,允许他们通过拖拽和点击来创建自动化脚本

官网:http://www.sikulix.com/

总结

Selenium、Appium、WinAppDriver 和 SikuliX,都是为在屏幕上显示和操作 GUI(图形用户界面)而设计的。这些工具依赖于屏幕上的元素可见和可交互,因此它们通常需要在设备或模拟器的屏幕上运行应用程序,以便自动化脚本可以与之交互。