I found many similar questions related to this.. but not the particular answer I am looking for. Actually my requirement is little different. So posting this.
I want to automate Rest APIs , and I got 2 options for same. 1st one is Rest Assured and second one is Play framework.
For exa. to test this RestAPI,
http://servername:9000/dbs/all/list/m1/p1/sch1
(This gives xml response) I have written a code in Java with Rest assured, and is working fine. I integrate this with Maven project so that can be integarted with Jenkins. Sample code:
import com.jayway.restassured
public class TestNGSimpleTest2 {
@Test
public void testApi() {
expect().
statusCode(200).
body("Status", equalTo("Su22ccess")).
when().
get("http://localhost:9000/dbs/all/list/m1/p1/sch1");
}
So my first question is: 1. Is the rest assured is the best tool to use? 2. Does Play framework is better? 3. I found many other tool like Jmeter, RightAPI etc. to test RestAPI. But I dont think this is automable. Am I right?
The RestAssured code you have posted will work just fine for basic cases. It's not necessarily the "right tool" if you want to:
Building these features takes time and resources which, depending on the size of your team may or may not be a good call.
Some of the commercial solutions you posted can solve some of these problems for you.
Assertible is a codeless solution that supports the workflow you described directly: https://assertible.com/blog/automated-api-testing-with-jenkins
For automating REST API testing, as a starting point I recommend using Postman and newman.
Postman provides an excellent UI for building requests, and newman is its command-line counterpart. After you create a set of requests and corresponding tests within the Postman UI, you can run the entire collection from Jenkins via newman, preventing a deployment if tests fail.