A while ago, I started using the Insomnia REST Client for exploratory API testing. I was initially drawn in by its clean UI and ease of use. I keep using it thanks to three features that allow my team to be more productive when messing around with new APIs.
One great feature of Insomnia is the ability to export and share workspaces. This becomes useful when you have team members who want to utilize an Insomnia workspace that you’ve built up over the course of the project. Instead of having them meticulously copy over each request, you can export a JSON document and share it with them!
Insomnia allows you to set environment variables that can be reused across multiple requests. For example, you can set a
base_url variable and use that across multiple requests to hit different REST endpoints on that URL.
The usefulness of this feature is amplified when combined with the ability to swap between different sets of environmental variables. On a recent project, our client had different backends for development, test, and production — each with its own URL. On top of that, each endpoint required standard HTTP authentication credentials, e.g. https://username:firstname.lastname@example.org.
To ease the friction of switching between each of those URLs, I created an Insomnia environment for each backend. In each environment I had
password variables, allowing me to quickly switch between and test each environment.
My favorite feature of Insomnia is the ability to chain requests. Let’s say you have an endpoint that provides a token that allows you to access other endpoints. With Insomnia, you can set up a request that hits a
generateToken endpoint, then use its response with other endpoints.
Insomnia has become an integral tool in my workflow when doing exploratory testing on APIs. What features do you love about your favorite HTTP client?