The Executor - GannettDigital/simulato GitHub Wiki

Simulato Executor

Introduction:

Simulato’s executor is responsible for executing a single test case. The actual execution of the code is done in a node child process created from simulato’s test runner. This document specifies the interactions inside the code and the design of the executor.

Requirements:

  • A singular test is run
  • Creates a driver used to run the tests
    • Local driver
    • Sauce driver
      • Uses the tunnel created by the test runner
      • Reports back to sauce the status of the test
  • Executes the actions of the previously generated test by the planner
    • Runs each step specified in the model’s action
      • Preconditions (optional)
        • Asserts the page state for specified preconditions
          • Timeout for when to stop checking
          • Reports what preconditions were not met
      • Perform
        • Uses created driver to execute perform block
          • Reports any errors during execution
      • Effects
        • Asserts the page state for specified effects
          • Timeout for when to stop checking
          • Creates comparison report on failure
  • Report is generated that is sent back to the test runner
    • Report requirements are detailed in the report section of this document
  • Driver is stopped when test is finished

Report Requirements:

  • Test Name
  • Test Status
  • Total Test Time
  • Actions Performed
    • Component Name
    • Action Name
    • Status
    • Action Time
  • Each Step Performed
    • Name
    • Status
    • Step Time
    • Error
      • Name
      • Code
      • Message
      • Stack
    • State Compare Report (for effects failures)

Sequence Diagram

Link

Executor Sequence Diagram