Home Manual Reference Source
Manual » Overview

Overview

What is this thing?

This is a UI Automation framework to test the new Lifesize Cloud clients (React Web and Electron Desktop). It uses webdriver.io as our driver to control the browsers. It follows the page object design pattern for organization as well as implements the concept of controllers and clients for abstracting code away from the tests themselves. Tests are written in the mocha framework.

Webdriver.io allows us to write our tests in a synchronous fashion without having to worry about dealing with promises. It uses a robust configuration file that allows us to control many factors of our tests and framework, such as which browser to instantiate (and how many), Sauce Labs integration, test suite organization, logging verbosity and much more.

How to use this framework

In general, the tests should use the controllers. We shouldn't have to call the browser directly within the tests. If you do, abstract it out into a controller or page object. The flow of commands should go Tests use clients >> Clients use controllers >> Controllers use Page Objects >> Page Objects interact with browser

Technical Overview

  • Javascript, using ES6 syntax.
  • AVA test runner
  • Webdriver.io (Selenium wrapper) for driving browser.
  • Page Object design pattern.
  • Docker (using Zalenium) for local Selenium Grid.
  • HTTP calls to MMS API (REST API).
  • ESDOC for documentation.
  • Tested and working on Mac OSX, untested on Windows machines.