robot-bento - A Robot Framework test results archiving tool

Mar 11, 2025

rustrobotsvelte

As I already mentioned in another project presentation (Robot Log Enhancer Module), at work we use Robot Framework (I’ll refer to it as RF from now on) extensively to run a bunch of E2E tests daily.

If you’ve ever worked with a ton of complex RF tests, you know what a hassle it can be to navigate its result reports when something goes wrong: investigating the default generated log.html file can be pretty harsh.

With this issue in mind, I had a great excuse to try building a fullstack application with Rust and Svelte.

How it works

The first and probably most important part of the project was parsing the RF results output.xml to make the data mine. My initial goal was to make it work, so I used a largely unoptimized method: I simply defined all my objects with serde annotations so I could directly use quick_xml::de::from_str(content) for easy deserialization (as long as all the objects to be deserialized were correctly defined, of course). This is probably the most straightforward way of achieving the parsing, but it was pretty slow on huge output.xml files: ~20-30 seconds for 100MB files.

From there, the rest is essentially building an API around this, on which to plug a frontend. I wanted to learn more about Rust, so I used actix for the web server and manually managed dependency injections for this project. And that’s OK, because I had fun building it and once again, learned a bunch!

Examples

Now let’s look at some screens built for this app. It’s pretty simple but functional:

State of the project

As soon as I achieved my goal of having a functional PoC, the RF output.xml format I was using got updated. That’s when I realized this could be a troublesome app to maintain. Also, the app doesn’t do much for now. I learned what I wanted to learn and didn’t want to take it further, so it’ll probably stay in this PoC state forever.

The source code

If you’re interested in this incomplete test project, you can find it on GitHub - robot-bento.