E2E-Loader: A Framework to Support Performance Testing of Web Applications
[Slides]Abstract
Performance testing is crucial to assess that Web Applications provide a good user experience under different workloads. A workload reproduces the interactions of a number of concurrent users with the system, to observe its actual behavior under stress.
Defining meaningful workloads is a key challenge in performance testing, and many solutions have been proposed in the literature to support testers in this task, mostly based on analyzing system logs describing real user behaviors. However, in our industrial and academic experience, we found that these solutions present some limitations, hindering performance testers’ applicability and productivity. In particular, (I) they require the system under test to be actually deployed in order to collect real user behaviors; (II) they offer limited support to automated management of data dependencies; (III) they lack support for emerging protocols, such as WebSocket.
In this paper, we present E2E-Loader, a novel approach to automate the design of performance testing workloads for web applications. E2E-Loader generates workloads by exploiting existing End-to-End functional test cases and can be used at an early stage, before the system is deployed and actual user behaviors have been collected. Our solution features full WebSocket support and includes a customizable heuristic to automatically detect data dependencies.
We empirically evaluate the proposed approach in an industrial case study. Results are promising and show that the workloads generated with E2E-Loader are generally comparable to those that were manually created by practitioners working with our industrial partner while requiring a fraction of the time to be obtained.
Finally, we make E2E-Loader and its source code publicly available for interested practitioners and researchers.