Configuration based dynamic DSL framework for UI automation.
This framework takes your created UI configurations and translates that into a usable DSL framework composite representing your website. It encapsulates many UI automation problems, supports integration to many different drivers, and has built in Cucumber step definitions to get your tests up and running quick. With this, you can create scalable automation tests quickly.
NOTE: This is a alpha library
Portions of the project are still incomplete as well as testing. It is possible to use cucumber steps, YAML/HASH configuration adapters, selenium/appium drivers
Since this is just a personal project committing directly to master, not doing issues. If have more people using or contributing will formalize to whichever works for everyone
Steps to Complete Before Beta
May add more steps in the future as I add more to the project
- XML driver and any additional test drivers (ie selenium)
- Page object configuration style classes for blueprints
- Complete integration testing/fixes with different drivers, inputs, tests
- Majority Completion of Unit Tests
- Supports Appium, Selenium, Nokogiri as drivers
- Encapsulates automation logic
- Translates UI configuration to descriptive/usable language
- Cucumber step definitions to get your tests up and running fast
- DRY UI test development
gem install automation_object
Cucumber Step Definition Docs
There are a number of Cucumber step definitions available within this gem to help you UI test.
- Screen Step Definitions
- Modal Step Definitions
- Element Array Step Definitions
- Element Hash Step Definitions
- Element Step Definitions
Fully working example
Test Integration contains examples for automation using AutomationObject. Fully contained project with a Rails app so that testing AutomationBot can be done without running into issues like bot protection.
I included the needed drivers so it is mostly free of dependencies. Also created a mac_osx.sh script contained that helps install any base programs you may need. If you want to do it manually can follow the script and download those components or use whatever you have.