Background: The Hungarian National Bank made a proposal to implement instant payment solutions in Hungary and launched it in March 2020. The purpose was to make payments available between Hungarian payment accounts within seconds, on a 24/7/365 basis. In our bank, we had already implemented this functionality by the end of 2019, but we needed a solution to test it. There were strict acceptance criteria that our solution should be able to handle a certain number of requests during working hours, another amount of requests during the evening, even fewer requests at night, and so on.
Goals: The goal of this project was to test the performance of instant payments.
Solution & Results:
We chose Gatling as the load testing tool and used Maven as the build tool. In the beginning, we ran these tests by hand but it was not sufficient, and since we wanted the tests to run after working hours, we needed an automated way. The other aspect is that we wanted to save test summary reports and it was difficult if every developer ran tests on his or her own machine.
I think this project would not have been possible without automation and Jenkins was the perfect fit.
We also needed to run these daily performance tests more frequently and in a distributed way. Determining that the jobs should be parametrized, we located the Parameterized Scheduler in the Jenkins Plugins index, with which we can schedule and run these tests for months. Hat-tip to the awesome community of Jenkins for that suggestion. We have eight Jenkins slaves, so the test distribution was easy with this setup. With the Jenkins Gatling plugin, every test summary was shown on the job's page, so our non-technical coworkers can easily view the latest results, as well as the previous reports and previous builds summary.
Key capabilities used include:
The results are typical of many other Jenkins installations: