Getting Started

Reflow enables the rapid creation and maintainence of web end-to-end tests, across all modern browsers. Use it either locally or on the web.

Installation

Reflow requires node.js installed on the machine it runs on. To install node.js, follow instructions at https://nodejs.org/en/download/. Reflowio is tested against node versions >=12

Once node.js is installed, use npm to install and invoke the reflow cli.

npm install -g reflowio

reflowio dashboard

If you're not using npm, you can use the cloud dashboard at app.reflow.io to view, edit and record new tests. Recording flows require a chromium based browser.

Usage

To get started, start the dashboard instance by running reflowio dashboard. This will bind to localhost on port 3100.

Once this is running, you can access the dashboard by navigating to http://localhost:3100. Create an account if you don't have one yet, or proceed to login.

Recording your first test

To record a test, click the 'Create Flow' button. You will need to configure a name and starting URL, though these can be edited later.

After confirmation, you’ll see your starting URL load up on the center pane of the recording area. On the left hand side the Test Actions [1] are shown, along with the current Cursor [2]. On the right hand side, the chromium developer tools are mounted and connected to the page under test.

As you interact with the central pane, test actions will be recorded in the left hand pane. They can be edited (e.g. to convert a hard coded input into a variable or string template) by interacting with the action in the test pane. When recording a custom action, selecting an element in the developer tools pane will update the element selector in the custom action. If any action is created accidentally, it can be deleted via clicking on the test action to open it up, then clicking the Bin icon and accepting the confirmation.

The page can be refreshed without worry; test state is stored on the server. However, if you close the page and do not return within 2 minutes, the server will abandon the test and close the browser. Multiple users targetting the same server can open the test at the same time, should they are authorized to view it by being in the same team. Note that multi-user editing is intended as a local feature, as the cloud instance at https://app.reflow.io is load balanced and test state is stored in-memory (a cookie is set to ensure an individual user is sticky to one server instance, but this will only be valid for a single browser session).

After you've set up all the desired steps, click the "Save" button at the bottom of the Test Action pane. Confirm the prompt to save the test.

[1] Test Actions are the steps recorded in the test. These can be viewed, edited, deleted, played until or jumped to using the various test action panes. Hover over each button to understand what it does.

[2] The cursor represents where new steps are recorded. Interaction with the center pane will cause a new Action to be created at the cursor location, and the cursor to step forward such that the new action is behind it. Additionally, custom actions, such as Wait, Assert, Extract Variable and Execute JavaScript can added at the current cursor position; please see the Test Actions documentation for more information.

Executing the test

Tests can be triggered as a Run by clicking the "Play" button in the test dashboard.

Servers poll for triggered runs to execute using the following logic:

  1. Each server has capacity to run 1 test in parallel per logged in user on that server. A server is authorized to see runs only for logged in users.
  2. A triggered run will be associated with the dashboard server that the run was triggered upon.
  3. Servers will immediately start new runs that are associated with that server, assuming that the server has capacity.
  4. Servers will immediately associate (lock) new runs to themselves that are started in an unassociated manner.
  5. Servers will associate (lock) runs that are associated with another server if 25 minutes has passed since the run was last updated. I.e. if a server is stopped part way through execution, the run will be re-run after 25 minutes has passed from the time the last server updated the test. A run will be marked as failed if this happens 3 times.

The most recent test can be viewed via clicking the test status in the test row. To view a historical test run, the history pane can be accessed in the test context menu.

The server will execute action-by-action, utilising and updating Test Variables as it completes.

© 2021 Resilient Software Ltd