WPBS Installer

WPBS installer is a simple windows installer that will help to ensure that all the pre-requisites for executing automated tests in Behat and selenium are present. It also provides a sample project structure and test script to get you started.

Inspired by installers such as WAMP, the aim is to create software that will install and configure a fully working Behat and Selenium test automation environment on a Windows PC.

We expect over time the tools will grow and provide other functions to help manage, execute and report on your test execution.

What does it install?

Standalone PHP official release. (Only installed if PHP is not present).

Composer

1.2.4

Official composer release. (Only installed if composer is not present)>

Behat

2.4.x

Stable release

Mink

1.5.x

Behat extension (Stable).

Selenium Chrome Driver

Latest

Selenium driver for running tests in chrome.

Mink Goutte Driver

Latest Compatible

Goutte headless browser driver for Mink.

Mink Extensions

Latest Compatible

Mink command extensions.

Mink Selenium 2 Driver

Latest Compatible

Selenium driver for mink.

Is there anything else I should install?

Although not necessary because you can use the windows command prompt, installing a better command line tool with support for ANSI colours will make the running of tests and the output much more readable. The screenshots below show the difference:

I choose to use ConEmu (https://conemu.github.io/) because it is free and feature rich. Simply download and run the installer.

Running your first test

Cloning the template

To run your first test, copy the “_template-2.x” folder and rename it “sampletest”. Your folder structure should not look similar to this:

When you first clone your template folder, you need to install the Behat components, to do this type:

> Composer install

Composer will now install all the components required. You may see a warning but you should not see any errors.

Running the test

After we have defined our first test, we should now be able to run it. To define our first test, edit the file <project folder>\features\test.feature in a text editor and replace the content with the following:

Feature: Drupal.org search
In order to find modules on Drupal.org
As a Drupal user
I need to be able to use Drupal.org search
Scenario: Searching for "behat"
Given I go to "https://www.drupal.org/"
And I press "edit-submit"
When I fill in "edit-search-block-form--2" with "behat"
And I press "edit-submit"
Then I should see "Behat Drupal Extension"

We can now run the command buy running our behat.bat batch file in our project folder (<install folder>\testsScripts\behat.bat). If everything is configured correctly, the results should look something like the following:

Note: At the point of publishing, the test passes without issue but this may change (and the test fail) if the Drupal home/search functions change.

Running the test in Chrome

Firstly, you will need to install Google Chrome on the computer.

You can now start selenium (Chrome) by double clicking on chrome.bat (<install folder>\selenium\chrome.bat)) in explorer (you could also create a shortcut to it on your desktop). It only needs to be run once and then can be kept running through multiple test executions.

We now just need to tell Behat that the test scenario requires JavaScript. To do this we add the tag “@JavaScript” above the “Scenario:” line in the feature file (<install folder>\testsScripts\sampletest\features\test.feature):

Feature: Drupal.org search
In order to find modules on Drupal.org
As a Drupal user
I need to be able to use Drupal.org search
@JavaScript
Scenario: Searching for "behat"
Given I go to "https://www.drupal.org/"
And I press "edit-submit"
When I fill in "edit-search-block-form--2" with "behat"
And I press "edit-submit"
Then I should see "Behat Drupal Extension"

When we execute behat.bat again, it will open a copy of Chrome, execute the test and should report the same test results as in the previous test.

If that is successful, you have set up your first project for Behat and executed a test in a headless browser and Google Chrome.