Heroku Testing Tools You Should Know
Depending on the complexity of a web application, writing tests is as important as actual development. Without tests covering much of the written code, then the optimistic view for a development process is that 50% of the time will be used for development and 50% for debugging.
The purpose of the tests is to reduce the time for detecting and solving initial problems or those that will occur in the future.
Fortunately, today we have a multitude of tools that we can use to make this process much easier to undertake but also to manage. With the help of PaaS-type platforms such as Heroku, installing and configuring these tools is a breeze.
To make this process easier, below I have written a list of these testing tools that you can use as add-ons for your application, along with a few pros and cons for each.
2. Loader.io
One thing you often want when it comes to testing is to see how much load your server can carry.
Loader.io is best suited for this step.
For example, you can get a baseline of your current request per minutes that your app receives, so that you know how much traffic your infrastructure can handle. After, you can use this tool to simulate double or triple the number of requests.
In this way you will know when your app will start to fail, by sending back errors or timeouts.
Pros
It comes with a free plan or paid plan
Great load testing and stress testing tool that is easy to use and which allows you to simulate up to 10,000 concurrent users
Tests can be scheduled
You can keep a history of past tests, which can be useful to know if the application performance has decreased due to code changes or other factors.
Cons
The interface could definitely be improved.
3. Parrot QA
In addition to stress and regression tests, another important aspect is quality assurance.
Parrot QA is a functional cross-browser tester that you can use to test your web application without writing a line of code.
The benefit of this tool is that you can navigate to the desired web page and then create tests by clicking on the elements visible in the browser.
Parrot QA is can also be used to record a test in order to set the test dependencies and expectations and also to address regressions and bugs when we you find them.
Pros
You don’t need prior knowledge in testing at all
You can run your tests in multiple browsers
Tests can be scheduled
It can record your actions and execute tests based on your actions
You can create teams and include multiple members
CI/CD support
Cons
only paid plan
3. Loadmill
The first tool on this list is Loadmill. At the time of this article, this plugin is still in Beta mode, but it's definitely worth a try. Loadmill is great if you want to automate your regression tests and integrate it with the CI pipeline from Heroku, so that your tests can be run at each deployment.
At the same time, a great feature it has is that it allows you to run the load tests by simulating real user behavior, so you can measure response time and throughput in different regions to find the best dyno configuration for your app and to cut costs.
Some other pros of this tool are:
It comes with a free plan or paid plans
It’s easy to use with no configuration
It can import recorded HTTP traffic such as HAR files
Github integration
Tests can be scheduled at a predetermined time interval, which can inform you when problems occur in production environment
It can propagate the answer from one request to the others, so you can test both authenticated and protected routes
It comes with an npm package
Conclusion
Testing is an important step and when it’s done well, it only brings benefits. However, it is important to first identify the points where your application might have problems and then choose a testing tool suitable for your case.
If you think that your application will have a low number of users most of the time, but on certain days it will have a very large number, then it is best to do load testing and stress testing. If the number of users is constant, but you deliver many versions to production at short intervals, then the most appropriate would be regression testing, so that you can be sure that between changes you have not broken anything.
The idea is to choose the tool that fits your needs, and if you think that all of them are useful then, depending on the application, you can even combine them.