{"id":15018735,"url":"https://github.com/accruent/robotframework-zoomba","last_synced_at":"2025-04-04T11:16:05.490Z","repository":{"id":37470705,"uuid":"108007056","full_name":"Accruent/robotframework-zoomba","owner":"Accruent","description":"Extended Robot Framework libraries to make testing GUI, REST/SOAP API, Mobile, and Windows Desktop easier.","archived":false,"fork":false,"pushed_at":"2025-04-03T17:39:42.000Z","size":16187,"stargazers_count":145,"open_issues_count":0,"forks_count":35,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-04T11:15:44.566Z","etag":null,"topics":["api","api-rest","appium","appium-framework","appium-windows","appiumlibrary","automated-testing","desktop","gui","hacktoberfest","mobile","python","robot-framework","robotframework","soap","soap-api","winappdriver","windows","zoomba","zoomba-library"],"latest_commit_sha":null,"homepage":"https://accruent.github.io/robotframework-zoomba/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Accruent.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-23T16:14:27.000Z","updated_at":"2025-04-03T17:39:27.000Z","dependencies_parsed_at":"2023-02-13T23:01:12.222Z","dependency_job_id":"72b1dcd1-b1fa-4a95-ba5d-fe4b4a1d07c6","html_url":"https://github.com/Accruent/robotframework-zoomba","commit_stats":{"total_commits":575,"total_committers":22,"mean_commits":"26.136363636363637","dds":"0.41391304347826086","last_synced_commit":"b43e2c097f6e79f8bf31bff58998b082b571e2dd"},"previous_names":["accruent/zoomba"],"tags_count":128,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accruent%2Frobotframework-zoomba","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accruent%2Frobotframework-zoomba/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accruent%2Frobotframework-zoomba/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accruent%2Frobotframework-zoomba/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Accruent","download_url":"https://codeload.github.com/Accruent/robotframework-zoomba/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247166169,"owners_count":20894654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-rest","appium","appium-framework","appium-windows","appiumlibrary","automated-testing","desktop","gui","hacktoberfest","mobile","python","robot-framework","robotframework","soap","soap-api","winappdriver","windows","zoomba","zoomba-library"],"created_at":"2024-09-24T19:52:23.195Z","updated_at":"2025-04-04T11:16:05.471Z","avatar_url":"https://github.com/Accruent.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"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\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccruent%2Frobotframework-zoomba","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faccruent%2Frobotframework-zoomba","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccruent%2Frobotframework-zoomba/lists"}