michael@0: michael@0: michael@0: # Marionette Client michael@0: michael@0: [Marionette](https://developer.mozilla.org/en/Marionette) is a michael@0: Mozilla project to enable remote automation in Gecko-based projects, michael@0: including desktop Firefox, mobile Firefox, and Boot-to-Gecko. michael@0: michael@0: It utilizes the [remote-debugger](https://wiki.mozilla.org/Platform/JSDebugv2) michael@0: inside Gecko for the transport layer of the Marionette server. The commands michael@0: the Marionette server will eventually implement are based on michael@0: Selenium's [JSON Wire Protocol](http://code.google.com/p/selenium/wiki/JsonWireProtocol), michael@0: although not all commands are presently implemented, and additional commands michael@0: will likely be added. michael@0: michael@0: ## Package Files michael@0: michael@0: - client.py: This is the Marionette socket client; it speaks the same michael@0: socket protocol as the Gecko remote debugger. michael@0: - marionette.py: The Marionette client. This uses client.py to communicate michael@0: with a server that speaks the Gecko remote debugger protocol. michael@0: This allows Selenium tests to utilize Marionette. michael@0: - testserver.py: A socket server which mimics the remote debugger in michael@0: Gecko, and can be used to test pieces of the Marionette client. michael@0: - test_protocol.py: Tests the Marionette JSON Protocol by using testserver.py. michael@0: michael@0: ## Installation michael@0: michael@0: You'll need the ManifestDestiny and MozHttpd packages from Mozbase: michael@0: michael@0: git clone git://github.com/mozilla/mozbase.git michael@0: cd mozbase michael@0: python setup_development.py michael@0: michael@0: Other than that, there are no special requirements. michael@0: michael@0: michael@0: ## Writing and Running Tests Using Marionette michael@0: michael@0: See [Writing Marionette tests](https://developer.mozilla.org/en/Marionette/Tests), michael@0: and [Running Marionette tests](https://developer.mozilla.org/en/Marionette/Running_Tests). michael@0: