Terhelési tesztek definiálása kulcsfelhasználói folyamatok alapján

Befejeződött

A terheléstesztelés a folyamatos ellenőrzés fontos része. Első lépésként azonosítania kell az alkalmazásfolyamatokat. Ebben a leckében megismerheti a felhasználói és rendszerfolyamatokat, azok fontossági okait, valamint a tesztek tervezési feltételeit.

Mik azok az alkalmazásfolyamatok?

A folyamat egy tevékenység elvégzéséhez szükséges alkalmazás-interakciókból áll.

  • Felhasználói folyamat

    Ezek a folyamatok azt jelzik, hogy a felhasználók hogyan használják az alkalmazást. A Contoso Shoes-forgatókönyvben az elemek vásárlásának kifizetési folyamata egy felhasználói folyamat példája. A készletkezelésben részt vevő összetevők:

    • Előtérbeli webalkalmazás
    • Pénztári logika az Azure Functionsben
    • Háttéradatbázis az Azure Cosmos DB-ben

    Kritikus szempontból ezeknek az összetevőknek magas rendelkezésre állásúnak és a hibáknak ellenállónak kell lenniük. Az előtérbeli weblapot például gyorsan be kell tölteni, mert a szervezet nagy számú egyidejű felhasználót vár.

  • Rendszerfolyamat

    Ezek a folyamatok általában nem a felhasználókkal szembesülnek, de a rendszerfolyamat-összetevők kimaradása vagy romlása hatással lehet a felhasználói élményre. Például egy aszinkron tevékenység, amely egy adatbázisból veszi fel a rendeléseket, és szállítási címkéket hoz létre.

Megjegyzés:

A legtöbb alkalmazás több folyamatból áll. Minden folyamat érintheti az architektúra különböző összetevőit. Emellett egy összetevő több folyamatban is megjelenhet. Fontos tisztában lenni azzal, hogy az összetevők meghibásodása mely folyamatokat érinti.

Terhelésteszt és küszöbértékeinek meghatározása

A terheléses teszt valós forgalmat szimulál az alkalmazás teljesítményének teszteléséhez. A cél azonban nem az, hogy nagy terhelést generáljon a rendszer feltöréséhez. Ez a cél stressztesztekkel érhető el.

A terheléses teszt segíthet azonosítani a felhasználói folyamat összetevőinek teljesítményét, teljesítménykorlátjait, erőforrás-kihasználtságát és optimális skálázási viselkedését. A terhelési teszteknek minden releváns felhasználói folyamatot és rendszerfolyamatot tükrözniük kell. A jó tervezéshez ismerni kell az alkalmazást. Először tegyen fel kérdéseket, például:

  • Milyen API-hívásokat kell kezdeményezni?
  • Mi az API-hívások sorozata?
  • Milyen tesztadatokat kell használni az API-hívásokhoz?

A válaszok alapján:

  1. Azonosítsa a legfontosabb forgatókönyveket, függőségeket, várható használatot, rendelkezésre állást, teljesítményt és méretezhetőségi célokat.

  2. Mérhető küszöbértékek halmazának meghatározása a fő forgatókönyvek várható teljesítményének számszerűsítéséhez. Egy alkalmazásösszetevő esetében például megfontolhatja a felhasználói bejelentkezések várható számának, az API másodpercenkénti kéréseinek és a háttérfolyamat másodpercenkénti műveleteinek küszöbértékét.

  3. A küszöbértékek használatával olyan terheléstesztet határozhat meg, amely valós forgalmat generál az alkalmazás teljesítményének teszteléséhez, a várható méretezési műveletek és a kapcsolódó tevékenységek ellenőrzéséhez. Ezekkel a küszöbértékekkel fejleszthet állapotmodellt az alkalmazáshoz, amely a tesztelést és az éles üzemet egyaránt lefedi.

    A kifizetési folyamat példájában beállíthatja, hogy az egyes lépések átlagos lapbetöltési időtartama 500 ezredmásodpercnél kisebb legyen, és akár 100 egyidejű felhasználót is támogatjon.

Az összes küszöbérték meghatározása után készen áll a terheléses tesztelés implementálására. Ez a modul az Azure Load Testinget használja.

Bár az Azure Load Testing az Azure Portalon keresztül konfigurálható és üzembe helyezhető, a programozott megközelítés erősen ajánlott. Api-k használatával automatikusan helyezheti üzembe, konfigurálhatja és futtathatja a teszteket. Ezt a megközelítést a következő leckében tárgyaljuk.

Tudáspróba

1.

Az összes felhasználói és rendszerfolyamat egyformán fontos?

2.

Egy összetevő kimaradása mindig szolgáltatáscsökkenést eredményez?

3.

Segíthet egy terheléses teszt a felhasználói folyamat várt teljesítményének kiértékelésében?