
At the beginning of the year, the first official
RoboCon 2018 conference was held in Helsinki, dedicated to the Robot Framework
auto-testing tool. And we, the maintainers of the integration and system testing automation group of Peter-Service, could not miss such an event. Because this tool is used quite widely in our company: in particular, the TORS (Testing of Release Stands) product has been implemented in our group.
The conference organizers promised to hold it annually. But already this time, she gathered more than 250 people, immediately becoming the largest meeting of the community of developers and testers using the above framework.
The absolute majority of participants were from Finland. However, there were also those who specifically came from the United States, Canada, Spain, Germany, Russia and other countries, so English was chosen as the main language of the conference. The reports went in one stream, which made it possible not to choose at random by name, but to listen to everything. And I can not fail to note a good balance in a variety of topics: some presentations were devoted to the organization of the testing process, others to the development using specific libraries, and still others to the history of the framework and the community.
')

The conference was opened by the founder of the Robot Framework Pekka Klärck with an almost hourly report “How did we get here? Where do we go next? The speaker recalled how the prototype framework, which he developed at the university, looked like, not without pride that today the Robot Framework is the de facto standard for testing in Finland, and also announced plans for the future.

Someone may be surprised by the statement about the standard. Naturally, due to the comparison of the copy frameworks, a lot has already been broken, and hardly anyone will ever be able to finally determine the best one. But my colleagues and I like the Robot Framework very much, and now I will try to name some of its advantages:
- Keyword Driven Testing. Having a level of abstraction in the form of keywords, we get the opportunity to make tests of them, having minimal programming experience.
- Keywords are written in Python: the language is simple, but powerful. In this case, if you wish, you can switch to Java. Taking into account the previous point, this gives a very low threshold of entry.
- Thanks to the well-thought-out architecture, the Robot Framework functionality is very easily extended with the help of new libraries, listeners and preran-modifiers.
- There is support for Selenium "out of the box", a parallel test run.
- Everyone who used the tool notes a convenient and beautiful test run log - some even choose Robot just because of this.
- Run from the command line, which makes it easy to use in containers, build chains.
- Large living community: people are interested in the development of the framework, for any question you can get an answer during the day.
Returning to the Pekka Klärck report. So, in the near future, the Robot Framework plans:
- Release of new version 3.0.3 with minor improvements and bug fixes.
- The transition of SSHLibrary to Python 3. The entire Robot Framework is actively reworked for the third version, but the SSHLibrary in this task has the highest priority, since it is currently the largest library that works only on 2.7.
- New library for testing REST / JSON, which was devoted to a separate report of its author Anssi Syrjäsalo. However, the library is still being finalized, and logging has not yet been fully implemented.
- Version 3.1 release with new test status. To the usual Passed / Failed will be added the status Skipped for the tests, which for one reason or another are excluded from the run.
In the long term:
- Recycling if / else constructs.
- Recycling User Guide.
- Recycling editor RIDE.
- Focus on expanding the use of the framework outside of Finland.
- The release of a full-fledged book about the Robot Framework (so far with the descriptions and manuals for the tool is a bit tough).
Thanks to the
post in google-groups about our participation in the conference, in the intervals between presentations, many approached us to get acquainted. Some were interested in the
PostPortal library announced in a post, others were just curious to learn about using the Robot Framework in our country. Indeed, in Russia, the framework is not yet very popular (and, in our opinion, in vain).
Subsequent reports were more severely limited in time: 30 minutes, of which 10 are reserved for questions. The reports of Déau Régis “The naked truth about a successful automation automation journey” and Aldina Codesso-Lipponen “Mega Robot projects, what to expect” formulated general recommendations for large projects, and it was very pleasant to note that we have all these recommendations and they are already taken into account (mostly they dealt with the code review, the use of the version control system, the build server).
Separately, I would like to mention the report of Ed Manlove “The Importance of Open Source Communities”, which was aimed at convincing listeners to join the Robot Framework community not only in the role of users, but also as developers. The report was designed for a very wide audience, so the author deliberately refused to dive into technical issues and instead used references to pop culture, actively gesticulated and generally behaved freely and directly, and at the end arranged for the hall a small interactive with questions.
The effect produced by this report could be judged the next day, when the Sprints section began, where people gathered to take an active role in the community. Half of those who came were clearly inspired by Ed's performance. Many of them were absolute beginners - that is, without any programming experience at all. It was obvious that Ed’s report was very motivated by them: many of those who came there only heard for the first time how the open-source project was being done, and at the same time felt that they were able to take part in it even with their modest knowledge (I had to separately explain to beginners about version control system, etc.).

In general, the whole second day was a logical development of the above report and was intended to show that everyone can participate in the development of an open-source application. After the introductory words and github instructions, everything was divided into three development groups:
- Jenkins plugin;
- Selenium;
- core.
Since most of my personal work has recently been connected with the parallel startup utility pabot, I very much hoped that its author Mikko Korpela would make a separate group, but he chose to join Selenium. However, Mikko offered to familiarize himself with
three videos posted on YouTube about adding new features to pabot and join the discussion in the comments.
Choosing from what remained, I stopped at the core section. And it turned out to be much more interesting than I expected, since the work in the section was headed by Pekka Klärck himself. Tasks for development were taken from the
issues on github , specially labeled with the RoboCon tag (and this was also done for beginners who are not yet able to choose for themselves an assignment of an adequate level of complexity). In principle, no one seriously set out to solve any of these tasks in 3-4 hours, so I decided to take the issue “
Need While Loop Keyword ”. Its essence was reduced to the implementation of the test with the keyword "while" (with the existing analogue for "for", the finished analogue for "while" was not implemented). Although we in our code take out all the work with cycles and logic in python, as, by the way, Pekka advises to do, adding a new symbol of the river seemed to me a good opportunity to understand how the Robot Framework works from the inside. I was hoping to rely on the already implemented “for” cycle ... But, of course, everything turned out to be much more difficult than adding one method. And all the same: even by itself, trying to figure out the task helped me to better understand how exactly the Robot Framework works.
To summarize. Robot Framework is actively developing and, obviously, will expand both the functionality and the number of users. It was extremely pleasant to realize that in our company we are not only keeping abreast of the RF community, but are also far ahead of it: for example, only a third of the audience knew what pabot is, and only a few heard about using headless browser mode for testing WebUI .
Personally, I was also greatly benefited by the beginning of vigorous activity in the RF repository. True, for our working group this is not a novelty: we constantly set tasks and comment in
the Robot Framework repository ,
the Peter-Service repository R & D contains both the developed (
cassandracqllibrary ,
apachetomcat ,
reportportal-ng ) and the ones we have developed (
Selenium2Library ,
SSHLibrary ,
Rammbock ) libraries for the framework. And one of his colleagues takes the second place on the list of
contributors to pabot , by the number of commits and lines of code, second only to the creator of the utility. But, in any case, a personal acquaintance with people like Pekka Klärck (founder of RF), Mikko Korpela (by pabot), Tatu Aalto (lead developer of SeleniumLibrary) seemed very useful to me.



Conference program:
- Pekka Klärck, Eliga: Keynote “How did we get here? Where do we go next? ”: Video .
- Déau Régis, OpusCapita: "The Automated Automation Test Journey": video .
- Aldina Codesso-Lipponen, Kone: "Mega Robot projects, what to expect": video .
- Asko Soukka, University of Jyväskylä: “Robot Framework in Plone CMS project”: video , presentation .
- Ed Manlove: "The Importance of Open Source Communities": video .
- Anssi Syrjäsalo, Siili: "Towards contract-based API testing with a new REST JSON test library": video .
- Tatu Aalto, CRF Health: "Extending Selenium Library 3.0": video , presentation .
- Martin Taylor, Nymi: "Design Patterns for Efficient Multi-Platform and Multi-Device Testing with Robot Framework": video .
- Mikko Korpela, Reaktor: "Parallel test execution with Pabot": video .