How to become an automation expert in restful api testing ?
Is this similar to microservices testing or is that a different approach ?
Start from learning REST API testing. REST is just an architectural paradigm, however most often it is implemented over HTTP protocol. So if you mean such the REST API then I would recommend to learn:
- Some programming language basics
- Learn how to interact with remote services using HTTP(s) protocols in that chosen programming language
- Select some service to practice on (if your current job does not let you use one, you can just find a lot of examples in the Internet)
- Apply common principles of test design to design the tests that you would run if you would execute manual testing for the service
- Code those tests (api tests are the tests which can be converted from the manual to automated state in the most effective way since API is somewhat originally intended to be used from the code)
These are the steps for mastering REST API automation testing skills.
Testing micro services depends on how they are implemented. It might be enough to master REST API testing to be able to smoothly move to micro services conception. However sometimes one would need to learn CI processes in general and some concrete frameworks like Docker.
- Read books
- Attend meetups
- Organize meetups
- Browse this site daily
- Learn about HATEOS
- Post questions and answers here
- Read questions here on API's https://sqa.stackexchange.com/search?q=restful+api
Microservices generally communicate to each other using REST. So learning REST is a good place to start. I would just familiarize yourself with REST and Postman, SoapUI.
Microservice testing has a much broader scope than REST API testing. There are a lot of places where a software stack of say 50 microservices can go wrong. Also, there will probably be message queues and databases and load balancers in the mix. Being able to pinpoint where, or at least the general area, an application is failing really requires familiarity with the system.
I see the difference as one between a technology and a methodology.
API's (most commonly REST API's) are a specific technology for allowing applications to communicate with each other over a network.
Microservices are an architecture of small distributed applications performing specific functions (which usually communicate with one another over an API).
I'd definitely suggest learning more about REST API's before diving into microservices. If you decide to do so you should definitely read up on the pros and cons of microservices vs monoliths. They are a popular solution right now, but aren't right for every problem.