API tesztelési oktatóanyag: Mi az API-tesztautomatizálás?
Mi az API tesztelés?
API tesztelés egy szoftvertesztelési típus, amely az alkalmazásprogramozási felületeket (API-k) érvényesíti. Az API tesztelés célja a programozási felületek funkcionalitásának, megbízhatóságának, teljesítményének és biztonságának ellenőrzése. Az API-tesztelés során a szabványos felhasználói bemenetek (billentyűzet) és kimenetek használata helyett szoftverrel hívásokat küld az API-nak, lekéri a kimenetet, és feljegyzi a rendszer válaszát. Az API-tesztek nagyon különböznek a GUI-tesztektől, és nem az alkalmazások kinézetére és hangulatára koncentrálnak. Főleg a szoftverarchitektúra üzleti logikai rétegére koncentrál.
Háttérnek, API (alkalmazásprogramozási felület) egy számítástechnikai interfész, amely két különálló szoftverrendszer közötti kommunikációt és adatcserét tesz lehetővé. Az API-t végrehajtó szoftverrendszer számos olyan funkciót/alprogramot tartalmaz, amelyeket egy másik szoftverrendszer végrehajthat. Az API meghatározza a két szoftverrendszer között benyújtható kéréseket, kérések benyújtásának módját, használható adatformátumokat stb.
Az API tesztautomatizálási környezet beállítása
API automatizálás A teszteléshez olyan alkalmazásra van szükség, amely API-n keresztül kölcsönhatásba léphet. Egy API teszteléséhez szüksége lesz
- Használja a Tesztelő eszközt az API vezetéséhez
- Írjon saját kódot az API teszteléséhez
Néhány megjegyzés
- Az API-tesztelés eltér a többi szoftvertesztelési típustól, mivel a grafikus felhasználói felület nem érhető el, mégis be kell állítania a kezdeti környezetet, amely meghívja az API-t a szükséges paraméterkészlettel, majd végül meg kell vizsgálnia a teszt eredményét.
- Ezért az API automatizálási tesztelésére szolgáló tesztelési környezet beállítása kissé bonyolultnak tűnik.
- Az adatbázist és a szervert az alkalmazás követelményeinek megfelelően kell konfigurálni.
- A telepítés után meg kell hívni az API függvényt, hogy ellenőrizze, működik-e az API.
Az API kimenetének típusai
Az API kimenete lehet
- Bármilyen típusú adat
- Állapot (mondjuk Pass vagy Fail)
- Hívjon egy másik API függvényt.
Nézzünk egy példát a fenti típusok mindegyikére ebben az API-tesztelési oktatóanyagban
Bármilyen típusú adat
Példa: Van egy API-függvény, amelynek két egész számot kell hozzáadnia.
Long add(int a, int b)
A számokat bemeneti paraméterként kell megadni. A kimenetnek két egész szám összegének kell lennie. Ezt a kimenetet a várt eredménnyel kell ellenőrizni.
Hívni kell pl
add (1234, 5656)
Kivételeket kell kezelni, ha a szám meghaladja az egész szám határértékét.
Állapot (mondjuk Pass vagy Fail)
Tekintsük az alábbi API függvényt –
- Zár()
- Kinyit()
- Töröl()
Bármilyen értéket adnak vissza, például True (siker esetén) vagy false (hiba esetén) kimenetként.
Egy pontosabb Teszt eset lenne, bármelyik szkriptben meghívhatja a függvényeket, és később ellenőrizheti az adatbázisban vagy az alkalmazás grafikus felületén történt változásokat.
Másik API/esemény hívása
Ebben az esetben meghívjuk az egyik API függvényt, amely egy másik függvényt hív meg.
Például – Az első API függvény egy megadott rekord törlésére használható a táblában, és ez a függvény egy másik függvényt hív meg az adatbázis FRISSÍTÉSE céljából.
Tesztesetek API teszteléshez:
Az API-tesztelés teszteseteinek alapja
- Visszatérési érték a bemeneti feltétel alapján: viszonylag könnyen tesztelhető, mivel a bemenet definiálható és az eredmények hitelesíthetők
- Nem ad vissza semmit: Ha nincs visszatérési érték, akkor ellenőrizni kell az API viselkedését a rendszeren
- Más API/esemény/megszakítás aktiválása: Ha egy API kimenete valamilyen eseményt vagy megszakítást vált ki, akkor ezeket az eseményeket és megszakításfigyelőket nyomon kell követni
- Adatstruktúra frissítése: Az adatstruktúra frissítése valamilyen eredménnyel vagy hatással lesz a rendszerre, és ezt hitelesíteni kell
- Bizonyos erőforrások módosítása: Ha az API hívás módosít néhány erőforrást, akkor azt a megfelelő erőforrások elérésével érvényesíteni kell
API tesztelési megközelítés
API tesztelési megközelítés egy előre definiált stratégia vagy metódus, amelyet a minőségbiztosítási csapat hajt végre az API tesztelése érdekében, miután a build elkészült. Ez a tesztelés nem tartalmazza a forráskódot. Az API-tesztelési megközelítés segít jobban megérteni a funkciókat, a tesztelési technikákat, a bemeneti paramétereket és a tesztesetek végrehajtását.
A következő pontok segítik a felhasználót az API tesztelési megközelítésben:
- Az API program funkcionalitásának megértése és a program hatókörének világos meghatározása
- Alkalmazzon tesztelési technikákat, például egyenértékűségi osztályokat, határérték-elemzést és hibakitalálást, és írjon teszteseteket az API-hoz
- Az API bemeneti paramétereit megfelelően meg kell tervezni és meg kell határozni
- Végezze el a teszteseteket, és hasonlítsa össze a várt és a tényleges eredményeket.
Az API-tesztelés és az egységtesztelés közötti különbség
Egység tesztelése | API tesztelés |
---|---|
A fejlesztők hajtják végre | A tesztelők elvégzik |
Külön funkcionalitást tesztelnek | A végpontok közötti funkcionalitás tesztelve van |
A fejlesztő hozzáférhet a forráskódhoz | A tesztelők nem férhetnek hozzá a forráskódhoz |
A felhasználói felület tesztelése is részt vesz | Csak az API-funkciókat tesztelik |
Csak az alapvető funkciókat tesztelik | Minden funkcionális probléma tesztelve van |
Korlátozott terjedelemben | Szélesebb körben |
Általában bejelentkezés előtt futott | Próbafutás a build létrehozása után |
Az API tesztelése
Az API automatizálási tesztelésének ki kell terjednie legalább a következő tesztelési módszerekre, a szokásos SDLC folyamaton kívül
- Felfedezési tesztelés: A tesztcsoportnak manuálisan kell végrehajtania az API-ban dokumentált híváskészletet, például annak ellenőrzését, hogy az API által kitett adott erőforrás listázható, létrehozható és törölhető-e.
- Használhatósági tesztelés: Ez a tesztelés ellenőrzi, hogy az API működőképes és felhasználóbarát-e. És az API jól integrálható-e egy másik platformmal is
- Biztonsági tesztelés: Ez a tesztelés magában foglalja, hogy milyen típusú hitelesítésre van szükség, és hogy az érzékeny adatok HTTP-n vagy mindkettőn keresztül titkosítva vannak-e
- Automatizált tesztelés: Az API tesztelésének egy olyan szkriptkészlet vagy eszköz létrehozásával kell végződnie, amely az API rendszeres végrehajtására használható.
- Dokumentáció: A tesztcsoportnak meg kell győződnie arról, hogy a dokumentáció megfelelő, és elegendő információt tartalmaz az API-val való interakcióhoz. A dokumentációnak a végső leszállítás részét kell képeznie
Az API-tesztelés legjobb gyakorlatai:
- Az API teszteseteket tesztkategória szerint kell csoportosítani
- Minden teszt tetején fel kell tüntetni a meghívott API-k deklarációit.
- A paraméterek kiválasztását kifejezetten meg kell említeni magában a tesztesetben
- Rögzítse az API-függvényhívások prioritásait, hogy a tesztelők könnyen tesztelhessenek
- Minden tesztesetnek a lehető legönállóbbnak és a függőségektől függetlennek kell lennie
- Kerülje a „tesztláncolást” a fejlesztés során
- Különös körültekintéssel kell eljárni az egyszeri hívási funkciók, például – Törlés, Ablak bezárása stb.
- A hívások sorrendjét végre kell hajtani és jól meg kell tervezni
- A teljes tesztlefedettség biztosítása érdekében hozzon létre API teszteseteket az API összes lehetséges bemeneti kombinációjához.
Az API-tesztelés által észlelt hibák típusai
- Nem kezeli kecsesen a hibahelyzeteket
- Nem használt zászlók
- Hiányzó vagy ismétlődő funkciók
- Megbízhatósági kérdések. Nehézség a csatlakozásban és a válasz megszerzésében API.
- Biztonsági kérdések
- Többszálú problémák
- Teljesítménybeli problémák. Az API válaszideje nagyon magas.
- Helytelen hibák/figyelmeztetés a hívónak
- Az érvényes argumentumértékek helytelen kezelése
- A válaszadatok felépítése nem megfelelő (JSON vagy XML)
Az API tesztautomatizálás módja
1) ReadyAPI
ReadyAPI a RESTful, SOAP, GraphQL és más webszolgáltatások funkcionális, biztonsági és terhelési tesztelésének vezető eszköze. Egy intuitív platformon három hatékony eszközt kap: ReadyAPI Test, ReadyAPI Performance és ReadyAPI Virtualization. Ezekkel az eszközökkel funkcionális, biztonsági és teljesítmény/terhelési teszteket végezhet. Robusztus virtualizációs eszközünkkel API- és webszolgáltatások is kigúnyolhatók. Ezenkívül könnyedén integrálhatja a sajátját CI/CD csővezeték minden építés során.
Főbb jellemzők
- A ReadyAPI bármilyen környezetbe integrálható.
- Intelligens állítás funkcióval rendelkezik, amely gyorsan képes tömeges állításokat létrehozni több száz végpont ellen.
- Natív támogatás Git, Docker, Jenkins, AzureStb
- Támogatja a parancssort az automatizált teszteléshez.
- Támogatja a funkcionális tesztek és a feladatsorok párhuzamos végrehajtását.
- Promotes kód újrafelhasználása
- Eltávolítja a függőségeket a tesztelés és a fejlesztés során.
14 napos ingyenes próbaverzió (nem szükséges hitelkártya)
A következő oktatóanyagok részletes útmutatót nyújtanak az API-teszt automatizálásához.
- Az API tesztelése a REST Assured segítségével
- Hogyan teszteljük az API-t Postman
- Az API tesztelése UFT-vel
Emellett vannak más eszközök is az API-tesztelésre. Ellenőrizze őket itt
Az API tesztelés kihívásai
Az API-tesztelés kihívásai a következők:
- A webes API tesztelésének fő kihívásai a következők Paraméterek kombinációja, paraméter kiválasztása és hívássorrend
- Nincs elérhető GUI hogy tesztelje az alkalmazást, amely teszi nehéz megadni a bemeneti értékeket
- A kimenet érvényesítése és ellenőrzése egy másik rendszerben kissé nehézkes a tesztelők számára
- A paraméterek kiválasztását és kategorizálását a tesztelőknek ismerniük kell
- Kivételkezelő funkció tesztelni kell
- A tesztelők számára kódolási ismeretek szükségesek
Következtetés
Az API az üzleti logikai réteget képviselő osztályok/függvények/eljárások készletéből áll. Ha az API-t nem tesztelik megfelelően, az nemcsak az API-alkalmazásban, hanem a hívó alkalmazásban is problémákat okozhat. Ez egy nélkülözhetetlen teszt a szoftverfejlesztésben.