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 客户端或使用树内客户端。
使用 Python 运行测试 – 如何使用 Python 客户端运行测试
您可能希望尝试 在 Python 命令提示符下交互式地使用 Marionette
开始 编写和运行 测试
关于 调试 Marionette 代码的技巧
Bug¶
如果您在 Bugzilla 中发现了任何 Bug,请将其提交到 Testing :: Marionette
组件。您可以查看 当前 Bug 列表,看看您的问题是否已经在解决。