Robot Framework

Last updated

Robot Framework
Robot-framework-logo.png
Developer(s) Pekka Klärck, Janne Härkönen et al.
Initial release2.0 June 24, 2008 (2008-06-24)
Stable release
4.0.2 / May 11, 2021;9 months ago (2021-05-11)
Repository
Written in Python
Operating system Cross-platform
Type Software testing framework / test tool
License Apache License 2.0
Website robotframework.org

Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). It is a keyword-driven testing framework that uses tabular test data syntax. [1]

Contents

History

The basic ideas for Robot Framework were shaped in Pekka Klärck's masters thesis [2] in 2005. The first version was developed at Nokia Networks the same year. Version 2.0 was released as open source software June 24, 2008 and version 3.0.2 was released February 7, 2017. [3]

The framework is written using the Python programming language and has an active community of contributors. It is released under Apache License 2.0 and can be downloaded from robotframework.org.

In 2020 survey it scored 8 among 12 test automation frameworks, with 3 % of respondents using it. [4] In 2021 it had fallen to 18 among 22 with 2 % usage. [5]

Description

Test cases are written using a keyword-testing methodology written in a tabular format. These tables can be written in plain text, tab-separated values (TSV), or reStructuredText (reST) formats files [6] in any text editor or using the Robot Integrated Development Environment (RIDE). [7] RIDE simplifies writing test cases by providing framework-specific code completion, syntax highlighting, etc.

Examples

The following test case implements a Hello, World! example:

*** Test Cases ***DemoLogHello world

Log is a built-in keyword that logs the given parameter to the test report generated by Robot Framework.

With SeleniumLibrary, [8] writing tests for web applications is very easy too:

*** Test Cases ***DemoOpen Browserhttps://www.google.comieInput Textid=lst-ibHollywood CelebritiesClick ButtonGoogle Search

This test opens a new Internet Explorer browser window with Google and performs an Internet search for "Hollywood Celebrities" by pressing the button "Google Search".

With Robot Framework Browser, [9] automation can be done with Chromium, WebKit and Firefox.

*** Settings ***LibraryBrowser*** Test Cases ***Example TestNew Pagehttps://playwright.devGet Texth1==🎭 Playwright

Add-ons

These libraries are best implemented in Python, but using Java or .NET is also possible.

Other languages such as Perl, JavaScript, and PHP can be used for libraries as well, using the documented remote library interface.

See also

Related Research Articles

Acceptance testing Test to determine if the requirements of a specification or contract are met

In engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met. It may involve chemical tests, physical tests, or performance tests.

Integrated development environment Software engineering toolkit

An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases. This is as opposed to software being developed first and test cases created later.

In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.

IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. IronPython 2.0 was released on December 10, 2008. After version 1.0 it was maintained by a small team at Microsoft until the 2.7 Beta 1 release. Microsoft abandoned IronPython in late 2010, after which Hugunin left to work at Google. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.

In software engineering, behavior-driven development (BDD) is an agile software development process that encourages collaboration among developers, quality assurance testers, and customer representatives in a software project. It encourages teams to use conversation and concrete examples to formalize a shared understanding of how the application should behave. It emerged from test-driven development (TDD). Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

Selenium is an open-source umbrella project for a range of tools and libraries aimed at supporting web browser automation. Selenium provides a playback tool for authoring functional tests without the need to learn a test scripting language. It also provides a test domain-specific language (Selenese) to write tests in a number of popular programming languages, including JavaScript (Node.js), C#, Groovy, Java, Perl, PHP, Python, Ruby and Scala. The tests can then run against most modern web browsers. Selenium runs on Windows, Linux, and macOS. It is open-source software released under the Apache License 2.0.

Haxe is an open source high-level cross-platform programming language and compiler that can produce applications and source code, for many different computing platforms from one code-base. It is free and open-source software, released under the MIT License. The compiler, written in OCaml, is released under the GNU General Public License (GPL) version 2.

Keyword-driven testing, also known as action word based testing, is a software testing methodology suitable for both manual and automated testing. This method separates the documentation of test cases – including both the data and functionality to use – from the prescription of the way the test cases are executed. As a result, it separates the test creation process into two distinct stages: a design and development stage, and an execution stage. The design substage covers the requirement analysis and assessment and the data analysis, definition, and population.

