REST Assured Tutorial 20 – How to Send a JSON/XML File as Payload to Request
As a part of End to End REST Assured Tutorial , in this post We will learn about “How to send a JSON/XML file as payload to request in Rest Assured”.
Suppose you have a request payload (JSON or XML) in a file and you required to directly send that file as a payload to request in stead of reading it first and then passing. Sending file as a payload directly is a good idea when you have static payloads or minimal modification.
“body()” method of RequestSpecification interface is a overloaded method to allow you to pass payload in different ways. We will use body() method which accepts “File” as argument. Javadoc is below:-
Step 1:- Create a .json file and write payload in that. Keep the file in “src/test/resources” folder.
Step 2 :- Create a File in Java using “File” and pass to body() method.
package DifferentWaysOfPassingPayloadToRequest; import java.io.File; import org.hamcrest.Matchers; import org.testng.annotations.Test; import io.restassured.RestAssured; import io.restassured.http.ContentType; public class PassFileAsPayload { @Test public void passFileAsPayload() { // Creating a File instance File jsonDataInFile = new File("src/test/resources/Payloads/AuthPayload.json"); //GIVEN RestAssured .given() .baseUri("https://restful-booker.herokuapp.com/auth") .contentType(ContentType.JSON) .body(jsonDataInFile) // WHEN .when() .post() // THEN .then() .assertThat() .statusCode(200) .body("token", Matchers.notNullValue()) .body("token.length()", Matchers.is(15)) .body("token", Matchers.matchesRegex("^[a-z0-9]+$")); } }
Step 1:- Create a .xml file and write payload in that. Keep the file in “src/test/resources” folder.
Step 2:- Create a File in Java using “File” and pass to body() method.
@Test public void passXMLFileAsPayload() { // Creating a File instance File jsonDataInFile = new File("src/test/resources/Payloads/AuthPayload.xml"); //GIVEN RestAssured .given() .baseUri("https://restful-booker.herokuapp.com/auth") // Since I am passing payload as xml. Anyway it is optional as Rest Assured automatically identifies. .contentType(ContentType.XML) .body(jsonDataInFile) // WHEN .when() .post() // THEN .then() .assertThat() .statusCode(200); }
You can clone/download example repo here.
If you have any doubt, feel free to comment below.If you like my posts, please like, comment, share and subscribe.#ThanksForReading
#HappyLearning