{"id":15144357,"url":"https://github.com/robotframework/robotdemo","last_synced_at":"2026-03-02T08:31:13.577Z","repository":{"id":37318792,"uuid":"167372566","full_name":"robotframework/RobotDemo","owner":"robotframework","description":"Robot Framework demo","archived":false,"fork":false,"pushed_at":"2023-11-01T03:05:13.000Z","size":156,"stargazers_count":108,"open_issues_count":0,"forks_count":113,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-24T09:38:46.754Z","etag":null,"topics":["demo","robotframework"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robotframework.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-01-24T13:31:30.000Z","updated_at":"2025-03-17T15:33:58.000Z","dependencies_parsed_at":"2025-01-02T02:11:42.886Z","dependency_job_id":"cb8912ae-c03f-46ef-9e3e-27d9a68bacbe","html_url":"https://github.com/robotframework/RobotDemo","commit_stats":{"total_commits":43,"total_committers":5,"mean_commits":8.6,"dds":0.4418604651162791,"last_synced_commit":"c7d226faaea06c43deb26038080a670e10afa93f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotframework%2FRobotDemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotframework%2FRobotDemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotframework%2FRobotDemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotframework%2FRobotDemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robotframework","download_url":"https://codeload.github.com/robotframework/RobotDemo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248661704,"owners_count":21141450,"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":["demo","robotframework"],"created_at":"2024-09-26T10:40:46.718Z","updated_at":"2026-03-02T08:31:13.521Z","avatar_url":"https://github.com/robotframework.png","language":"Python","readme":"====================\nRobot Framework Demo\n====================\n\n`Robot Framework`_ is a generic open source test automation framework.\nIn addition to introducing Robot Framework test data syntax, this demo\nshows how to execute test cases, how generated reports and logs\nlook like, and how to extend the framework with custom test libraries.\n\n.. contents:: **Contents:**\n   :depth: 1\n   :local:\n\nDownloading demo package\n========================\n\nTo get the demo, you can either `download`_ and extract the latest\npackage from the GitHub or checkout the `source code`_ directly.\nAs a result you get ``RobotDemo`` directory with several files.\n\nExample `test cases`_, `test library`_ used by them, and `generated results`_\nare available also online. Therefore, you do not need to download the demo if\nyou are not interested in `running it`__ yourself.\n\n__ `running demo`_\n\nDemo application\n================\n\nThe demo application is a very simple calculator implemented with Python\n(`calculator.py`_). It contains only business logic and no user interface.\nYou cannot really run the calculator manually.\n\nTest cases\n==========\n\nThe demo contains three different test case files illustrating three different\napproaches for creating test cases with Robot Framework. Click file names below\nto see the latest versions online.\n\n`keyword_driven.robot`_\n    Example test cases using the *keyword-driven* testing approach.\n\n    All tests contain a workflow constructed from keywords in\n    `CalculatorLibrary.py`_. Creating new tests or editing\n    existing is easy even for people without programming skills.\n\n    The *keyword-driven* approach works well for normal test\n    automation, but the *gherkin* style might be even better\n    if also business people need to understand tests. If the\n    same workflow needs to repeated multiple times, it is best\n    to use to the *data-driven* approach.\n\n`data_driven.robot`_\n    Example test cases using the *data-driven* testing approach.\n\n    The *data-driven* style works well when you need to repeat\n    the same workflow multiple times.\n\n    Tests use ``Calculate`` keyword created in this file, that in\n    turn uses keywords in `CalculatorLibrary.py`_. An exception\n    is the last test that has a custom *template keyword*.\n\n`gherkin.robot`_\n    Example test case using the *gherkin* syntax.\n\n    This test has a workflow similar to the *keyword-driven*\n    examples. The difference is that the keywords use higher\n    abstraction level and their arguments are embedded into\n    the keyword names.\n\n    This kind of *gherkin* syntax has been made popular by Cucumber_.\n    It works well especially when tests act as examples that need to\n    be easily understood also by the business people.\n\nAs you can see, creating test cases with Robot Framework is very easy.\nSee `Robot Framework User Guide`_ for details about the test data syntax.\n\nTest library\n============\n\nAll test cases interact with the calculator using a custom test library named\n`CalculatorLibrary.py`_. In practice the library is just a Python class\nwith methods that create the keywords used by the test cases.\n\nGenerated library documentation makes it easy to see what keywords the\nlibrary provides. This documentation is created with Libdoc_ tool integrated\nwith the framework:\n\n- `CalculatorLibrary.html`_\n\nAs you can see, Robot Framework's test library API is very simple.\nSee `Robot Framework User Guide`_ for more information about creating test\nlibraries, using Libdoc, and so on.\n\nGenerated results\n=================\n\nAfter `running tests`_, you will get report and log in HTML format. Example\nfiles are also visible online in case you are not interested in running\nthe demo yourself. Notice that one of the test has failed on purpose to\nshow how failures look like.\n\n- `report.html`_\n- `log.html`_\n\nRunning demo\n============\n\nPreconditions\n-------------\n\nA precondition for running the tests is having `Robot Framework`_ installed.\nIt is most commonly used on Python_ but it works also with Jython_ (JVM)\nand IronPython_ (.NET). Robot Framework `installation instructions`_\ncover installation procedure in detail. People already familiar with\ninstalling Python packages and having `pip`_ package manager installed, can\nsimply run the following command::\n\n    pip install robotframework\n\nRobot Framework 3.0 and newer support Python 3 in addition to Python 2. Also\nthis demo project is nowadays Python 3 compatible.\n\nRunning tests\n-------------\n\nTest cases are executed with the ``robot`` command::\n\n    robot keyword_driven.robot\n\n.. note:: If you are using Robot Framework 2.9 or earlier, you need to\n          use Python interpreter specific command ``pybot``, ``jybot`` or\n          ``ipybot`` instead.\n\nTo execute all test case files in a directory recursively, just give the\ndirectory as an argument. You can also give multiple files or directories in\none go and use various command line options supported by Robot Framework.\nThe results `available online`__ were created using the following command::\n\n    robot --name Robot --loglevel DEBUG keyword_driven.robot data_driven.robot gherkin.robot\n\nRun ``robot --help`` for more information about the command line usage and see\n`Robot Framework User Guide`_ for more details about test execution in general.\n\n__ `Generated results`_\n\n\n.. _Robot Framework: http://robotframework.org\n.. _download: https://github.com/robotframework/RobotDemo/archive/master.zip\n.. _source code: https://github.com/robotframework/RobotDemo.git\n.. _calculator.py: https://github.com/robotframework/RobotDemo/blob/master/calculator.py\n.. _keyword_driven.robot: https://github.com/robotframework/RobotDemo/blob/master/keyword_driven.robot\n.. _CalculatorLibrary.py: https://github.com/robotframework/RobotDemo/blob/master/CalculatorLibrary.py\n.. _data_driven.robot: https://github.com/robotframework/RobotDemo/blob/master/data_driven.robot\n.. _gherkin.robot: https://github.com/robotframework/RobotDemo/blob/master/gherkin.robot\n.. _Cucumber: https://cucumber.io/\n.. _Robot Framework User Guide: http://robotframework.org/robotframework/#user-guide\n.. _Python: http://python.org\n.. _Jython: http://jython.org\n.. _IronPython: http://ironpython.net\n.. _pip: http://pip-installer.org\n.. _installation instructions: https://github.com/robotframework/robotframework/blob/master/INSTALL.rst\n.. _Libdoc: http://robotframework.org/robotframework/#built-in-tools\n.. _CalculatorLibrary.html: http://robotframework.org/RobotDemo/CalculatorLibrary.html\n.. _report.html: http://robotframework.org/RobotDemo/report.html\n.. _log.html: http://robotframework.org/RobotDemo/log.html\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotframework%2Frobotdemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotframework%2Frobotdemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotframework%2Frobotdemo/lists"}