YUI Library

The Yahoo! User Interface Library (YUI) is a discontinued open-source JavaScript library for building richly interactive web applications using techniques such as Ajax, DHTML, and DOM scripting. YUI includes several core CSS resources. It is available under a BSD License. Development on YUI began in 2005 and Yahoo! properties such as My Yahoo! and the Yahoo! front page began using YUI in the summer of that year. YUI was released for public use in February 2006. It was actively developed by a core team of Yahoo! engineers.

TestComplete Software test automation tool

TestComplete is a functional automated testing platform developed by SmartBear Software. TestComplete gives testers the ability to create automated tests for Microsoft Windows, Web, Android, and iOS applications. Tests can be recorded, scripted or manually created with keyword driven operations and used for automated playback and error logging.

Pyjs Rich Internet application framework

Pyjs, is a rich web application framework for developing client-side web and desktop applications in Python. The resulting applications can be run in a web browser or as standalone desktop applications.

Jasmine (JavaScript testing framework) Open-source testing framework for JavaScript

Jasmine is an open-source testing framework for JavaScript. It aims to run on any JavaScript-enabled platform, to not intrude on the application nor the IDE, and to have easy-to-read syntax. It is heavily influenced by other unit testing frameworks, such as ScrewUnit, JSSpec, JSpec, and RSpec.

Cucumber is a software tool that supports behavior-driven development (BDD). Central to the Cucumber BDD approach is its ordinary language parser called Gherkin. It allows expected software behaviors to be specified in a logical language that customers can understand. As such, Cucumber allows the execution of feature documentation written in business-facing text. It is often used for testing other software. It runs automated acceptance tests written in a behavior-driven development (BDD) style.

Behat (computer science)

Behat is a test framework for behavior-driven development written in the PHP programming language. Behat was created by Konstantin Kudryashov and its development is hosted on GitHub.

A headless browser is a web browser without a graphical user interface.

HtmlUnit is a headless web browser written in Java. It allows high-level manipulation of websites from other Java code, including filling and submitting forms and clicking hyperlinks. It also provides access to the structure and the details within received web pages. HtmlUnit emulates parts of browser behaviour including the lower-level aspects of TCP/IP and HTTP. A sequence such as getPage(url), getLinkWith("Click here"), click allows a user to navigate through hypertext and obtain web pages that include HTML, JavaScript, Ajax and cookies. This headless browser can deal with HTTPS security, basic HTTP authentication, automatic page redirection and other HTTP headers. It allows Java test code to examine returned pages either as text, an XML DOM, or as collections of forms, tables, and links.

Capybara is a web-based test automation software that simulates scenarios for user stories and automates web application testing for behavior-driven software development. It is written in the Ruby programming language.

Katalon Studio Free automation testing solution developed by Katalon LLC

Katalon Studio is an automation testing software tool developed by Katalon, Inc. The software is built on top of the open-source automation frameworks Selenium, Appium with a specialized IDE interface for web, API, mobile and desktop application testing. Its initial release for internal use was in January 2015. Its first public release was in September 2016. In 2018, the software acquired 9% of market penetration for UI test automation, according to The State of Testing 2018 Report by SmartBear.

References

  1. "Robot Framework Homepage". Robotframework.org. Retrieved January 20, 2019.
  2. "Laukkanen, Pekka: "Data-Driven and Keyword-Driven Test Automation Frameworks", 2006". Eliga.fi. Retrieved March 23, 2018.
  3. "Robot Framework Pypi Page". Robotframework.org. Retrieved March 23, 2018.
  4. "Testing and QA - The State of Developer Ecosystem in 2020 Infographic". JetBrains: Developer Tools for Professionals and Teams. Retrieved October 15, 2021.
  5. "Testing - The State of Developer Ecosystem in 2021 Infographic". JetBrains: Developer Tools for Professionals and Teams. Retrieved October 15, 2021.
  6. "User Guide 3.1.2". Robotframework.org. Retrieved February 14, 2020.
  7. "RIDE Homepage". Github.com. Retrieved February 14, 2020.
  8. "Robot Selenium Library". github.com. Retrieved March 23, 2018.
  9. "Robot Framework Browser". github.com. Retrieved August 5, 2020.