API Tests Optimization — Reorganizing Tests

Image for post
Image for post
https://youtu.be/Bz77JGEKRrk

So far in the previous posts, we wrote a few API tests for various HTTP methods and we were relying on the data that already existed on our test site. The challenge with that is if the existing data changes or gets removed it’ll end up breaking our tests. Let’s take a look at how we can fix that.

Current test structure

This is how the tests have been structured so far:

So clearly with the DELETE test, we cannot run it multiple times as we are using existing userId and as a result, it would throw a 404 error.

Reorganize tests

So we can fix the above issue by simply reorganizing the way we have written our tests.

What we did here is moved our POST test on the top to create a new user and then passed the userId to the rest of the tests. This way despite how many times we run this test file it'll always work unlike the previous set of tests. 🙌

Now, I know there’s a downside to this also as all the tests are dependent on the first test but I’d rather prefer this over using existing data that we can’t control. 🤷‍♂️

Check out this video to see a detailed explanation of how I reorganized the tests:

https://youtu.be/Bz77JGEKRrk

You can also clone the GitHub repo to access this code

To learn more about API testing, check out my free tutorial series here -

https://www.youtube.com/watch?v=ZSVw3TyZur4&list=PL6AdzyjjD5HDR2kNRU2dA1C8ydXRAaaBV&ab_channel=AutomationBro

I hope this post helped you out, let me know in the comments below!

Happy testing! 😄

📧 Subscribe to my mailing list to get access to more content like this
👍 Follow @automationbro on Twitter for the latest updates

Written by

I enjoy discussing topics related to Test Automation | Quality Assurance | Web Dev. Check out my Youtube channel — AutomationBro

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store