Skip to main content

Day 5: Working with JSON responses

Day 5: Working with JSON responses

On Day 5 of Rest Assured training, we will focus on working with JSON responses. JSON (JavaScript Object Notation) is a lightweight data interchange format that is widely used in web applications. JSON responses are returned by most of the APIs, and it's essential to know how to parse and validate these responses.

Rest Assured provides multiple ways to work with JSON responses. The most commonly used ones are JsonPath and Matchers. JsonPath is a library that provides a simple way to extract values from JSON documents. It's similar to XPath, but it's designed specifically for JSON data. Matchers, on the other hand, provide a set of methods to validate JSON responses against expected values.

To work with JSON responses in Rest Assured, we need to include the json-path and json-schema-validator dependencies in our project. Once we have these dependencies, we can use the get method to send a request to the API endpoint and retrieve the JSON response. We can then use JsonPath and Matchers to extract and validate the values from the response.

JsonPath provides a simple syntax to extract values from JSON documents. It uses dot notation to navigate through the JSON document and extract the values. For example, if we have the following JSON response:



     {
  "name": "John Doe",
  "age": 30,
  "email": "johndoe@example.com"
}

We can extract the value of the name field using the following JsonPath expression:


     $.name
     

Matchers, on the other hand, provide a set of methods to validate JSON responses against expected values. For example, we can use the equalTo method to check if a value in the JSON response is equal to an expected value. We can use the hasKey method to check if a JSON response contains a specific key.


In summary, working with JSON responses is an essential skill when working with APIs, and Rest Assured provides a convenient way to parse and validate these responses. We can use JsonPath and Matchers to extract and validate the values from the JSON responses.

Comments

Popular posts from this blog

How to integrate Autoit with selenium

For handling Dialog boxes which are not web based, Then Autoit is the best Tool to handle this These are the following code should written in Selenium Selenium Code: try { String[] commands = new String[] {}; commands = new String[] { "Path" }; // location of Autoit EXE file Runtime.getRuntime().exec(commands); } catch (IOException e) { } Autoit code: if WinWaitActive("File Upload") Then ;MsgBox(2,"window found","Found the window") WinActivate("File upload") Send("!n") Sleep(5000) Send("File path") SEND("{ENTER}") ;location of the file you want to a to the form and submit ;Send("!O") Else MsgBox(1,"TimeOut","Timed out") EndIf Here we need to create a Exe file for the Autoit script and that path should be mentioned in selenium code.

Reflection API

The Reflection API allows Java code to examine classes and objects at run time.The new reflection classes allow you to call another class's methods dynamically at run time. With the reflection classes, you can also examine an instance's fields and change the fields' contents. The Reflection API consists of the java.lang.Class class and the java.lang.reflect classes: Field, Method, Constructor, Array, and Modifier. Example program: import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; // calling method whose name we store in a variable public class ReflectionAPI { public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { String x="sampleTest"; //String meth=read name from xls file Method method= ReflectionAPI.class.getMethod(x, String.class); method.invoke(method, "welcome"); System.out.

Collection API

CollectionAPI: The Java Collections API's provide Java developers with a set of classes and interfaces that makes it easier to handle collections of objects. In a sense Collection's works a bit like arrays, except their size can change dynamically, and they have more advanced behaviour than arrays. Example program: import java.util.ArrayList; import java.util.Hashtable; public class CollectionAPI { /** * @param args */ public static void main(String[] args) { int names[] = new int[5]; ArrayList list = new ArrayList (); list.add("Ramu");//0 list.add("Venu");//1 list.add("Raju");//2 System.out.println(list.size()); for(int i =0; i<=list.size(); i++) { System.out.println(list.get(i)); } // key - value // key - unique Hashtable table = new Hashtable (); table.put("name", "Hyderabad"); table.put("place", "Mumbai"); table.put("na