Has anyone used the RobotFramework in their organization
Has anyone used the RobotFramework for automation in their organization.
I needed information regarding the challenges and advantages of using it.
I need to test a desktop-based .NET(VB.NET) application.
Originally Posted by Juleo_2607
I've worked for an organization that used it for web testing, not in a .net environment. In theory it should be able to test .NET using, https://code.google.com/p/nrobotremote/, but if your native application uses 3rd party controls, you may find yourself having to write test harnesses and test hooks into your SUT.
I think it does a good job at implementing a basic keyword framework. It has concepts such as system variables, high level keywords that can be composed of lower level keywords, and an implemented IDE (RIDE) that is smarter than editing a spreadsheet via excel.
But I do have some gripes about it, but they are gripes about keyword frameworks in general, not specific to the robot framework implementation.
* Keyword frameworks are harder to do large re factoring. Hard for long term test maintenance when there is a large structural change needed.
* Lack of object encapsulation. Because you are dumping data into a global variable namespace, it's very hard to keep things thread-safe when trying to scale up to massively parallel runs without going full on separate multi-process.
* Hard to do any multi-threading work because the language is flattened using a keyword construct. (for example, say you want to speed up your tests by running parallel fixtures to setup the conditions of a test, like for say setting up 5 accounts in different configurations in parallel)
* makes it harder to plugin different frameworks.
There are some key advantages.
* Easily readable tests. (less code syntax and somewhat more descriptive)
* It is easily extensible. You can create different modules you can import into your test.
* It forces at least 2 levels of abstraction. Stops test developers from simply dumping a bunch of low level code, they at least have to wrap them up into keyword constructs and think about how those keywords can be reused.