API Testing: types and tools
By: Slav Kurochkin
API testing is the subject of testing I'm discovering right now. The questions I have is: what is the goal, how and why we should perform API testing? What is the difference between API assurance and API stress test, what tool we should use?
API assurance - basically as QA Engineer you sending request and assuring response you getting back: headers, body and status code.
Once you set the goal, how can you perform tests and what tools should you use? Well, it is all depend on what you more comfortable with: UI tool or Code. Here is what I selected for my needs:
1. Postman - it is nice tool which (for 10$ license) allow you to run tests automatically and have organized and clean reports. You also can perform simple stress tests. There is 14 days trial, I would recommend to read "How to write automated tests for APIs using Postman". Overall impression great tool with nice UI
2. Rest-assured - well I picked rest-assured, since our Automation Framework is written in BDD, and I kind of like concept of keeping everything consistent, in article "REST Testing with Java Part Two: Getting Started with Rest-Assured" posted by Joe Colantonio / February 26, 2014, explained benefits of using rest-assured, so thanks to Joe we found out that it is what we need and started using it for our project. Impression: it is definitely must tool for those who already practicing BDD (Behaviour-Driven Development)
API stress testing - simply it is bunch of threads sent to server. You should ask yourself what would happen if you send 1000 requests will the system handle it and if so how long will it take to get all responses back.
There is lots of tools you can pick, one of our goals been: tool should be open source. Here is great article comparing ""Open source load testing tools.. We end up using JMeter since it is well known open source Load Testing tool.
Update: Just found interesting article by Alan Richardson: Some API Testing Basic Introductory Notes and Tools