Gwen Meta = Gherkin Automation Bindings

Declarative Features

From a business perspective, feature specifications should be declarative. What does does this mean? It means that features should describe the intended behavior of a feature independently of any implementation details (especially automation details). They should clearly express behavior in business terms and may also include some examples.

Imperative Features

Imperative specifications on the other hand consist of a step by step list of statements that describe a behavior in great detail and that can be followed robotically to emulate a process. You would ideally never write features in this manner when describing business specifications.

Meta Features

Declarative to Imperative Automation Bindings

Gwen is a Gherkin interpreter that was designed with behavior driven automation (BDA) in mind. It enables teams to bind declarative business features “as is” to imperative meta features to drive automation. Meta features are used to describe (or break down) declarative features into step definitions and bindings that can be used to drive automated testing and robotic processing. In Gwen, they are also defined in the Gherkin language and bind to declarative features at run time to make them executable.

gwen-binding-example

Reuse can be maximised by sharing common meta across features

Test-First

In the test-first approach, the team would first write feature specifications and then use those to drive development and automated testing at the same time. Executing features with Gwen prior to development would result in failures (as expected). As the feature is being implemented in code, the developers and/or testers can write meta features to define all the necessary step definitions and bindings. Loading the meta and executing features with Gwen during development would then enable the test execution to run. By progressively building up the required meta during development, the feature tests will eventually pass when implementation is complete.

Test-Later

In the test-later approach, Gherkin features can be used to drive user acceptance testing after the development is complete. New acceptance features can be written if desired at this stage. Any meta that was created during development (if the test-first approach was practiced) could be reused here. Otherwise all the necessary step definitions and bindings will need to be defined in meta during this phase. The meta can then be loaded into Gwen to make the acceptance features perform the test execution.

Robotics

Robotic process automation (RPA) involves the repeatable execution of tasks that would otherwise need to be performed by humans. A repetitive or monotonous process performed online by a person, for example, can be automated with Gwen by writing Gherkin specifications that describe that behavior. These too can be declarative with imperative bindings in meta, but can also be imperative only.

Gwen Engines

We have open sourced a web engine (Selenium wrapper) for Gwen that you can use to perform any sort of web UI automation using the approaches described above. But Gwen is not limited to just web automation. Many types of Gwen engines can be built and shared. We are currently developing a REST engine for API testing and automation.

More on Gwen

Advertisements

Published by

Branko Juric

Imperative by day and functional by night. Co author of the Gwen automation platform.

3 thoughts on “Gwen Meta = Gherkin Automation Bindings”

  1. Hi Branko,

    Thanks for the tip, appreciate it. Your article definitely helped me to understand the core concepts.
    I’m most excited about the details your article touch based! I assume it doesn’t come out of the box, it sounds like you are saying we’d need to write in the handlers ourselves Blue Prism training cost Michigan.
    Is there any other articles you would recommend to understand this better?
    I am trying to read CSV file to a collection which has one of the field as date. This is being interpreted as a wrong date. How to switch off this interpretation and get the date as is i.e. as Text.
    When Trying to read a CSV file to collection?

    By the way do you have any YouTube videos, would love to watch it. I would like to connect you on LinkedIn, great to have experts like you in my connection (In case, if you don’t have any issues).
    Please keep providing such valuable information.

    Many Thanks,
    Kevin

    Like

  2. Hello Branko,

    This is the most brilliant article ever! Please put the permalink part in the post. If someone didn’t comment on it I’d have no idea!
    I’m automating a browser-based application With BP where I’ve came across with a problem I have not been able to solve. There is div containing a combo box on rpa training cost Philadelphia . When a combo box value is chosen, it empties the values in another container div where a button appears which the robot is supposed to click next (see image capture2).
    However, when the robot chooses the combo box value, the container of the other div does not change like it is supposed to happen and the run fails as the robot cannot find the button (see image capture1). I have tried a lot of different alternatives for this; using combo box, page refresh, regions, global mouse clicks. Nothing works. Any ideas for a workaround for this?
    Problem with combo box?
    Appreciate your effort for making such useful blogs and helping the community.

    Ciao,
    Kevin

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s