Automate Rest API test and integrate this with Continuous Integration(CI-Jenkins) Automate Rest API test and integrate this with Continuous Integration(CI-Jenkins) jenkins jenkins

Automate Rest API test and integrate this with Continuous Integration(CI-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.


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


We can integrate Jenkins and JMeter for automating RestAPI testing.

The reason for that is,

  • In Jenkins we can schedule our tests/builds in whichever way(every minute/hour/day/month.....) or based on the commits etc..

  • we can bundle n number of APIs together in JMeter and execute in a single test.(Maintaining is easy)

  • There is a jenkins plugin "Performance" which can be used to check the response time for each API call, which compares the response time with respect to the previous response times.
  • JMeter has an in-build threading feature, which helps execute tests much faster than any single threaded tests.

Screenshots:enter image description here

Steps

  1. We can prepare our APIs in JMeter

  2. Configure the tests in non GUI Mode in Jenkins.

  3. Install and Configure the Performance plugin in Jenkins.