So, I had a chance to try Robot Framework for testing our project. In this post I’ll collect some quick notes and impressions from using the tool.
- The structure of tests is quite intuitive and straightforward.
- GUI and the test cases style can be good for testers not familiar with programming (but someone still has to program keywords).
- Too GUI based as for developers. Integration with IDE would be handier. Although there are plugins for IDE’s, but I still have to use Robot Framework GUI and the IDE together.
- Extremely slow application startup, scrolling, test case tree navigation, etc. (V 1.2.3)
- Have to periodically close/reopen (V 1.2.3).
- When it doesn’t print results in bottom-right part.
- When git repository is updated.
- Insufficient logging/debugging. When test fails or exception is thrown, it becomes a programmer problem to put enough information to exception/log/console.
- “If it doesn’t work – close it and open again”. Just like Windows.
- I found it adding unnecessary complexity as an additional GUI tool instead of being an additional library/framework.
- In case you’re choosing a test framework for your project: good alternative as for me is py.test. It is more programmer-friendly having the same level of integration with Selenium, better integration with IDE; keywords is a nice abstraction, but py.test fixtures are not worse. Both have to have a proper code architecture and structure; then test suites can be good structured and intuitive. If in your project you already use Robot, this paragraph is not relevant.
- GUI application is very-very slow and full of bugs. In newer versions some issues are fixed. V1.4 doesn’t have the scroll issue, V1.3 doesn’t have to be restarted after every test.
Results of working one iteration (3 weeks) as a tester
- Installed RobotFramework, Ride for RobotFramework, the test project in local environment (on Ubuntu 14.04).
- Researched the Ride updates. Current used version is 1.2.x; V1.4 has issue with long start (freezes on Loading window for three minutes); v1.3 is more stable than 1.2.
- Researched current test project architecture; created a library (class) for working with web driver elements.
- Researched the possibility to use polling instead of sleep(), including the proof of concept on some test cases.
- StackOverflow question: Send a keyword to another keyword as a parameter
- StackOverflow question #2: Send a non-serializable parameter to a keyword
Submit a bug to Ride Github.