Tuesday, July 12, 2011

RobotFramework - Overview

I have executed many automation projects and also developed various automation frameworks using different tools like Silktest, QTP, Selenium, CodedUI, MS UIA, VisualTest (dead) and Winrunner (dead). Tried few open source frameworks and found RobotFramework as the best one. Successfully completed five projects using RobotFramework. Main advantage is, I'm able to integrate with different test tools and libraries. It is neither related to IBM Rational tools or any other commercial tools.

Summary in RobotFramework Homepage
Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). It has easy-to-use tabular test data syntax and utilizes the keyword-driven testing approach. Its testing capabilities can be extended by test libraries implemented either with Python or Java, and users can create new keywords from existing ones using the same syntax that is used for creating test cases.

Robot Framework is open source software released under Apache License 2.0. Its copyrights are owned and development supported by Nokia Siemens Networks.

Robot Framework Features

  1. Advanced Keyword Driven framework
  2. Enable functional team contribution for automation
  3. Reusable/custom keywords
  4. Dynamic variables
  5. Easily extendable by Python, C# & Java
  6. Supports few test libraries including Selenium
  7. Provides simple and powerful Results Reporting
  8. Multiple Operating Systems support
  9. $ Free

Links for Robot Framework Resources
Robot Framework Home Page
Robot Framework User Guide
Robot Framework Quick Start Guide
Robot IDE
Robot Selenium Library

Robot Framework - Introduction
Robot Framework - Articles
Simple tutorial for Robot Framework

In last 6 months, many updates are happened on Robot framework and its related libraries. It is supporting many of my generic automation framework features.



Robot Framework

Supported FrameworksFunctional DecompositionYes
Data DrivenYes
Keyword DrivenYes
Table DrivenYes
Independent toOperating SystemYes
Test ScriptingRecordingNo
Suite Setup ModuleYes
Suite TearDown ModuleYes
Test Setup ModuleYes
Test TearDown ModuleYes
Database IntegrationYes
Environment LibraryYes
Test ExecutionMultiple OSYes
Multiple platformsYes
Parallel ExecutionNo
Test TimeoutYes
Based on PriorityYes
Grouping TestsYes
Running Failed testsYes
Result AnalysisDetail reporting for each step executionYes
Snapshots for failed testsYes
Test level reportingYes
Compiled reportYes
Results by categoryYes
Expected BenefitsLess effort to automateYes
Less dependence on highly skilled automation professionalsYes
Exception handlingYes
Easy to MaintainYes
Easy to Integrate with Other toolsYes
Support to CI (Continuous Integration) toolsYes
Additional ExpectationsDynamic conditionsYes
Dynamic Loop supportYes
UI to Edit dataYes
UI to execute testsYes
Update test metrics automaticallyYes
Update captured defects automaticallyYes


Anonymous said...

Hi Palani,

I can see that you have had good success with RobotFramework on ironpython thus :-


Can you please elaborate on your experience so far?.

As an aside, do you think the ironpython libraries are on par with standard python libraries (i.e. as implemented in cpython).

Please get back.


Palani Selvam said...

1. Did you run into any issues with running ride on ironpython.? the
install instructions seem to indicate that running ride on ironpython
is not supported.
Palani - RIDE is just editor. While I was using, you can not execute tests from RIDE. If you want to check keyword availability and documentation, you need to generate a xml for your python library.. You need to look at libdoc.py

2. As an aside how well do you think ironpython has kept pace with
cpython in terms of support for standard python libraries?. Are there
any major gaps you have noticed?. Just curios.
Palani - Very less users are supporting IronPython. IronPython does not support few of CPython libs. For RobotFramework,most of the logic would be either in C# or cPython, so no need to worry much about it.

mikkok said...

Hi Palani,

Nice post!

About Parallel Executions. Although the pybot command doesn't directly support test parallelization you can run multiple pybots' at the same time (just ensure that they don't write to the same output files). And after running you can combine outputs with rebot.

Further instructions can be found (at least) from http://code.google.com/p/robotframework-seleniumlibrary/wiki/UseSeleniumGRIDwithRobotFramework#Run_Test_Suites_in_Parallel

Kind Regards,
Mikko Korpela

Senthil said...

Hi Palani,

I was searching for writing test cases for Robot Framework and stumbled upon your blog. I am having tough time to understand how to properly write test cases for robot framework selenium library.

Any help will be great.



Palani Selvam said...


Have you tried the RobotFramework-Selenium Demo? It is very tough to answer for vague question...

Tell me, what have you done and where did you get struck? I have prepared a guide to use RobotFramework+Selenium. Definitely will add it in couple of posts..

Senthil said...

Hi Palani,

I was having tough time to prepare the test case files. I was not able to understand the right structure.

Luckily http://www.virtuousprogrammer.com/?p=264 helped me understand it.



Anonymous said...

can you please let me know how to write a sample testcase...
i amnot able to get hte difference of settings ,Testcase keywords..etc basing on what we are assiging some values in the textfiles

Palani Selvam said...

To know more about Robot Framework, you should read user guide or quickstart guide. It would be easier to understand if you have experience on Automation.

For step by step tutorial, have a look at here --> http://www.virtuousprogrammer.com/?p=264

Jyotsna Rajiv said...

How can robot framework be used for performance testing?

Palani Selvam said...

Robot framework is a framework and mainly used for test automation.

But you can use for Performance testing to collect logs/data from different servers.