My current project is testing a new REST API to be used to integrate my classic product with a product from another part of the company.
OK fine. I’m not an expert with REST yet, but Robot Framework and the RESTinstance library for it is now a toolset I’m pretty comfortable with for functional testing. No problem there.
Thing is … for this project, nobody is worried about functionality and functional testing. It won’t be trivial to get good coverage for all the needed combinations, but we’re confident we can get all that stuff working for single threaded access to small-to-moderate data sets.
Everyone is worried about performance.
This project is meant for large scale deployment. Queries and data retrieval will be going after really large data sets, and while there will be only a small number of simultaneous users of this new interface, there will be much more extensive legacy queries and retrieval going on, hitting the same data at the same time. Resource contention – yeah.
So I’m actually back in familiar territory – load testing, early and often! Get a simple load scenario going as soon as you can get a single transaction to run end-to-end. Except we aren’t talking about phone calls, so the tools I would automatically reach for are not relevant. And though my product has a good performance test environment and tools, this is the first time REST performance has been relevant, so there’s no REST tooling to just pick up and use.
I remembered that about a year ago, I went to a talk about integrating performance testing a web site into the CI Pipeline for it, and the presenter showed us JMeter results. So I did some brief web searches, downloaded JMeter, and followed a getting-started demo to make it run a few “tell me what version you are” API calls into my lab system. Yeah, this does what I need it to, and I’m probably not going to need to go much beyond demo-grade complexity for my test scenarios, because I’m not testing a web site. Tooling problem solved, and as soon as my Dev gets the first search working end-to-end, I’m going to start bashing it. He likes this idea. I am very much looking forward to the demo I’m going to do for my project team.
This is why you go to professional talks about stuff you (currently) have no use for. When you’re suddenly faced with the need to do something you’ve never done before, you remember a presentation about it, and you have a starting point.