gwen-interpreter / Gwen Web
Programming Languages
Projects that are alternatives of or similar to Gwen Web
Gwen Web Automation
A dynamic interpreter that enables teams to quickly automate front end web tests and repetitive online processes with Gherkin feature specifications. A web DSL interacts with Selenium under the covers for you so you don't have to do any of that programming or technical development work. All the standard Selenium locators are supported and you can additionally inject JavaScript in places where dynamically finding elements or running functions on web pages may be necessary.
Home | Get Started | DSL | Settings | Blog | Wiki | FAQ | License | Support | Twitter
Current Status
What's New?
- Masked Settings to hide private and sensitive property values from view and prevent them from being logged and reported.
- Simplified data table iteration with @ForEach
- Configurable maximum number of threads for parallel execution
Why Gwen?
So you can drive web based tests and online processes with declarative Gherkin feature specs that describe behavior ..
Feature: Todo
Scenario: Create todo list
Given a new todo list
When the following items are added
| Get the milk |
| Walk the dog |
Then the list will contain 2 items
.. by defining locators and step definitions in separate and imperative Gherkin meta specs that describe automation ..
Feature: Todo Meta (automation glue)
@StepDef
Scenario: a new todo list
When I navigate to "http://todomvc.com/examples/react"
Then the todo field can be located by class "new-todo"
And count can be located by css ".todo-count strong"
@StepDef
@ForEach
@DataTable(horizontal="item")
Scenario: the following items are added
When I enter data[item] in the todo field
Then count should be record.number
@StepDef
Scenario: the list will contain <expected> items
Then count should be "$<expected>"
.. without having to develop any framework, page objects or Selenium code.
How it Works
Meta features are the automation glue in Gwen and they are defined in Gherkin too. They define locators and step definitions that are matched against steps in features to locate elements and perform browser operations using the Gwen web DSL. @StepDef
annotated scenarios in meta are loaded into memory when Gwen is launched and bound to steps in features by name to achieve execution at runtime. So your features remain clean and free of automation clutter.
Key Features
- Behavour driven automation
- Declarative features describe behavior
- Imperative Meta features describe automation
- Gwen binds the two at runtime to drive automation
- A prescribed Web DSL performs all browser interactions for you
- Automation across browsers and platforms is consistent (Chrome, Firefox, Safari, Edge and IE)
- An interactive REPL console provides a step by step execution environment
Get Started
System Requirements
- Linux, Mac or Windows OS
- Chrome, Firefox, Safari, Edge or IE web browser
- Java JRE or JDK 8 (version 1.8) or higher
- You can verify that you have Java installed by opening a command prompt and typing
java -version
. A version will be displayed if you have Java installed. - Install Java if you do not see a version displayed
- You can verify that you have Java installed by opening a command prompt and typing
Install Gwen and Go!
Ensure that your system meets the above requirements and then perform the following:
- Download and extract gwen-workspace.zip into to a folder on your computer
- Start automating
Learn More
- Features can execute in batch mode or interactively
- Features and scenarios can execute sequentially or in parallel
- Runtime settings
- Execution can be data driven (using csv data feeds)
- Remote web driver support
- Screenshot capture and slideshow playback
- Interchangeable Selenium implementation
- Locator Chaining
- Headless Browser Execution
- Gwen Workspaces for easy installation
- Template matching
- Drag and Drop
- Locator level timeouts
- Implicit JavaScript Locators
- Remote BrowserStack execution
- Synchronized StepDef execution
- Indexed element locators
- Hard, soft, and sustained assertion modes
- Visual Testing with AppliTools
- Mobile Emulation
- Integrated WebDriverManager manages all native webdrivers for you
- Supports full Gherkin syntax including example mapping
- State levels and parallel execution for scenarios in additon to features
- Declarative feature mode to force all imperative steps to meta and promote cleaner features.
- Associative meta
- Behavior rules to help enforce good Gherkin style
- Dialects for Gherkin's spoken languages
User Network and Support
Join our user network at Gwenify to get access to the community and company level chat and support for your workplace.
License
Copyright 2014-2020 Brady Wood, Branko Juric and Gwen contributors.
This software is open sourced under the Apache License, Version 2.0.
See also: LICENSE.
This project has dependencies on Gwen and other open source projects. All distributed third party dependencies and their licenses are listed in the LICENSE-THIRDPARTY file.
Open sourced 28 June 2014 03:27 pm AEST
Contributions
New capabilities, improvements, fixes, and documentation are all welcomed candidates for contribution. 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 or sample test features providing relevant coverage.
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
Maintainers
Contributors
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:
- Rebecca Abriam | George Tsihitas | Zoltan Penzeli | inkbleed | Pradeep Thawani | anshu781126 | ketu4u2010 | Rahul9844 | rkevin99 | Sergio Freire | dfriquet