Automate Rest API test and integrate this with Con

2019-02-09 00:25发布

问题:

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?

回答1:

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.



回答2:

The RestAssured code you have posted will work just fine for basic cases. It's not necessarily the "right tool" if you want to:

  • continuously add new test case and don't have many resources
  • propogate alerts with well-formed error messages (especially to places like Slack or GitHub)
  • reduce false-positives
  • re-use the same tests for monitoring

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