Gwen is a Gherkin interpreter that turns Given-When-Then steps into automation instructions and executes them for you so you don't have to do all the programming work. It has an abstracted evaluation engine allowing any type of automation capability to be built and mixed in. Meta specifications (also expressed in Gherkin) are used to capture automation bindings and allow you to compose step definitions in a declarative manner.
Gwen = [G]iven [W]hen Th[en]
We wanted to make automation with executable specifications simpler for everyone and easier for non developers with little to no coding experience. So we developed an interpreter to read plain text Gherkin features as input and produce executing automation instructions as output through automation engines that can be developed and shared.
What engines are available?
- gwen-web - A web automation engine for Gwen that you can download and use to quickly automate web application testing and robotic online processing without having to manage native browser drivers, develop page objects or write Selenium code.
Core Runtime Requirement
- Java SE 8 Runtime Environment
- Gherkin grammar
- Runtime settings
- Evaluation engines
- Evaluation reports
- Command line interface
- REPL console
- Serial execution
- Parallel execution (with configurable ramp up interval)
- Dry run execution and validation
- Data driven execution
- Meta features
- Composable step definitions
- Runtime settings
- User settings
- String interpolation
- SQL data bindings
- Implicit attributes
- Template matching
- Hard, soft, and sustained Assertion modes
Copyright 2014-2019 Branko Juric, Brady Wood and Gwen contributors.
This software is open sourced under the Apache License, Version 2.0.
See also: LICENSE
This project has dependencies on other open source projects. All distributed third party dependencies and their licenses are listed in the LICENSE-THIRDPARTY file.
Open sourced 14 May 2014 09:30 pm AEST
New capabilities, improvements, and fixes and documentation are all valid candidates for contribution. Submissions can be made using pull requests. Each submission is reviewed and verified by the project maintainers before being integrated and released to the community. We ask that all code submissions include unit tests.
By submitting contributions, you agree to release your work under the license that covers this software.
How to Contribute
- Fork this repository
- Create a branch on your forked repository
- Commit your changes to your branch
- Push your branch to your forked repository
- Create a pull request from your branch to here
We thank the following contributors and active users for helping to make Gwen better. You are all awesome!
The following contributors submitted pull requests that have been merged:
The following users raised issues or requests that have been addressed:
- Chris Leong | Martino Turturiello | bliddicoat | Andrew Gillett | anshu781126 | ketu4u2010 | Rahul9844 | rkevin99