For the purpose of running tests and introducing regressions, a separate environment was configured to achieve stable results and to enable the adequate measurement of the differences that are indicated after the introduction of optimizations.
The tools used were selected according to the type of tests required. For the API (Application Programming Interface) tests, scripts were written in JavaScript using the previously mentioned K6, where the metrics to be included in the reports for each endpoint were precisely defined. The parameters used include a variable and fixed number of users simultaneously using the application, generating a load assuming the execution of complex operations for which it was necessary to transfer large amounts of data from the database. In the GIU (Graphical User Interface) tests, Artillery using Playwright was utilized. In this case, detailed metrics were also established as in API tests. An additional advantage of this type of tests was the ability to measure the times it took to render the content visible to the user on the monitor screen. The need arose as a result of analyzing the characteristics of the application – performing complex operations on the backend correlated with showing content on the frontend visible to the user waiting for complex tables, graphs, or charts to be displayed.
The performance tests in the above project helped obtain measurements indicating the so-called bottlenecks among API endpoints. The knowledge gained by the team facilitated the development of an optimization plan, its implementation, and subsequent regression testing under identical environmental conditions, resulting in a reduction of response time by as much as 75%.