Marionette 简介

Marionette 是 Mozilla Gecko 引擎的自动化驱动程序。它可以远程控制 Gecko 平台(例如 Firefox)的用户界面或内部 JavaScript。它可以控制 chrome(例如菜单和功能)或内容(加载到浏览上下文中网页),提供高级别的控制能力并能够复制用户操作。除了在浏览器上执行操作外,Marionette 还可以读取 DOM 的属性和特性。

如果这听起来类似于 Selenium/WebDriver,那么你是正确的!Marionette 与 Selenium/WebDriver 共享许多相同的理念和 API,并增加了与 Gecko 的 chrome 接口交互的命令。其目标是复制 Selenium 对 Web 内容所做的工作:使测试人员能够发送命令来远程控制用户代理。

它是如何工作的?

Marionette 由两部分组成:一个服务器接收请求并在 Gecko 中执行它们,以及一个客户端。客户端向服务器发送命令,服务器在浏览器内部执行该命令。

什么时候使用它?

如果您想使用浏览器 chrome 或内容执行 UI 测试,Marionette 就是您要寻找的工具!您可以使用它来控制 Web 内容或 Firefox 本身。

测试工程师通常会将 Marionette 客户端包导入到他们的测试框架中,导入类并使用类函数和方法来控制浏览器。在控制浏览器后,可以使用 Marionette 返回有关浏览器状态的信息,然后可以将其用于验证操作是否已正确执行。

使用 Marionette

Marionette 将 Gecko 组件(Marionette 服务器)与外部组件(Marionette 客户端)结合使用,后者驱动测试。Marionette 服务器与 Firefox 一起提供,要使用它,您需要下载 Marionette 客户端或使用树内客户端。

Bug

如果您在 Bugzilla 中发现了任何 Bug,请将其提交到 Testing :: Marionette 组件。您可以查看 当前 Bug 列表,看看您的问题是否已经在解决。