REST client for exploratory testing

How to test APIs without using a complex or bloated tool

REST client for exploratory testing.

To explore APIs and test them, you need a REST client. There are many options available, but most of them are either too complex or too bloated. You don't need a tool that can do everything, you only need a tool that can make the HTTP requests you want to look at.

That's one of the major reasons we created Headrest.

Headrest won't need any coding either. This is great even if you are a developer, because you can focus on the API and not on the code.

Control

To explore, you need to be able to control all the aspects of the HTTP requests. You need to be able to change the HTTP method, the URL, the headers, the body and so on, in a way that existing automated tests don't.

That's the entire point of exploratory testing. You need to be able to change everything, and see what happens.

Simplicity

If the tool for making HTTP requests is too complex, you will spend too much time learning how to use it. You will also spend too much time trying to figure out how to do the things you want to do.

Worse, even when you are familiar with the tool, you will still be distracted by those things that you never use (because you never need them), but are in your face all the time.

No code

Coding is great when automating complex flows. But when you are exploring, you need to be able to do things quickly and it will simply distract you.

Exploration is about doing things differently, perhaps in ways that the software was not designed for. That's why you need something that just allows you to point and click and see what happens.

Headrest — the UI the APIs never had

APIs, by definition, don't have a user interface. Even when they are used by a user interface, when you are testing them, you are not using that user interface. You want to explore the API directly, otherwise, if you find some issue, you won't know if it's the API or the user interface that is causing it.

At the same time, you don't want to use curl (or a similar tool), because it will just slow you down.

So you need something like it, that has a nice UI that's easy to get used to, and that allows you to do everything you need to do.

This way, Headrest is, in fact, nothing but a UI for the APIs you're trying to test. It's the UI they never had.

Simple, but not simplistic!

Headrest is simple, but not simplistic. It's still going to allow you to organise your requests, to save them and make sure you're not going to type a lot or try to remember everything — URLs, headers, params etc.

There are also some repetitive tasks that you do all the time, like authenticating and getting a JWT token or chaining multiple requests to get some data. Headrest will allow you to do all of that, without having to write any code.

Variables and environments

These will be the most advanced features of Headrest. They will allow you to create variables and reuse them in your requests, chain calls and switch between environments without much effort.

They are very powerful features, because they will allow you to create complex flows (that automated tests rarely do) without spending too much time on setting them up. And this is great because it saves all the time and the brainpower to focus on the actual exploration and finding issues.

Read more

Read about using variables in Headrest

Read about using environments in Headrest