Aglet showcase
Aglet is Cucumber-based test automation framework [kind of all-in-one]
How to start?
Grab a copy
git clone https://github.com/artemdwo/aglet.git
What's inside?
Configuration
../config/config.yml
- Contains range of default timeouts
and environment configurations
where site_root
(aka base_url
) is defined.
Features and Step Definitions
../features/*.feature
- each *.feature
file contains a range of Scenarios
(aka Test Cases
) describing expected behaviour and assertions in Behavioural format (supporting BDD).
../features/step_definitions/*_steps.rb
- each *_steps.rb
file contains background scripting (coding) of the Steps
that comprise Scenarios
, which transform Behaviour
into Action
. That's the place where magic happens.
Page Object Models and content
../lib/model/domain/*_details.rb
- content (test data) container classes
../lib/model/page/*.rb
- page object models (elements and methods)
../lib/model/section/*.rb
- page object models (elements and methods) of repetitive blocks to prevent duplication across pages
../lib/model/aglet.rb
- project object that combines everything together
How to run?
Ensure you have following installed:
- Ruby 2.2.0+ (use
rvm
) - Bundler latest (
gem install bundler
) - Selenium WebDriver latest (http://docs.seleniumhq.org/download/)
- Chromedriver latest - to run Google Chrome (
$ brew install chromedriver
) - Geckodriver latest - to run Firefox (
$ brew install geckodriver
)
List of available Rake Tasks
Check what's already available
# rake -T
Run particular Rake task
Run RAKE_TASK
# rake cuke:[RAKE_TASK]
RAKE_TASK available from:
$ rake -T
- config/cucumber.yml
Example: @smoke suite
Run smoke
predefined suite
# rake cuke:smoke
Use 'specific' Rake task to run tests by @TAG
Run suite that will be filtered by @tag
# rake cuke:specific TAGS=@tag
Additional parameters
To run tests under specific browser
# ... BROWSER=browser_alias
browser_alias:
- selenium_chrome for Google Chrome
- selenium_firefox for Firefoz
To run tests against specific environment
# ... CONFIG=environment_alias
See config/config.yml, for example default_env, environment_name
Reporting
Test reports in JSON format:
# ... JSON_OUTPUT=cucumber.json
Test reports in JUNIT format:
# ... JUNIT_OUTPUT=results/