Tutorial de testare API: Ce este automatizarea testării API?
Ce este testarea API?
Testare API este un tip de testare software care validează interfețele de programare a aplicațiilor (API). Scopul testării API este de a verifica funcționalitatea, fiabilitatea, performanța și securitatea interfețelor de programare. În Testarea API, în loc să utilizați intrări și ieșiri standard ale utilizatorului, utilizați software pentru a trimite apeluri către API, pentru a obține rezultate și pentru a nota răspunsul sistemului. Testele API sunt foarte diferite de testele GUI și nu se vor concentra asupra aspectului unei aplicații. Se concentrează în principal pe stratul logic de afaceri al arhitecturii software.
Pentru fundal, API (interfață de programare a aplicațiilor) este o interfață de calcul care permite comunicarea și schimbul de date între două sisteme software separate. Un sistem software care execută un API include mai multe funcții/subrutine pe care un alt sistem software le poate îndeplini. API definește cererile care pot fi făcute, cum se fac cereri, formatele de date care pot fi utilizate etc., între două sisteme software.
Configurarea mediului de automatizare a testării API
Automatizarea API Testarea necesită o aplicație care poate fi interacționată printr-un API. Pentru a testa un API, va trebui
- Utilizați Instrumentul de testare pentru a conduce API-ul
- Scrieți propriul cod pentru a testa API-ul
Câteva puncte de remarcat
- Testarea API este diferită de alte tipuri de testare software, deoarece GUI nu este disponibil și, totuși, trebuie să configurați mediul inițial care invocă API cu un set necesar de parametri și apoi să examinați rezultatul testului.
- Prin urmare, configurarea unui mediu de testare pentru testarea automatizării API pare puțin complexă.
- Baza de date și serverul trebuie configurate conform cerințelor aplicației.
- Odată ce instalarea este finalizată, funcția API ar trebui apelată pentru a verifica dacă acel API funcționează.
Tipuri de ieșire ale unui API
O ieșire a API ar putea fi
- Orice tip de date
- Stare (să spunem Reușit sau Eșuat)
- Apelați o altă funcție API.
Să ne uităm la un exemplu pentru fiecare dintre tipurile de mai sus în acest tutorial de testare API
Orice tip de date
Exemplu: există o funcție API care ar trebui să adauge două numere întregi.
Long add(int a, int b)
Numerele trebuie date ca parametri de intrare. Rezultatul ar trebui să fie o însumare a două numere întregi. Acest rezultat trebuie verificat cu un rezultat așteptat.
Apelarea trebuie făcută de exemplu
add (1234, 5656)
Excepțiile trebuie gestionate dacă numărul depășește limita întregului.
Stare (să spunem Reușit sau Eșuat)
Luați în considerare funcția API de mai jos -
- Lacăt()
- Deblocare()
- Șterge()
Ei returnează orice valoare, cum ar fi True (în caz de succes) sau false (În caz de eroare) ca rezultat.
Un mai precis Caz de testare ar fi, poate apela funcțiile din oricare dintre scripturi și mai târziu poate verifica modificările fie în baza de date, fie în GUI-ul aplicației.
Apelarea unui alt API/Eveniment
În acest caz, apelăm una dintre funcțiile API, care la rândul său va apela o altă funcție.
De exemplu – Funcția First API poate fi folosită pentru ștergerea unei înregistrări specificate din tabel și această funcție, la rândul său, apelează o altă funcție pentru a reîmprospăta baza de date.
Cazuri de testare pentru testarea API:
Cazurile de testare ale testării API se bazează
- Valoarea returnată pe baza condiției de intrare: este relativ ușor de testat, deoarece intrarea poate fi definită și rezultatele pot fi autentificate
- Nu returneaza nimic: Când nu există o valoare returnată, un comportament al API-ului pe sistem trebuie verificat
- Declanșează un alt API/eveniment/întrerupere: Dacă o ieșire a unui API declanșează un eveniment sau o întrerupere, atunci acele evenimente și ascultătorii de întrerupere ar trebui urmăriți
- Actualizați structura datelor: Actualizarea structurii datelor va avea un anumit rezultat sau efect asupra sistemului și aceasta ar trebui autentificată
- Modificați anumite resurse: Dacă apelul API modifică unele resurse, atunci acesta ar trebui validat prin accesarea resurselor respective
Abordarea de testare API
Abordarea de testare API este o strategie predefinită sau o metodă pe care echipa QA o va efectua pentru a efectua testarea API după ce construirea este gata. Această testare nu include codul sursă. Abordarea de testare API ajută la înțelegerea mai bună a funcționalităților, tehnicilor de testare, parametrilor de intrare și execuția cazurilor de testare.
Următoarele puncte ajută utilizatorul să facă o abordare de testare API:
- Înțelegerea funcționalității programului API și definirea clară a domeniului de aplicare al programului
- Aplicați tehnici de testare, cum ar fi clase de echivalență, analiza valorii la limită și ghicirea erorilor și scrieți cazuri de testare pentru API
- Parametrii de intrare pentru API trebuie planificați și definiți corespunzător
- Executați cazurile de testare și comparați rezultatele așteptate și cele reale.
Diferența dintre testarea API și testarea unitară
Testarea unității | Testare API |
---|---|
Dezvoltatorii o realizează | Testerii o efectuează |
Este testată funcționalitatea separată | Funcționalitatea end-to-end este testată |
Un dezvoltator poate accesa codul sursă | Testerii nu pot accesa codul sursă |
Testarea UI este, de asemenea, implicată | Sunt testate doar funcțiile API |
Sunt testate doar funcționalitățile de bază | Toate problemele funcționale sunt testate |
Domeniu limitat | Domeniu mai larg |
De obicei, alerga înainte de check-in | Executați testul după crearea versiunii |
Cum se testează API-ul
Testarea de automatizare API ar trebui să acopere cel puțin următoarele metode de testare, în afară de procesul obișnuit SDLC
- Testare de descoperire: Grupul de testare ar trebui să execute manual setul de apeluri documentate în API, cum ar fi verificarea faptului că o anumită resursă expusă de API poate fi listată, creată și ștearsă după caz.
- Testare de utilizare: Această testare verifică dacă API-ul este funcțional și ușor de utilizat. Și API-ul se integrează bine și cu o altă platformă
- Testare de securitate: Această testare include ce tip de autentificare este necesar și dacă datele sensibile sunt criptate prin HTTP sau ambele
- Testarea automată: Testarea API ar trebui să culmineze cu crearea unui set de scripturi sau a unui instrument care poate fi folosit pentru a executa API-ul în mod regulat
- Documentație: Echipa de testare trebuie să se asigure că documentația este adecvată și oferă suficiente informații pentru a interacționa cu API-ul. Documentația ar trebui să facă parte din livrabilul final
Cele mai bune practici de testare API:
- Cazurile de testare API trebuie grupate pe categorii de testare
- În partea de sus a fiecărui test, ar trebui să includeți declarațiile API-urilor care sunt apelate.
- Selectarea parametrilor ar trebui să fie menționată în mod explicit în cazul de testare în sine
- Prioritizează apelurile de funcții API, astfel încât testatorii să fie ușor de testat
- Fiecare caz de testare ar trebui să fie cât mai autonom și independent de dependențe
- Evitați „înlănțuirea de teste” în dezvoltarea dvs
- Trebuie avută o atenție deosebită atunci când manipulați funcții de apel unice, cum ar fi – Ștergere, Închidere fereastră etc...
- Secvențierea apelurilor trebuie efectuată și bine planificată
- Pentru a asigura o acoperire completă a testului, creați cazuri de testare API pentru toate combinațiile de intrare posibile ale API.
Tipuri de erori pe care le detectează testarea API
- Nu reușește să gestioneze cu grație condițiile de eroare
- Steaguri nefolosite
- Funcționalitate lipsă sau duplicată
- Probleme de fiabilitate. Dificultate în a vă conecta și a obține un răspuns de la API.
- Probleme de securitate
- Probleme cu mai multe fire
- Probleme de performanta. Timpul de răspuns API este foarte mare.
- Erori/avertisment necorespunzătoare pentru un apelant
- Gestionarea incorectă a valorilor argumentelor valide
- Datele de răspuns nu sunt structurate corect (JSON sau XML)
Cum se face automatizarea testului API
1) ReadyAPI
ReadyAPI este un instrument de vârf pentru testarea funcțională, de securitate și de încărcare a RESTful, SOAP, GraphQL și a altor servicii web. Într-o singură platformă intuitivă, veți obține trei instrumente puternice: ReadyAPI Test, ReadyAPI Performance și ReadyAPI Virtualization. Cu aceste instrumente puteți efectua teste funcționale, de securitate și de performanță/încărcare. De asemenea, puteți face joc de API și de serviciile web cu instrumentul nostru robust de virtualizare. În plus, vă puteți integra cu ușurință Conducta CI/CD in timpul fiecarei constructii.
Caracteristici-cheie
- ReadyAPI poate fi integrat în orice mediu.
- Are o caracteristică Smart Assertion care poate crea rapid afirmații în bloc împotriva sutelor de puncte finale.
- Suport nativ pentru Git, Docker, Jenkins, Azure, Etc
- Acceptă linia de comandă pentru testarea automată.
- Sprijină execuția paralelă a testelor funcționale și așteptarea lucrărilor.
- Promoreutilizarea codului
- Elimină dependențele în timpul testării și dezvoltării.
Probă gratuită de 14 zile (nu este necesar un card de credit)
Următoarele tutoriale oferă un ghid detaliat pentru automatizarea testului API.
- Cum să testați API-ul cu REST Assured
- Cum se testează API-ul cu Postman
- Cum se testează API-ul cu UFT
În plus, există și alte instrumente pentru testarea API. Verifica-i aici
Provocările testării API
Provocările testării API includ:
- Principalele provocări în testarea Web API sunt Combinarea parametrilor, Selecția parametrilor și Secvențierea apelurilor
- Nu există nicio interfață grafică disponibilă pentru a testa aplicația, ceea ce face este dificil de dat valorile de intrare
- Validarea și verificarea rezultatelor într-un sistem diferit este puțin dificilă pentru testeri
- Selecția și clasificarea parametrilor trebuie să fie cunoscute de testeri
- Funcția de gestionare a excepțiilor trebuie testat
- Cunoștințele de codificare sunt necesare pentru testeri
Concluzie
API constă dintr-un set de clase/funcții/proceduri reprezentând stratul logic de afaceri. Dacă API-ul nu este testat corespunzător, poate cauza probleme nu numai în aplicația API, ci și în aplicația care apelează. Este un test indispensabil în ingineria software.