"As a need for fresh air in this space, Bruno has come at just the right time."
Fun Fact: The tool's creator named his pet dog 'Bruno.' Bruno currently holds the position of Chief Joy officer at the firm!
Want to try something new?
Hello testers and other software enthusiasts! Have you heard about the new API client, Bruno? It might be just what you're looking for. Its user base is growing exponentially and it boasts an ever-increasing number of stars on GitHub.
Briefly stated: Bruno is an open-source API client with an MIT License. It can be used with REST and GraphQL APIs. And it's getting more and more attention from development teams and the tech press; Thoughtworks Technology Radar featured Bruno in April 2024 after several of their teams started using it.
I have come to believe that the tools for developing for and testing APIs have become far more complex than their initial creators may have intended. Years ago, when these tools appeared on the market and in open source software collections, they were simple API clients. Now they are end-to-end platforms for API creation, maintenance, and documentation. It can be helpful to combine several types of features in a single tool, but many people in the tools' user bases are put off by the moves to the cloud and requiring the user to log in to do anything. And so it was that Bruno's founders introduced their new idea to the market. Bruno is being adopted by developers and testers alike, and a user base of over 100,000 and counting is testimony to the value it adds to their work.
Why Bruno?
Why bother creating yet another API client? Aren't there enough out there already? Let's see what Bruno has to offer that's new and different.
Staying out of the cloud and keeping your organisation's data safe
Over the past few years, most of the well-known API clients have become increasingly intrusive, raising security concerns at many organisations. Not only do they ask you to log in to use them, but they are also exclusively cloud-based, making you question the security and ownership of your data. Organizations want to be in control of their own data, not only to protect their interests but also for compliance and security.
In contrast, Bruno works offline and eliminates the need to log in to work on it. It's pleasant to work with because it's lightweight and responsive. And you don't have to worry about sensitive test data being uploaded to the cloud.
A streamlined, enjoyable developer experience
While data security concerns the business stakeholders the most, what about developers and testers? The traditional tools are known for their lack of user-friendliness. The creators of Bruno have actively sought to present a different experience.
An easy-to-use domain-specific language (DSL)
When you try using Bruno, the user experience looks familiar, but don’t assume that it works like other API clients. First of all, Bruno uses its own DSL language. The creator believed it was necessary to avoid the best-known formats, JSON, YAML and TOML, in favor of version-control friendly ways of writing your API requests in collections. So they introduced Bru, a language that is easy to read and enables easy tracking of changes in the API requests when collaborating within teams. Your pull request flows will likely become cleaner and clearer with Bru.
The founder envisions Bruno API collections to be part of the API development cycle, living in the same repository as the back-end code of an application. However, you can add the collections to a test code repository instead if you want.
Each API request in Bruno is a .bru file. Each of these files has three blocks: Dictionary, Text and Array. Apart from these, Bru uses tags with literal names like get, put, post, delete, body, and so on.
Cross-platform compatibility
Bruno is available for Mac, Windows, and Linux.
And for test assertions, one of the most popular libraries, Chai, is used.
Fun fact: Bruno’s creator started working full-time on it only very recently (January 2024). Until then it was just a side project!
Out for a walk with Bruno
There are quite a few features that I appreciate about this tool, but I would urge you to try these three as a start:
Work offline and choose your user interface
Once you download and start working with Bruno, there is no need to log in, and you can work completely offline.
Different users have their own style of working and ways of interacting with APIs. To facilitate this, you can run Bruno in a few different ways, including :
- Desktop app
- Command line
- As a Visual Studio extension
Check out the folder structure and configuration file handling
Bruno's API collections live as files in folders on your filesystem. Each request in the collection is organized in the folders in the same way as the collection structure visible in the Bruno front-end app.
Each collection has a set of one or more environments, and sharing collections is easy. The user interface makes it easy to visualize the collections, which is quite a few steps up from dealing with a single huge JSON file for each collection. And that makes Bruno collections GitHub-friendly. Even the proxy settings are at the collection level. To sum up, if you share a collection with someone, they can use it right away on their own system, without wasting time on setup.
Added bonus: It's a snap to hide API keys, secrets, and passwords with Bruno.
Try a hassle-free import from other major API clients
If you don't like working with your current API client, there's a migration feature built into Bruno so you can get started quickly.
Something for the future…
It's refreshing to be able to make a change to a collection file in an IDE and see it right away in Bruno's front end, and vice versa.
However, the tool is still very new and lacks a few features that would be helpful, such as support for both HTTP and HTTPS proxy at the same time. But as the user base grows, it's likely that these features will be added.
Who should try Bruno?
For me, this tool is easy to use. And I believe that it can be used by a broad range of software enthusiasts:
- University students entering the software world can play with and explore APIs with Bruno.
- Working development professionals who have to work on APIs daily can make Bruno a part of their back-end code.
- Junior testers can use it to get better at API testing and test scripting.
- Seasoned testers can indulge in creating elaborate test frameworks.
What's next?
As a need for fresh air in this space, Bruno has come at just the right time. It is almost as if the present tools created the need for Bruno. The ideas and vision reflected in Bruno make it appealing to developers and testers alike.
Go ahead, give it a try and let me know in the comments below how you feel about it. If you have questions, the Bruno community is friendly and helpful! And if you're convinced that Bruno is for you, you can support the open source project by buying the Golden edition.
For more information
- Exploratory Testing an API, Maaret Pyhäjärvi
- Jumpstarting Your API Test Automation: Which Test Creation Tool Is Easiest To Learn?, Ejob Gaius
- Dynamic Security Testing Your Web Application API, José Carrera