自动化协议
使用 WebdriverIO,您可以在本地或云端运行 E2E 测试时选择多种自动化技术。默认情况下,WebdriverIO 将尝试使用WebDriver Bidi 协议启动本地自动化会话。
WebDriver Bidi 协议
WebDriver Bidi 是一种自动化协议,用于使用双向通信来自动化浏览器。它是 WebDriver 协议的继任者,并为各种测试用例提供了更多内省功能。
此协议目前正在开发中,将来可能会添加新的原语。所有浏览器供应商都已承诺实施此 Web 标准,并且许多原语已在浏览器中落地。
WebDriver 协议
WebDriver 是一个远程控制接口,可以启用用户代理的内省和控制。它提供了一个平台和语言中立的线协议,作为进程外程序远程指示 Web 浏览器行为的一种方式。
WebDriver 协议旨在从用户的角度自动化浏览器,这意味着用户能够执行的所有操作,您都可以使用浏览器执行。它提供了一组命令,这些命令抽象了与应用程序的常见交互(例如,导航、点击或读取元素的状态)。由于它是一个 Web 标准,因此在所有主要浏览器供应商中都得到了很好的支持,并且还被用作使用Appium进行移动自动化时的底层协议。
要使用此自动化协议,您需要一个代理服务器来转换所有命令并在目标环境(即浏览器或移动应用程序)中执行它们。
对于浏览器自动化,代理服务器通常是浏览器驱动程序。所有浏览器都有可用的驱动程序
- Chrome – ChromeDriver
- Firefox – Geckodriver
- Microsoft Edge – Edge Driver
- Internet Explorer – InternetExplorerDriver
- Safari – SafariDriver
对于任何类型的移动自动化,您都需要安装和设置Appium。它将允许您使用相同的 WebdriverIO 设置来自动化移动(iOS/Android)甚至桌面(macOS/Windows)应用程序。
还有许多服务允许您在大规模云端运行自动化测试。无需在本地设置所有这些驱动程序,您只需与云端中的这些服务(例如Sauce Labs)通信并在其平台上检查结果。测试脚本和自动化环境之间的通信如下所示