Functional Automation Framework Robot Framework Functional Automation Framework
Why automation Who wouldn’t want to go to the promised land. But, this is what it can feel like when you start investigating how to start
Which tool should I use Many many more TestComplete Selenium UFT Java TestStudio Ruby EggPlant JavaScript Squish Python Ranorex C# Test Studio Node.js ReadyAPI Many many more
Requirements Budget Development background What’s Missing? Automation Theory
When do I automate? I can’t automate until there is working code I can’t automate until there is stable code
What is Robot Framework “Generic test automation framework for acceptance testing and ATDD” Technology libraries http://robotframework.org/ Keyword-driven Open-source Want to see it?
RF – Strengths/Weaknesses Short ramp-up period No built in distributed execution (supports build- your-own) Supported technologies Built in Reporting Quirky keyword syntax for logical operations Extensible Limited Test Run history Built-in Gherkin support No OOTB debugger CI support Obsession with “keywords” Cross Platform
RF – Supported technologies Operating System FTP Web (Selenium, watir) Appium API (Python requests lib) AutoIT SSH Email (IMAP) Android More iOS Database
RF – Architecture Project Test Suite Settings Test Cases Keywords Function Libraries Keywords/Functions
RF – Keyword Syntax
RF – Data Driven Tests
RF – Gherkin Syntax
RF – Execution robot /path/to/root/level/of/test/suite robot --variablefile /explicit/path/to/variables/file /path/to/root/level/of/test/suite robot --include TAGNAME --variablefile /explicit/path/to/variables/file /path/to/root/level/of/test/suite robot --exclude pq –variablefile /Users/kfitzger/Documents/GIT/QA/Project/Variable_Files/CustomerName.py /Users/kfitzger/Documents/SourceTree/QA_Automation/Customer/
RF – Results XML
RF – Results XML
RF –Maintenance Practice good coding conventions Object Library Don’t Repeat Yourself Function Libraries Abstract Data conditions to variables Object Library
RF – Object Library
RF – Case Studies – in the last week One test suite that initiates a process via a web UI (performing checks against web interface concurrently) Validates via API requests that all data was created successfully against two systems. Triggers immediate processing (normally scheduled every four hours) of data via API Triggers import of data via API Returns to Web UI to validate imported data Validates email notification directly via IMAP (no GUI) Backward Migration of tests 170 RF Test Cases were migrated to work with a version a software that was 18 months old Entire process took 2 days
Helpful Links RobotFramework Documentation Github Repo: QA3 Invite http://robotframework.org/ Github Repo: https://github.com/kentfitz/rfstub Includes a small sample project, documentation for installation and execution, and a few xslt samples. QA3 Invite Slack team for QA (or those interested in QA) professionals in the Ann Arbor Area. If you’d like an invite, send an email to the address below. Don’t feel like you have to be local to join qa3invite@gmail.com