Suorituskykytestauksen automatisointi ja liittäminen jatkuvaan integraatioon
Lahtinen, Hannu (2017)
Lahtinen, Hannu
2017
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2017-06-07
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201705241462
https://urn.fi/URN:NBN:fi:tty-201705241462
Tiivistelmä
Monivuotisessa ohjelmistoprojektissa havaittiin suorituskykyongelmien tulevan ilmi liian hitaasti. Ongelmat havaittiin monesti jopa kuukausia sen jälkeen, kun ongelman aiheuttanut koodi oli liitetty järjestelmän osaksi. Suorituskykytestaus oli manuaalista, mikä johti siihen, että testausta tehtiin liian harvoin ja tulokset eivät olleet luotettavia. Suorituskykytestauksen automatisointi mahdollistaa päivittäisen suorituskykytestauksen ja automatisoinnilla voidaan poistaa tulosten luotettavuuteen vaikuttaneita tekijöitä. Tämä työ kertoo, kuinka koko suorituskykytestausketju automatisoitiin ja käyttäjän käyttötuntuma-arvio korvattiin ohjelmallisilla mittauksilla.
Testauksen kohteena on asiakas-palvelin-mallin johtamisjärjestelmä, joka saa ulkoisista järjestelmistä tilannetietoja ja koostaa niistä karttapohjalle lähes reaaliaikaisen tilannekuvan. Käyttäjän on mahdollista manipuloida kartan näkymää ja antaa käyttöliittymässä syötteitä, jotka järjestelmä lähettää ulkoisille järjestelmille.
Järjestelmän suorituskykytestaus automatisoitiin toteuttamalla toistettavat kuormitusskenaariot. Skenaariot keskittyvät ominaisuuksiin, jotka eivät muutu järjestelmän kehittyessä, jolloin testituloksia voidaan kerätä ja verrata pitkällä aikavälillä. Kuormitusskenaarioissa toistetaan tilannetietoja sovelluspalvelimelle nauhoitteen ja generaattorin avulla ja operoidaan samalla käyttäjäsovellusta testiautomaatiotyökalun avulla. Kuormituksen ajalta kerätään läpimenoajan ja käyttöliittymäviiveen mittaustuloksia sekä resurssien käyttöastetietoja. Lisäksi toteutettiin jatkuvan integraation palvelimelle useita tehtäviä, joilla hallitaan kuormitusskenaarioiden suoritusta ja mittaustulosten keräystä. Jatkuvan integraation palvelimen tuottamat järjestelmäversiot testataan automaattisesti uusien tehtävien avulla.
Testauksen kohteena on asiakas-palvelin-mallin johtamisjärjestelmä, joka saa ulkoisista järjestelmistä tilannetietoja ja koostaa niistä karttapohjalle lähes reaaliaikaisen tilannekuvan. Käyttäjän on mahdollista manipuloida kartan näkymää ja antaa käyttöliittymässä syötteitä, jotka järjestelmä lähettää ulkoisille järjestelmille.
Järjestelmän suorituskykytestaus automatisoitiin toteuttamalla toistettavat kuormitusskenaariot. Skenaariot keskittyvät ominaisuuksiin, jotka eivät muutu järjestelmän kehittyessä, jolloin testituloksia voidaan kerätä ja verrata pitkällä aikavälillä. Kuormitusskenaarioissa toistetaan tilannetietoja sovelluspalvelimelle nauhoitteen ja generaattorin avulla ja operoidaan samalla käyttäjäsovellusta testiautomaatiotyökalun avulla. Kuormituksen ajalta kerätään läpimenoajan ja käyttöliittymäviiveen mittaustuloksia sekä resurssien käyttöastetietoja. Lisäksi toteutettiin jatkuvan integraation palvelimelle useita tehtäviä, joilla hallitaan kuormitusskenaarioiden suoritusta ja mittaustulosten keräystä. Jatkuvan integraation palvelimen tuottamat järjestelmäversiot testataan automaattisesti uusien tehtävien avulla.