Howitzer is a Ruby-based framework for acceptance testing.
It was originally developed for testing web applications, but you can also use it for API testing and web service testing.
The framework was built with modern patterns, techniques, and tools in automated testing. For details, please see Test Framework Design.
- Independent of test web application, its technologies and lanquage.
- Fast installation of the complete testing infrastructure (takes less than 5 minutes).
- Flexible configuration of the test framework.
- Possibility to choose between Cucumber or RSpec BDD tool.
- Integration with SauceLabs, Testingbot, BrowserStack and MailGun web services.
- Easy tests support.
- Ability to execute tests against to both browserless driver and actual browsers with no changes in your tests.
- Searches for broken links.
Refer to the GETTING STARTED document to start working with Howitzer.
You can also find the Rdoc documentation on Rubygems.
- Howitzer Example – an example of Howitzer based project for demo web application.
- Howitzer Stat – is the extension to Howitzer product. It is used for automated tests coverage visualization of web pages.
- Supported OS: Mac OS X, Linux, Windows
- Ruby 1.9.3+
- DevKit (For Windows only)
- QT (For webkit driver only)
To install, type
gem install howitzer
Browse to a desired directory where a new project will be created.
To deploy the framework with Cucumber, type:
howitzer new <PROJECT NAME> --cucumber
The following folders and files will be generated:
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 .rb boot.rb Gemfile Rakefile .gitignore
howitzer new <PROJECT NAME> --rspec
With both Cucumber and Rspec:
howitzer new <PROJECT NAME> --cucumber --rspec
Learn and specify correct default settings in the
config/default.yml file. For more details, please refer to the original sexy_settings gem.
Test Implementation Workflow
- Prepare features and scenarios
- Implement appropriate pages in the
pagesfolder. For details, refer to Page Object Pattern.
- Implement emails in
- Implement scenarios:
- Debug feature against to desired driver.
- Enjoy it!
You can get a list of all available tasks by typing the following command:
Before attempting to upgrade an existing project, you should be sure you have a good reason to upgrade. You need to balance several factors: the need for new features, the increasing difficulty of finding support for old code, and your available time and skills, to name a few.
From version v1.1.0 howitzer provides howitzer update command. After updating the Howitzer version in the Gemfile, run this rake task. This will help you with the creation of new files and changes of old files in an interactive session.
$ howitzer update * Config files generation ... Identical 'config/custom.yml' file Added 'config/default.yml' file * Root files generation ... Added '.gitignore' file Conflict with 'Gemfile' file Overwrite 'Gemfile' file? [Yn]:Y Forced 'Gemfile' file Identical 'Rakefile' file Conflict with 'boot.rb' file Overwrite 'boot.rb' file? [Yn]:n Skipped 'boot.rb' file ...
Don't forget to review the difference, to see if there were any unexpected changes and merge them. It is easy if your project is under revision control systems like Git.
Please see CONTRIBUTING.md.
howitzer was originally designed by Roman Parashchenko and is now maintained by StrongQA team. You can find list of contributors here open source community.
howitzer is Copyright © 2012-2015 Roman Parashchenko and StrongQA. It is free software, and may be redistributed under the terms specified in the LICENSE file.
howitzer is maintained and funded by StrongQA, Ltd. The names and logos for StrongQA are trademarks of StrongQA, Ltd.