til

Today I Learned: collection of notes, tips and tricks and stuff I learn from day to day working with computers and technology as an open source contributor and product manager

View project on GitHub

Use Bruno

Bruno is an alternative to Postman. It is a tool that allows you to make HTTP requests and see the responses. It is a great tool for testing APIs.

The UI application is nifty, but if you prefer the command line, then that is doable too.

Create a directory for your collection.

Add a file named: bruno.json with the following content, do remember to give provide a name that is meaningful to you.

{
  "version": "1",
  "name": "Reqres tests",
  "type": "collection"
}

In the same directory, you can then add information on your requests as separate files.

meta {
  name: List users
  type: http
  seq: 1
}

get {
  url: /api/users
  body: none
  auth: bearer
}

headers {
  Content-Type: application/json
}

auth:bearer {
  token: 
}

assert {
  res.status: eq 200
  res.body.page: eq 1
  res.body: isJson
}

tests {
  test("Charles should be in the list", function() {
      const users = res.body.data || [];
      expect(users.some(user => user.first_name === 'Charles')).equals(true);
  });
}

If we put the above in a file named list_users.bru, then we can run the collection with the following command:

Running Request

list_users (getaddrinfo ENOTFOUND api)

Requests:    0 passed, 1 failed, 1 total
Tests:       0 passed, 0 total
Assertions:  0 passed, 0 total
Ran all requests - 0 ms

As you can see, the request failed because we did not provide a host. We can do that by adding a file named .env with the following content:

{
  "host": "https://reqres.in"
}

TODO: More to come

Resources and References