У роботі вивчено можливість побудови розподіленої системи для навантажувального тестування із використанням інструментів, що перебувають у відкритому доступі, а саме Gatling,
InfluxDB, Grafana, Logstash, Docker та Jenkins. Описано підхід для подолання обмежень інструменту з автоматизації тестування продуктивності Gatling, а саме обмеження, що не дає змоги побудувати власну систему розподіленого навантаження "з коробки". Це рішення інтегровано у безперервне постачання коду на основі сервісу Jenkins і випробовувано із централізованим звітуванням
результатів у реальному часі. Цю систему було розроблено на противагу представленим на ринку
комерційним рішенням, що надає їй більшої гнучкості.
The digital system performance is a separate engineering science that includes approaches and practices for building and optimizing systems at all levels – from physical devices, network, to writing highly
efficient algorithms. At the same time, any digital solution that is designed and built should be tested, preferably under real conditions, including performance testing or as it is often called load testing.
Performance testing is designed to simulate the real usage conditions of the system and load on it in order
to find out its potential bottlenecks.
However, to implement this type of testing without special software tools is almost impossible. The performance testing system itself should also meet certain criteria and requirements, the implementation of
which will make possible an effective testing. Thus, to test large (including distributed) information solutions, it is necessary to build a distributed system for its load. In addition, it may be necessary to create such
a load simultaneously, for example, from different continents.
Moreover, large-scale testing produces large amounts of resulting data that need to be collected and
tracked in real, allowing to respond quickly to errors or other problems.
The relevance of this topic is that, despite the presence on the market of commercial tools for such testing, it is often necessary to build own (project specific) system to display either more required metrics, or
the inability to use third-party systems or budget restrictions, or all together.
This paper explores the possibility of building such a distributed solution for performance testing using
open-source tools such as Gatling, InfluxDB, Grafana, Logstash, Docker and Jenkins. Gatling is the main
tool for load testing, but its open-source version does not allow to implement scaled testing "out of the
box". The main limitation is that even if you run several test processes from different servers at the same
time, the report will be generated separately on each one and will not show the overall picture.
This problem has been solved by using such a tool as Logstash which is described in this paper. Additionally, this solution has been integrated into the continuous integration based on Jenkins service and
successfully tested with centralized real-time reporting using Grafana service