Concrete implementation in ohrm-tests github repository.

Implement test automation best practices with webdriver-overload.


Jobs are created in your CI/CD server (ex are jenkins, bamboo) and are responsible for :

In commun implementations they are only one entity so called automated tests. Gherkin introduce a first idea of splitting tests and automaton, however the goal is provide a translator from native langage to executable code. Therefore, when we look into the code itself, we notice that tests concepts are mixed with automaton concepts.

Having a place for everything and putting everything in its place is one of the keys to achieve maintainable automated tests.

Tests concept includes

Automaton concept includes


The test initialisation phase includes everything that must be prepared before running the test. The job indicates what should be done and the test prepare everything. Test only need the automaton to get the configuration value of the application for the environnement set by the job.


A test action consists of asking the applicaton to do something (more or less create and update data, persistant or not).

When using cucumber, test is made of two parts, gherkin (tests described on natural langage) and the glue. Actions are identified using 'Given' and 'When' key words. The glue step corresponding to these phrasing looks like :

The automaton takes care of all interactions with the application and it is made of :


A test check consists of comparing a result provided by the application to an expected value

When using cucumber, checks are identified using 'Then' key word. The glue step corresponding to these phrasing looks like :

Getting values from the application includes same flow as performing features with the difference that data in the application is not created or updated, only read.

This concept implies that automaton knows nothing about expected values and checks. Expected values and checks are test concepts and happen in test.


Test closure consists of compiling tests results to prepare test report, releasing and cleaning everything that is required and pushing results to the job.

Jobs remaing accesible by project team in order to access reports and analyze results.