Schema Validation Using Postman and Newman
This quick read will help in understanding :
- Problem Statement
- What is schema testing
- Why do we need schema testing
- How postman collections and Newman can help with schema validation
- Example Repository
- Problem Statement
Contract or Schema changes in Microservice world
2. What is schema testing
Schema is a contract for document that defines the expected data types and format of each field in the response.
In the below example JSON object is the response from some api and we have corresponding JSON Schema just below it. So if the expected schema matches the actual schema, test is pass.
Create schemas from here- https://jsonschema.net/home .
3. Why do we need schema testing?
In Distributed Microservice world we face frequent contract change challenge between consumer-service and provider-service. Best solution for the issue is Consumer Driven Contract Test which can be achieved by using PACT or Spring Cloud Contract.
Quick read on Spring Cloud Contract-
Above solution will work only when producer and consumer repository access is available. But in majority scenarios producer doesn’t allow any changes in their repository.
So we can only check on consumer side to verify if the producer is adhering to the agreed communication schema. Postman Collection and Newman can help here.
4. How postman collections and Newman can help with schema validation
Pros:
- Quick Setup
- We monitor API responses and ensure that the format that we are getting is same as the expected one.
- We get alert whenever there is any breaking change in JSON response.
- Some confidence if CDC — Consumer Driven Contract is not implemented.
Cons:
- Its more of the check on schema than solution
- We are not checking consumer side schema update. So regular maintenance is required
- Feedback is late compared to Consumer Driven Contract
5. Example Repository
Please take a pull from https://github.com/RajatADP/schemaValidator.
Conclusion
This document describes a way of how you can use postman collection with newman to perform schema validation.