Haku

Data-oriented approach for synthetic network traffic generation

QR-koodi

Data-oriented approach for synthetic network traffic generation

Abstract. A significant portion of dynamic websites, called web applications present dynamic information, which can be fetched from a backend pre-emptively or on-demand. For popular sites and applications, the increased volume of network calls and connectivity creates high performance requirements for the server side implementation. A failure to fulfill these requirements might lead to security vulnerabilities, high latency, logical malfunctions, and other issues.

Identifying and quantifying performance weaknesses is not trivial. Even if measurements are collected, they might not originate from a stable environment which allows truthful comparison between software versions. Often application programming interface (API) performance issues are found by accident while using the software, but a few more automated methods to find the issues have been created as well, such as automated end to end API tests.

In this diploma thesis, a case of web application software is studied with the goal of increasing its performance testing capability. A data-oriented approach to create synthetic network traffic for performance testing is prototyped. The approach consists of recording incoming network traffic at the server, finding user sequences within the traffic, which are then used to create a model of the users. The model can then be utilized to generate synthetic network requests, which have the same characteristics as real network traffic. The synthetic network requests are then used to generate load in a performance test environment. The approach is evaluated by its applicability for the use case.Datapohjainen lähestymistapa verkkoliikenteen syntetisointiin. Tiivistelmä. Suuri osa dynaamisista verkkosivuista eli verkkosovelluksista esittää käyttäjälle dynaamisesti tietoa. Tarvittava tieto haetaan tyypillisesti palvelimelta (jatkossa "backend"), jonne voidaan myös lähettää dataa. Suosituilla verkkosovelluksilla voi olla valtava määrä samanaikaisia käyttäjiä, mikä aiheuttaa suuren kuorman backendille. Mahdollinen suuri kuorma johtaa korkeisiin suorituskykyvaatimuksiin. Epäonnistuminen suorituskykyvaatimusten täyttämisessä voi johtaa tietoturvaongelmiin, pitkiin vasteaikoihin, loogisiin virheisiin tai muihin ongelmiin.

Verkkopalvelun suorituskykyheikkousten löytäminen ja tunnistaminen ei ole triviaali tehtävä. Vaikka ohjelman suorituksesta kerättäisiin tietoa, se ei välttämättä pohjaudu vakaasta ja toistettavasta ympäristöstä mitatulle datalle. Usein backendien rajapintojen suorituskykyheikkoudet löytyvät vahingossa rajapintaa käytettäessä, mutta muutamia automatisoituja keinoja heikkousten löytämiseksi on olemassa.

Tässä diplomityössä tutkitaan yhden verkkosovelluksen käyttäjien datapohjaista mallinnusta, ensisijaisena tavoitteena nostaa sovelluksen suorituskykytestauksen tasoa. Työssä kokeillaan datalähtöistä lähestymistapaa verkkoliikenteen mallintamiseksi ja syntetisoimiseksi. Lähestymistapa koostuu verkkoliikenteen nauhoittamisesta, käyttäjäsekvenssien tunnistamisesta verkkoliikenteen joukosta ja käyttäjien mallintamisesta. Mallinnettujen käyttäjien avulla voidaan luoda synteettistä verkkoliikennettä, joka muistuttaa ominaisuuksiltaan alkuperäistä nauhoitettua verkkoliikennettä. Synteettistä liikennettä käytetään suorituskykytestaukseen tarvittavan kuorman luomisessa. Lopulta lähestymistavan onnistumista ja sovellettavuutta arvioidaan.

Tallennettuna: