Yesterday I invested two hours in my mob testing hands-on learning path. We Mob tested Robot Framework.
It all started with Maaret Tweet invitation:
This Wednesday July 15th, we'll do a bit of remote #EnsembleTesting (#MobTesting) 1pm – 3pm GMT (4-6pm in Finland). Our target is web applications with #RobotFramework #Playwright library. Ping me to join us, my DMs are open, and I can send you the calendar invite. cc: @alanpage
— Maaret Pyhäjärvi (@maaretp) July 13, 2020
Robot Framework is a generic open-source automation framework. It can be used for test automation and robotic process automation (RPA). That means you can automate your favorite email client or Browser part with the menu (e.g., File -> Open). Our scope was web page automation were Robot Framework is utilizing Playwright as a library. The Playwright is a Node JS library to automate Chromium, Firefox, and WebKit with a single API. The Playwright is built to enable cross-browser web automation that is ever-green, capable, reliable, and fast. There is no need for selenium-webdriver installation.
My background is Web Application automation using Ruby, Watir, PageObjects, and Cucumber. I used those Ruby libraries as Robot Framework Oracles.
There were four participants: Maaret, Tatu, Frank Schimmel, and me. Tatu is the Robot Framework’s main contributor. Frank and I changed in the Keyboard Driver role (every ten minutes), while others where Navigators. As a Driver, you must follow Navigator guidance. I learned my lesson at the Fizz Buzz Mob Session held in Amsterdam. We used Maaret computer shared over Zoom. Frank and I were both on Mac, so Command + c/p did not work. We used the right mouse click context menu instead. If you typed too quickly, Zoom inserted
`. We quickly aligned with those Zoom requirements.
Robot Framework uses Python, and we used Pycharm as IDE on Maaret Windows machine. Our goal was to explore the Robot Framework by automating the checkbox page.
On that journey, I learned how to:
- open a page in a new tab
- we used TAB key extensively because it separates Robot Framework keywords (Python legacy feature)
- how to use XPath and CSS selector
- assertions in a natural language manner.
- use browser in headless mode
- how to debug script
Good feature coverage in two hours.
Then we switched to Slow Exchange Rate Web page. We agreed for this application because we tested Robot Framework in real-world scenarios, where the script needs to wait for something. In our case, we waited for HTML element style visible property.
And we found a bug, Robot Framework did not wait for element style property value update. The bug is not the problem. We learned how to debug the Robot Framework. Tatu used debug option and in debug.log found the cause of the issue in less than five minutes! That is Agile!
I like in Robot Framework’s natural language assertions that are level above of boolean asserts. I suggested command line documentation, similar to what Elixir has.
My advice is if you get a chance to participate in an online mob testing session, just do it. The learning path is extremely stepy.