RoboCon 2026

Speed up test automation: 5 levels of caching
2026-03-05 , RoboCon Online

The key to fast tests is to do fewer things. Reusing previously done work is a great way of doing fewer things without changing what your tests do. Learn about 5 levels of caching to speed up your test runs.


"Let me quickly fix that test before I log off for the day". Before you know it, it's 20:00, you're still running tests, you're really hungry for some inexplicable reason, you see the tests doing the same thing over and over again, you're ready to throw your laptop out of the window, if it would only open but even the window is being difficult (your phone is blowing up), the doorbell rings, and aâ̶̊ͅar̷̡̟͋̕͠g̵̣̰̫̉̆͠hh̸͖͙̃̈h!

Bad test performance is a universal annoyance. "Quickly" running some tests can take forever. But it can also be really hard to figure out how to speed things up. The result? Blankly staring at your screen, getting distracted, and annoyance slowly building up until you ~rage quit~ give up for the day.

To rid myself of this frustration, I make my tests faster. Fundamentally, there are only 2 core principles to speeding up your tests without impacting their contents:

  • Do things simultaneously — Maximize CPU usage
  • Do fewer things — Reduce CPU time

Caching is a way of doing fewer things. In Robot Framework, there are 5 levels of caching:

  1. Test variable
    Store a value and reset it when the test finishes.
  2. Suite variable
    Store a value and reset it when the test suite finishes.
  3. Global variable
    Store a value and reset it when the test run finishes.
  4. Pabot variable
    Store a value, share it with parallel test runners, and reset it when all tests finish.
  5. Cache file
    Store a value, share it with parallel test runners, share it with the future test runs, and reset when the expiration time has passed.

Categorize / Tags:

cache, performance, reuse

Is this suitable for ..?: Intermediate RF User, Advanced RF User Describe your intended audience:

Everyone with a sizable test set. Especially people with slow test sets.

I'm a technical tester that focuses on automation. To me, a test that's worth doing is also worth automating. I combine my technical expertise with the human and organizational sides of testing. Technical solutions are great, but the bigger challenge is making people use them at scale.

I think it's fun to create something new. I think complexity is fun and more complexity is more fun. I use my programming skills to tame complexity.