Load testing REST API
I'm exploring different tools to load test REST API. LoadUI, gatling and The Grinder were the different tools that I have identified.
1. Have anybody used these tools and can you please provide your inputs in terms of comparison?
2. As I'm new to load testing of REST API's, what are the different scenarios that I need to look for?
3. Is there a good document or an article for Load testing REST API's that I can start off with?
Your inputs would be much appreciated.
REST layers on top of HTTP for transport, therefore any HTTP protocol based testing tool can be used to test REST API interfaces
Representational state transfer - Wikipedia, the free encyclopedia
Client architecture is a foundation skill for performance testers, independent of tool.
Out of those tools, I've only used Grinder in evaluation (not in real world load testing, just some in house proof of concepts). What I like about Grinder is it uses Java programs you write, then it runs it multi -threaded, multi-process across many agents. My impressions are this is good for distributed load testing, and if you need to implement custom logic in your load test. I think this tool might be harder to use than most load testing tool due to it needing to write Java code to implement the load test vs. a simple record and playback functionality. This is good for things that might require a challenge/response or A/B flow testing (where the flows are complete change in page sequence, most likely not applicable in public facing REST APIs), in that you write code to do anything you want it to do. But harder in that it might be hard to adapt tests quickly since you can't simply re-record them.
In terms of open source / free tools, you may want to checkout JMeter (probably the most popular), and Seige. These are more popular.
Apache JMeter - Apache JMeter?
JoeBlog Siege Home
Right now I'm using SOASTA. It's not open source, but uses a freemium model. I can run tests up to 100 vu in house, then when I need to load test on a production settings, I can push the test into the cloud to run there, then just pay for Amazon and SOASTA minutes.
I have been using JMeter to performance test REST API for the last 6 months. So far, it has done everything we have needed over HTTP and HTTPS. We did evaluate Grinder, CloudTest, and Load Runner but we went with JMeter because more of us had experience with it and we knew we could get up and running quickly. Grinder looks like a great tool and I hope to try it more as our tests become more complicated.
Tags for this Thread