Robot Framework mini-framework.
Project description
Zoomba
Introduction
Zoomba is a collection of libraries spanning GUI, REST API, SOAP API, Mobile, and Windows Desktop automation using Robot Framework. These libraries are extensions of existing libraries SeleniumLibrary, Requests, SudsLibrary, and AppiumLibrary.
Zoomba adds a significant amount of data validation support for REST and SOAP APIs, extends functionality for typical Web GUI automation, and extends AppiumLibrary functionality to support Windows desktop automation.
As a team beginning the journey of automation with Robot Framework - we found that there was some time spent ramping up our libraries and Zoomba aims to make that process easier for new projects.
See the Keyword Documentation for the API, SOAP, GUI, Mobile, or Desktop library for more specific information about the functionality.
Example tests can be found in the samples directory.
Some Features of the Library
GUI Library:
When working with web pages of varying load times you probably find yourself running a lot of calls like so:
Wait Until Page Contains Element locator
Click Element locator
For ease of use we have combined a lot of these into simple one line keywords:
Wait For And Click Element locator
Wait For And Click Text text
Wait For And Select From List list_locator target_locator
Another keyword that is particularly useful is for when you are waiting for javascript to complete on a page before proceeding:
Wait For And Click Element locator that leads to a new page with javascript
Wait Until Javascript Is Complete
Wait For And Click Element locator
API Library:
This library wraps the requests library so we have created a set of keywords to easily allow users to make requests in a single keyword:
Call Get Request ${headers_dictionary} endpoint query_string
Call Post Request ${headers_dictionary} endpoint query_string ${data_payload}
After receiving your data we made it incredibly easy to validate it. Validate Response Contains Expected Response takes your received request and compares it to your expected data. If there are any errors found it will report line by line what they are.
Validate Response Contains Expected Response ${json_actual_response} ${json_expected_response}
If there is any mismatched data it will look something like this:
Key(s) Did Not Match:
------------------
Key: pear
Expected: fish
Actual: bird
------------------
Full List Breakdown:
Expected: [{'apple': 'cat', 'banana': 'dog', 'pear': 'fish'}, {'apple': 'cat', 'banana': 'mice', 'pear': 'bird'}, {'apple': 'dog', 'banana': 'mice', 'pear': 'cat'}]
Actual: [{'apple': 'cat', 'banana': 'dog', 'pear': 'bird'}]
Please see differing value(s)
If you wanted to ignore a key such as the 'update_date' you would simply set the 'ignored_keys' variable to that key or a list of keys:
Validate Response Contains Expected Response ${json_actual_response} ${json_expected_response} ignored_keys=update_date
Validate Response Contains Expected Response ${json_actual_response} ${json_expected_response} ignored_keys=${list_of_keys}
Mobile Library:
Extending the AppiumLibrary we again add some quality of life 'Wait For And' type keywords:
Wait For And Click Element locator
Wait For And Click Text text
Wait Until Element Contains locator text
There are of course additional features that have yet to be implemented in AppiumLibrary:
Drag and Drop source_locator target_locator
Drag And Drop By Offset locator x_offset y_offset
Scroll Down To Text text
Scroll Up To Text text
Desktop Library:
Also extends AppiumLibrary to tailor it Windows desktop automation. This includes enhancements to base keywords such as Open Application or Click Element to perform better for windows. Other notable additions include:
Easily switching to new windows or the desktop session:
Switch Application Desktop
Switch Application By Name remote_url new_window_name
A variety of keywords for controlling the mouse:
Mouse Over Element locator
Mouse Over and Click Element locator
Mouse over and Context Click Element locator
Mouse Over By Offset x_offset y_offset
Keywords for dragging and dropping:
Drag and Drop source_locator target_locator
Drag And Drop By Offset locator x_offset y_offset
The ability to send key commands to the application:
Send Keys \\ue00 p \\ue00
Send Keys To Element locator a b c
Selecting an element from a combobox:
Select Element From ComboBox combobox_locator element_locator
Getting Started
The Zoomba library is easily installed using the setup.py
file in the home directory.
Simply run the following command to install Zoomba and it's dependencies:
pip install robotframework-zoomba
If you decide to pull the repo locally to make contributions or just want to play around with the code you can install Zoomba by running the following from the root directory:
pip install .
To access the keywords in the library simply add the following to your robot file settings (depending on what you need):
*** Settings ***
Library Zoomba.APILibrary
Library Zoomba.GUILibrary
Library Zoomba.SOAPLibrary
Library Zoomba.MobileLibrary
Library Zoomba.DesktopLibrary
Additional Setup Information
If you plan to run Mobile or Windows desktop automation you will need to have a running appium server. To do so first have Node installed and then run the following:
npm install -g appium
appium
Alternatively Appium Desktop can be used.
For Windows automation we suggest installing and using the WinAppDriver without Appium as it seems to be much more stable.
Examples
Example tests can be found in the samples directory.
The test directory may also contain tests but be aware that these are used for testing releases and may not be as straight forward to use as the ones in the samples directory.
Contributing
To make contributions please refer to the CONTRIBUTING guidelines.
Additionally if you run the following command new documentation will be generated on each commit :
git config core.hooksPath .githooks
Support
General Robot Framework questions should be directed to the community forum.
Contact the team at robosquad@accruent.com
or create an issue with specific requests or questions regarding the Zoomba libraries!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file robotframework-zoomba-2.4.4.tar.gz
.
File metadata
- Download URL: robotframework-zoomba-2.4.4.tar.gz
- Upload date:
- Size: 41.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46ddf373138ed687c090f0aac11ec4b2e95c1dea32f8ea4b933302e1c27c2ff2 |
|
MD5 | dec7da7680d5d071038ef6373de517ab |
|
BLAKE2b-256 | 90f9f03956ecb28b82d61d24cb5c3616f994f0cfd58fecba5ae3ee5ae03f9342 |
File details
Details for the file robotframework_zoomba-2.4.4-py3-none-any.whl
.
File metadata
- Download URL: robotframework_zoomba-2.4.4-py3-none-any.whl
- Upload date:
- Size: 40.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b8a1f77e8777de9567a6b353f2424378b8bf184f3235c234e6ca13ed4c0bcd9 |
|
MD5 | 515819ff82f4138169e4d8f74afe5c61 |
|
BLAKE2b-256 | cffaae8b78b801f483871b75dc03769621cc89134acf2a16e2fe8e726cba2929 |