k6 – API performance testing tool

k6 is a developer centric open source load and performance regression testing tool for testing the performance of your cloud native backend infrastructure: APIs, microservices, serverless, containers and websites. It’s built to integrate well into your development workflow and CI/CD automation pipelines.

This is one of the better tools that I’ve seen in a long time. Not only it does its job great, but it integrates brilliantly with your development and testing pipelines.

You can either build your tests from scratch, or you can convert import them from your existing tools. For example, Postman collections, environments, and tests can be converted to k6 with postman-to-k6. Here’s a blog post to get you started on that path.

Side note: if you hit the “EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/postman-to-k6/vendor’” durin the postman-to-k6 installation, then simply append “–unsafe-perm=true –allow-root” to the “npm install” command, as suggested in this GitHub thread.

k6 provides excellent functionality for extending your basic performance tests with additional checks, metrics, and thresholds. You can even keep using your existing Postman tests within k6.

There’s also a variety of output formats, ranging from CSV and JSON, all the way to InfluxDB with Grafana charts.

Install Postman on Fedora 31

Postman is a great tool for building and testing APIs. Unfortunately, however, it doesn’t come packaged as an RPM, so there’s some trickery involved in installing it on Fedora.

This blog post was very useful, with some minor corrections. Here’s what I had to do:

  • Download Postman from the site.
  • Move the archive to somewhere global: mv Postman-linux-x64-7.16.1.tar.gz /opt/
  • Extract the archive: tar xzvf Postman-linux-x64-7.16.1.tar.gz
  • Remove the archive: rm Postman-linux-x64-7.16.1.tar.gz
  • Check which directories are in the path: echo $PATH
  • Create a symbolic link in one of path directories: sudo ln -s /opt/Postman/Postman /usr/local/bin/postman
  • Create the desktop file: touch ~/.local/share/applications/postman.desktop
  • Edit the file with the content below.
[Desktop Entry]
Name=Postman
GenericName=API Client
X-GNOME-FullName=Postman API Client
Comment=Make and view REST API calls and responses
Keywords=api;
Exec=/usr/local/bin/postman
Terminal=false
Type=Application
Icon=/opt/Postman/app/resources/app/assets/icon.png
Categories=Development;Utilities;

Now you can run Postman both via the command line (postman) and from the Gnome/Mate menu. You’ll find it under Applications->Programming.

dive – Docker image explorer

dive is a Docker image explorer. This is a very handy tool when you are trying to figure out how a Docker image was built and what’s in it, and you don’t have the original Dockerfile.

It uses the meta information for each layer to show you which command was used to create the layer, and which files were added, removed, or changed.

Additionally, you can use dive to make sure your Docker images are optimized and their size is under control. You can even integrate dive into your CI/CD pipeline!