/testing/marionette/client/README.md

https://github.com/diogogmt/mozilla-central
Markdown | 47 lines | 35 code | 12 blank | 0 comment | 0 complexity | 9c4ac9d8c9bb5ffbc8204c74f4081caa MD5 | raw file
  1. # Marionette Client
  2. [Marionette](https://developer.mozilla.org/en/Marionette) is a
  3. Mozilla project to enable remote automation in Gecko-based projects,
  4. including desktop Firefox, mobile Firefox, and Boot-to-Gecko.
  5. It utilizes the [remote-debugger](https://wiki.mozilla.org/Platform/JSDebugv2)
  6. inside Gecko for the transport layer of the Marionette server. The commands
  7. the Marionette server will eventually implement are based on
  8. Selenium's [JSON Wire Protocol](http://code.google.com/p/selenium/wiki/JsonWireProtocol),
  9. although not all commands are presently implemented, and additional commands
  10. will likely be added.
  11. ## Package Files
  12. - client.py: This is the Marionette socket client; it speaks the same
  13. socket protocol as the Gecko remote debugger.
  14. - marionette.py: The Marionette client. This uses client.py to communicate
  15. with a server that speaks the Gecko remote debugger protocol.
  16. - selenium_proxy.py: Acts as a remote driver for Selenium test runners.
  17. This code translates the Selenium
  18. [JSON Wire Protocol](http://code.google.com/p/selenium/wiki/JsonWireProtocol)
  19. to the [Marionette JSON Protocol](https://wiki.mozilla.org/Auto-tools/Projects/Marionette/JSON_Protocol).
  20. This allows Selenium tests to utilize Marionette.
  21. - testserver.py: A socket server which mimics the remote debugger in
  22. Gecko, and can be used to test pieces of the Marionette client.
  23. - test_protocol.py: Tests the Marionette JSON Protocol by using testserver.py.
  24. - test_selenium.py: Tests the Selenium proxy by using testserver.py.
  25. ## Installation
  26. You'll need the ManifestDestiny and MozHttpd packages from Mozbase:
  27. git clone git://github.com/mozilla/mozbase.git
  28. cd mozbase
  29. python setup_development.py
  30. Other than that, there are no special requirements, unless you're using the Selenium proxy, in which
  31. case you'll need to install the Selenium Python bindings using:
  32. pip install selenium
  33. ## Writing and Running Tests Using Marionette
  34. See [Writing Marionette tests](https://developer.mozilla.org/en/Marionette/Tests),
  35. and [Running Marionette tests](https://developer.mozilla.org/en/Marionette/Running_Tests).