Howitzer

Build Status Dependency Status

Howitzer is Ruby based framework for acceptance testing.

Initially it was developed for testing of web applications, but it is applicable to testing of web services or some API as well. The framework uses modern patterns, techniques and tools in automated testing area. For details, please see Test Framework Design.

Key benefits

  • Independent of test web application, its technologies and lanquage.
  • Deploy all test infrastructure for 5 minutes.
  • Flexible test framework configuration.
  • Ability to choose desired BDD tool (Cucumber or RSpec)
  • Itegration with SauceLabs, Testingbot and Mailgun web services.
  • Easy to support tests in actual state.
  • Ability to execute tests against to both browserless driver and actual browsers with no changes in your tests.
  • Ability to check all links are valid

Documentation

See GETTING_STARTED how to work with howitzer.

Also you can find Rdoc documentation on Rubygems.

Requirements

Ruby 1.9.3+

Setup

To install, type

sudo gem install howitzer

Usage

To deploy the framework, type:

mkdir test_automation
cd test_automation

Then for Cucumber:

howitzer install --cucumber

For Rspec:

howitzer install --rspec

Or for both the ones:

howitzer install --cucumber --rspec

This command will generate next folders and files:

config/
  cucumber.yml
  default.yml
  custom.yml
tasks/
  common.rake
  cucumber.rake
  rspec.rake
emails/
  example_email.rb
features/
  support/env.rb
  step_definitions/common_steps.rb
  example.feature
pages/
  example_page.rb
  example_menu.rb
boot.rb
Gemfile
Rakefile
.gitignore

Configuration

Learn and specify correct default settings in config/default.yml file. For details, please see original sexy_settings gem.

Test implementation workflow

  • Prepare some feature with scenarios in features/some.feature file.
  • Implement step definitions in features/step_definitions/common_steps.rb file.
  • Implement appropriate pages in pages folder. For details, see Page Object Pattern.
  • Debug feature.
  • Enjoy it!

Rake tasks

You can list all available tasks with next command

rake -T

More information

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request