RobotFramework-Zoomba
===========
[![PyPI version](https://badge.fury.io/py/robotframework-zoomba.svg)](https://badge.fury.io/py/robotframework-zoomba)
[![Downloads](https://static.pepy.tech/badge/robotframework-zoomba)](https://pepy.tech/project/robotframework-zoomba)
[![Build Status](https://github.com/Accruent/robotframework-zoomba/workflows/tests/badge.svg?branch=master)](https://github.com/Accruent/robotframework-zoomba/actions?query=workflow%3Atests)
[![Coverage Status](https://coveralls.io/repos/github/Accruent/robotframework-zoomba/badge.svg?branch=master)](https://coveralls.io/github/Accruent/robotframework-zoomba?branch=master)
[![CodeFactor](https://www.codefactor.io/repository/github/accruent/robotframework-zoomba/badge)](https://www.codefactor.io/repository/github/accruent/robotframework-zoomba)
What is RobotFramework-Zoomba?
--------------
Robotframework-Zoomba is a collection of libraries spanning GUI, REST API, and SOAP API automation using [Robot Framework](https://github.com/robotframework/robotframework).
These libraries are extensions of existing libraries [SeleniumLibrary](https://github.com/robotframework/SeleniumLibrary), [Requests](https://github.com/bulkan/robotframework-requests),
and [SudsLibrary](https://github.com/aljcalandra/robotframework-sudslibrary).
### Looking for our extension of [AppiumLibrary](https://github.com/serhatbolsu/robotframework-appiumlibrary) (DesktopLibrary and MobileLibrary)? Check out our new repo [RobotFramework-ApplicationLibrary](https://github.com/Accruent/robotframework-applicationlibrary)!
Zoomba adds a significant amount of data validation support for REST and SOAP API and extends functionality for typical Web GUI 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 Robotframework-Zoomba aims to make that process easier for new projects.
See the **Keyword Documentation** for the [API](https://accruent.github.io/robotframework-zoomba/APILibraryDocumentation.html), [SOAP](https://accruent.github.io/robotframework-zoomba/SOAPLibraryDocumentation.html),
or [GUI](https://accruent.github.io/robotframework-zoomba/GUILibraryDocumentation.html) library for more specific information about the functionality.
Example tests can be found in the [samples directory](https://github.com/Accruent/robotframework-zoomba/tree/master/samples).
Some Features of the Library
--------------
#### [GUI Library](https://accruent.github.io/robotframework-zoomba/GUILibraryDocumentation.html):
When working with web pages of varying load times you probably find yourself running a lot of calls like so:
```robotframework
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:
```robotframework
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:
```robotframework
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](https://accruent.github.io/robotframework-zoomba/APILibraryDocumentation.html):
This library wraps the [requests library](https://github.com/bulkan/robotframework-requests) so we have created a set of keywords to easily allow users to make requests in a single keyword:
```robotframework
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](https://accruent.github.io/robotframework-zoomba/APILibraryDocumentation.html#Validate%20Response%20Contains%20Expected%20Response) 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.
```robotframework
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:
```robotframework
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}
```
Getting Started
----------------
The Zoomba library is easily installed using the [`setup.py`](https://github.com/Accruent/robotframework-zoomba/blob/master/setup.py) file in the home directory.
Simply run the following command to install Zoomba and it's dependencies:
```python
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*:
```python
pip install .
```
or if you intend to run unit tests:
```python
pip install .[testing]
```
To access the keywords in the library simply add the following to your robot file settings (depending on what you need):
```python
*** Settings ***
Library Zoomba.APILibrary
Library Zoomba.GUILibrary
Library Zoomba.SOAPLibrary
```
Examples
------------
Example tests can be found in the [samples directory](https://github.com/Accruent/robotframework-zoomba/tree/master/samples).
The [test directory](https://github.com/Accruent/robotframework-zoomba/tree/master/test) 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](https://github.com/Accruent/robotframework-zoomba/tree/master/samples).
Contributing
-----------------
To make contributions please refer to the [CONTRIBUTING](https://github.com/Accruent/robotframework-zoomba/blob/master/CONTRIBUTING.rst) guidelines.
See the [.githooks](https://github.com/Accruent/robotframework-zoomba/tree/master/.githooks) directory for scripts to help in development.
Support
---------------
General Robot Framework questions should be directed to the [community forum](https://forum.robotframework.org/).
For questions and issues specific to Zoomba please create an [issue](https://github.com/Accruent/robotframework-zoomba/issues) here on Github.
Raw data
{
"_id": null,
"home_page": "https://github.com/Accruent/zoomba",
"name": "robotframework-zoomba",
"maintainer": "Alex Calandra, Michael Hintz, Keith Smoland, Matthew Giardina, Brandon Wolfe, Neil Howell, Tommy Hoang",
"docs_url": null,
"requires_python": null,
"maintainer_email": "robosquad@accruent.com",
"keywords": "Robot Framework robot-framework selenium requests appium soap winappdriver appium robotframeworkdesktop windows zoomba python robotframework-library appium-windows appiumlibrary api-rest api soap-api appium-mobile mobile",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/c0/bc/da7236f3ef7886f9cb9853bc163a583c3012cd7e1818b7133034b7e25ccd/robotframework_zoomba-4.1.4.tar.gz",
"platform": "any",
"description": "RobotFramework-Zoomba\n===========\n[![PyPI version](https://badge.fury.io/py/robotframework-zoomba.svg)](https://badge.fury.io/py/robotframework-zoomba)\n[![Downloads](https://static.pepy.tech/badge/robotframework-zoomba)](https://pepy.tech/project/robotframework-zoomba)\n[![Build Status](https://github.com/Accruent/robotframework-zoomba/workflows/tests/badge.svg?branch=master)](https://github.com/Accruent/robotframework-zoomba/actions?query=workflow%3Atests)\n[![Coverage Status](https://coveralls.io/repos/github/Accruent/robotframework-zoomba/badge.svg?branch=master)](https://coveralls.io/github/Accruent/robotframework-zoomba?branch=master)\n[![CodeFactor](https://www.codefactor.io/repository/github/accruent/robotframework-zoomba/badge)](https://www.codefactor.io/repository/github/accruent/robotframework-zoomba)\n\nWhat is RobotFramework-Zoomba?\n--------------\n\nRobotframework-Zoomba is a collection of libraries spanning GUI, REST API, and SOAP API automation using [Robot Framework](https://github.com/robotframework/robotframework).\nThese libraries are extensions of existing libraries [SeleniumLibrary](https://github.com/robotframework/SeleniumLibrary), [Requests](https://github.com/bulkan/robotframework-requests), \nand [SudsLibrary](https://github.com/aljcalandra/robotframework-sudslibrary).\n\n### Looking for our extension of [AppiumLibrary](https://github.com/serhatbolsu/robotframework-appiumlibrary) (DesktopLibrary and MobileLibrary)? Check out our new repo [RobotFramework-ApplicationLibrary](https://github.com/Accruent/robotframework-applicationlibrary)!\n\nZoomba adds a significant amount of data validation support for REST and SOAP API and extends functionality for typical Web GUI automation.\n\nAs a team beginning the journey of automation with Robot Framework - we found that there was some time spent ramping up our libraries and Robotframework-Zoomba aims to make that process easier for new projects.\n\nSee the **Keyword Documentation** for the [API](https://accruent.github.io/robotframework-zoomba/APILibraryDocumentation.html), [SOAP](https://accruent.github.io/robotframework-zoomba/SOAPLibraryDocumentation.html),\nor [GUI](https://accruent.github.io/robotframework-zoomba/GUILibraryDocumentation.html) library for more specific information about the functionality.\n\nExample tests can be found in the [samples directory](https://github.com/Accruent/robotframework-zoomba/tree/master/samples).\n\nSome Features of the Library\n--------------\n#### [GUI Library](https://accruent.github.io/robotframework-zoomba/GUILibraryDocumentation.html):\nWhen working with web pages of varying load times you probably find yourself running a lot of calls like so:\n```robotframework\nWait Until Page Contains Element locator\nClick Element locator\n```\nFor ease of use we have combined a lot of these into simple one line keywords:\n```robotframework\nWait For And Click Element locator\nWait For And Click Text text\nWait For And Select From List list_locator target_locator\n```\nAnother keyword that is particularly useful is for when you are waiting for javascript to complete on a page before proceeding:\n```robotframework\nWait For And Click Element locator that leads to a new page with javascript \nWait Until Javascript Is Complete\nWait For And Click Element locator\n```\n\n#### [API Library](https://accruent.github.io/robotframework-zoomba/APILibraryDocumentation.html):\nThis library wraps the [requests library](https://github.com/bulkan/robotframework-requests) so we have created a set of keywords to easily allow users to make requests in a single keyword:\n```robotframework\nCall Get Request ${headers_dictionary} endpoint query_string\nCall Post Request ${headers_dictionary} endpoint query_string ${data_payload}\n```\n\nAfter receiving your data we made it incredibly easy to validate it. [Validate Response Contains Expected Response](https://accruent.github.io/robotframework-zoomba/APILibraryDocumentation.html#Validate%20Response%20Contains%20Expected%20Response) 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.\n```robotframework\nValidate Response Contains Expected Response ${json_actual_response} ${json_expected_response}\n```\nIf there is any mismatched data it will look something like this:\n```\nKey(s) Did Not Match:\n------------------\nKey: pear\nExpected: fish\nActual: bird\n------------------\nFull List Breakdown:\nExpected: [{'apple': 'cat', 'banana': 'dog', 'pear': 'fish'}, {'apple': 'cat', 'banana': 'mice', 'pear': 'bird'}, {'apple': 'dog', 'banana': 'mice', 'pear': 'cat'}]\nActual: [{'apple': 'cat', 'banana': 'dog', 'pear': 'bird'}]\n\nPlease see differing value(s)\n```\nIf 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:\n```robotframework\nValidate Response Contains Expected Response ${json_actual_response} ${json_expected_response} ignored_keys=update_date\nValidate Response Contains Expected Response ${json_actual_response} ${json_expected_response} ignored_keys=${list_of_keys}\n```\n\nGetting Started\n----------------\n\nThe Zoomba library is easily installed using the [`setup.py`](https://github.com/Accruent/robotframework-zoomba/blob/master/setup.py) file in the home directory.\nSimply run the following command to install Zoomba and it's dependencies:\n\n```python\npip install robotframework-zoomba\n```\n\nIf you decide to pull the repo locally to make contributions or just want to play around with the code\nyou can install Zoomba by running the following from the *root directory*:\n```python\npip install .\n```\n\nor if you intend to run unit tests:\n```python\npip install .[testing]\n```\n\nTo access the keywords in the library simply add the following to your robot file settings (depending on what you need):\n```python\n*** Settings ***\nLibrary Zoomba.APILibrary\nLibrary Zoomba.GUILibrary\nLibrary Zoomba.SOAPLibrary\n```\n\nExamples\n------------\nExample tests can be found in the [samples directory](https://github.com/Accruent/robotframework-zoomba/tree/master/samples).\n\nThe [test directory](https://github.com/Accruent/robotframework-zoomba/tree/master/test) 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](https://github.com/Accruent/robotframework-zoomba/tree/master/samples).\n\n\nContributing\n-----------------\n\nTo make contributions please refer to the [CONTRIBUTING](https://github.com/Accruent/robotframework-zoomba/blob/master/CONTRIBUTING.rst) guidelines.\n\nSee the [.githooks](https://github.com/Accruent/robotframework-zoomba/tree/master/.githooks) directory for scripts to help in development. \n\nSupport\n---------------\nGeneral Robot Framework questions should be directed to the [community forum](https://forum.robotframework.org/).\n\nFor questions and issues specific to Zoomba please create an [issue](https://github.com/Accruent/robotframework-zoomba/issues) here on Github.\n",
"bugtrack_url": null,
"license": "GPL-3.0",
"summary": "Robot Framework mini-framework.",
"version": "4.1.4",
"project_urls": {
"Homepage": "https://github.com/Accruent/zoomba"
},
"split_keywords": [
"robot",
"framework",
"robot-framework",
"selenium",
"requests",
"appium",
"soap",
"winappdriver",
"appium",
"robotframeworkdesktop",
"windows",
"zoomba",
"python",
"robotframework-library",
"appium-windows",
"appiumlibrary",
"api-rest",
"api",
"soap-api",
"appium-mobile",
"mobile"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5b8a87afc1dc60417904bf33e8da65e100df3a53c62cba102d9282d52748150b",
"md5": "4d186e64160999c72ed31ec36acfc895",
"sha256": "590ecaace5181e7fcc1483ba637619101463a1c0dd3849a49b9f16ac3f7110b3"
},
"downloads": -1,
"filename": "robotframework_zoomba-4.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4d186e64160999c72ed31ec36acfc895",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 24272,
"upload_time": "2024-11-25T21:09:58",
"upload_time_iso_8601": "2024-11-25T21:09:58.150594Z",
"url": "https://files.pythonhosted.org/packages/5b/8a/87afc1dc60417904bf33e8da65e100df3a53c62cba102d9282d52748150b/robotframework_zoomba-4.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c0bcda7236f3ef7886f9cb9853bc163a583c3012cd7e1818b7133034b7e25ccd",
"md5": "464eeee0592c6a6da2b211f4fd3b14b1",
"sha256": "1c53e0e38774a0d1c8504f79e567b697c70fc7443492718178cabe9c57aa3290"
},
"downloads": -1,
"filename": "robotframework_zoomba-4.1.4.tar.gz",
"has_sig": false,
"md5_digest": "464eeee0592c6a6da2b211f4fd3b14b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25614,
"upload_time": "2024-11-25T21:10:00",
"upload_time_iso_8601": "2024-11-25T21:10:00.223936Z",
"url": "https://files.pythonhosted.org/packages/c0/bc/da7236f3ef7886f9cb9853bc163a583c3012cd7e1818b7133034b7e25ccd/robotframework_zoomba-4.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-25 21:10:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Accruent",
"github_project": "zoomba",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [
{
"name": "robotframework",
"specs": [
[
"==",
"7.1.1"
]
]
},
{
"name": "robotframework-requests",
"specs": [
[
"==",
"0.9.7"
]
]
},
{
"name": "robotframework-seleniumlibrary",
"specs": [
[
"==",
"6.6.1"
]
]
},
{
"name": "robotframework-sudslibrary-aljcalandra",
"specs": [
[
"==",
"1.1.4"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "selenium",
"specs": [
[
"==",
"4.27.0"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
">=",
"2.8.2"
]
]
},
{
"name": "pandas",
"specs": [
[
">=",
"1.3.5"
]
]
},
{
"name": "zipp",
"specs": [
[
">=",
"3.19.1"
]
]
}
],
"lcname": "robotframework-zoomba"
}