Maybaygiare.org

Blog Network

7 metode HTTP fiecare dezvoltator web ar trebui să știe și cum să le testeze

te-ai întrebat vreodată care este diferența dintre GET și POSTcereri sau când să folosești PUT? Nu ești singur. Având o bază de înțelegere a diferitelor metode HTTP, sau verbe, un APIsupports este o cunoaștere utilă atunci când explorarea și testarea API-uri.

În această postare, voi discuta despre modul în care este utilizată fiecare metodă HTTP și cum să le încorporați în testarea API.

metode HTTP

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

get

GET cererile sunt cele mai comune și utilizate pe scară largă metode în API-uri șisite-uri web. Pur și simplu, metoda GET este utilizată pentru a retrimite datele de la aserver la resursa specificată. De exemplu, să presupunem că aveți un Apicu un /users punct final. Efectuarea unei cereri GET la acel punct final ar trebuireveniți o listă a tuturor utilizatorilor disponibili.

deoarece o solicitare GET solicită doar date și nu modifică nicio sursă, este considerată o metodă sigură și idempotentă.

testarea unui API cu cereri GET

când creați teste pentru un API, metodaGET va fi probabil cel mai frecvent tip de solicitare făcută de consumatorii serviciului, decieste important să verificați fiecare punct final cunoscut cu o cerere GET.

la nivel de bază, aceste lucruri trebuie validate:

  • verificați dacă o solicitare GET validă returnează un cod de stare200.
  • asigurați-vă că o cerere GET la o anumită resursă returnează correctdata. De exemplu, GET /users returnează o listă de utilizatori.

GET este adesea metoda implicită în clienții HTTP, Deci crearea de testepentru aceste resurse ar trebui să fie simplă cu orice instrument pe care îl alegeți.

POST

în serviciile web,POST cererile sunt utilizate pentru a trimite date către APIserver pentru a crea sau udpate o resursă. Datele trimise către server sunt stocate în corpul solicitat al cererii HTTP.

cel mai simplu exemplu este un formular de contact pe un site web. Când tu completați intrările într-un formular și a lovit trimite, că datele sunt puse încorpul de răspuns al cererii și trimis la server. Acest lucru poate JSON, XML, sau parametrii de interogare (exista o multime de alte formate,dar acestea sunt cele mai comune).

este demn de remarcat faptul că oPOST cerere este non-idempotent. Itmutează datele de pe serverul backend (prin crearea sau actualizarea aresource), spre deosebire de o GET cerere care nu se schimba anydata. Iată o explicație excelentă a idempotenței.

testarea unui API cu cereri POST

a doua metodă HTTP cea mai comună pe care o veți întâlni în testele API estePOST. După cum sa menționat mai sus, POST cererile sunt utilizate pentrutrimiteți date către serverul API și creați sau actualizați o resursă. SincePOST solicită modificarea datelor, este important să aveți teste API pentru toate metodele dvs. de postare.

iată câteva sfaturi pentru testarea cererilor POST:

  • creați o resursă cu oPOST solicitați și asigurați-vă că un200 codul de stare este returnat.
  • apoi, faceți o GET cerere pentru acea resursă și asigurați-vă că datele au fost salvate corect.
  • adăugați teste care asigurăPOST cererile nu reușesc cu date incorecte sau prost formatate.

Pentru mai multe idei despre testingscenarios API comune,a verifica afară acest post.

pune

Simlar pentru a posta,PUT cererile sunt folosite pentru a trimite date către API toupdate sau pentru a crea o resursă. Diferența estechatput cererile sunt idempotent. Thatis, apelarea aceleiași cereri de mai multe ori va produce întotdeaunaacelași rezultat. În schimb, apelarea unei cereri de postare face în mod repetatau efecte secundare ale creării aceleiași resurse de mai multe ori.

în general, atunci când o cerere PUT creează o resursă serverul va răspunde cu un 201Created), iar dacă cererea modifică resursa existentă serverul va returna un 200OK) sau 204NoContent).

testarea unui API cu cereri PUT

testarea unui APIPUT metode este foarte similar cu testarea POSTrequests. Dar acum că știm diferența dintre cele două (idempotency), putem crea teste API pentru a confirma acest comportament.

verificați aceste lucruri atunci când testați cererile PUT:

  • apelând în mod repetat unPUT cererea returnează întotdeauna același rezultat(idempotent).
  • codul de stare adecvat este returnat la crearea și actualizarea resursei (de exemplu, 201sau 200204).
  • după actualizarea unei resurse cu oPUT cerere, oGET cerere pentrucă resursa ar trebui să returneze datele corecte.
  • PUT cererile ar trebui să eșueze dacă datele nevalide sunt furnizate în therequest-nimic nu trebuie actualizat.

PATCH

aPATCH cererea este una dintre metodele HTTP mai puțin cunoscute, dar i ‘ minclusiv aceasta mare în listă, deoarece este similar cu post andPUT. Diferența cu PATCH este că aplicați doar modificări parțiale resursei.

diferența dintre PATCH și PUT, este căapatch cerere este non-idempotent (likea POST cerere).

pentru a extinde modificarea parțială, spuneți că sunteți API are un/users/{{userid}} punct final și un utilizator are un nume de utilizator. Cu apatch request, poate fi necesar doar să trimiteți numele de utilizator actualizat în corpul cererii-spre deosebire de POST și PUT care necesită entitatea fulluser.

testarea unui API cu cereri de PATCH-uri

deoarecePATCH metoda este atât de simplă pentru a posta și a pune, se aplică multe dintre aceleași tehnici de testare. Este încă important să validațicomportamentul oricăror puncte finale API care acceptă această metodă.

Ce trebuie să căutați atunci când testați solicitările de corecții:

  • un cod de starePATCH de succes ar trebui să returneze un cod de stare2xx.
  • PATCH cererile ar trebui să eșueze dacă datele nevalide sunt furnizate în therequest-nimic nu trebuie actualizat.

semantica cererilor de corecții va depinde în mare măsură de API-ul specific pe care îl testați.

șterge

DELETE metoda este exact așa cum sună: ștergeți resursa la URL-ul specificat. Această metodă este una dintre cele mai frecvente în RESTfulAPIs, deci este bine să știți cum funcționează.

testarea unui API cu cereri de ștergere

DELETE cererile ar trebui să fie puternic testate, deoarece, în general, removedata dintr-o bază de date. Aveți grijă când testați metodele de ștergere, asigurați-vă că utilizați acreditările corecte și nu testați cu datele realuser.

un caz tipic de testare pentru o cerere de ștergere ar arăta astfel:

  1. creați un utilizator nou cu unPOST solicitați/users
  2. cu id-ul de utilizator returnat de laPOST, faceți unDELETE cerere la/users/{{userid}}
  3. oGET cerere la/users/{{userid}} ar trebui să returneze un cod de stare 404 not found.

în plus, trimiterea unei cereri de ștergere către o resursă necunoscută ar trebui să revină la codul de stare non-200.

cap

HEAD metoda este aproape identică cuGET, cu excepția cazului în care corpul nu răspunde. Cu alte cuvinte, dacă GET /users returnează o listă de utilizatori, atunci HEAD /users va face aceeași solicitare, dar nu va reveni la lista de utilizatori.

cererile de cap sunt utile pentru a verifica ce o cerere GET willreturn înainte de a face de fapt, o cerere GET-cum ar fi beforedownloading un fișier mare sau responsebody. Aflați mai multe despre solicitările HEAD pe MDN.

merită să subliniem că nu orice punct final care acceptă GETwill acceptă HEAD – depinde complet de API-ul pe care îl testați.

testarea unui API cu cereri de cap

efectuarea cererilor API cuHEAD metode este de fapt un mod eficient de a verifica pur și simplu că o resursă este disponibilă. Este goodpractice de a avea un test pentru cererile de cap oriunde ai un testfor obține cereri (atâta timp cât API-ul acceptă).

verificați aceste lucruri atunci când testați un API cu cereri de cap:

  • verificați andcheckhttp anteturi returnedfrom o cerere cap
  • face afirmații împotriva codul de stare al cererilor cap
  • cereri de testare cu diverse parametri de interogarer pentru a asigura APIresponds

Un alt caz util pentruHEAD requestsisAPI smoke testing-face o cerere cap împotriva fiecărui punct final API pentru a se asigura sunt disponibile.

opțiuni

nu în ultimul rând avemOPTIONS cereri. Cererile de opțiuni suntunul dintre preferatele mele, deși nu este la fel de utilizat ca celelalte HTTPmethods. Pe scurt, o cerere de opțiuni ar trebui să returneze datedescriind ce alte metode și operații acceptă serverul la adresa URL dată.

cererile de opțiuni sunt mai vag definite și utilizate decât celelalte,ceea ce le face un candidat bun pentru a testa Erorile API fatale. Dacă anAPI nu se așteaptă la o cerere de opțiuni, este bine să puneți un loc de cazeină de testare care să verifice comportamentul defectuos.

testarea unui API cu cereri de opțiuni

testarea unuiOPTIONS cererea depinde de serviciul web; dacă nu acceptă acest lucru și ceea ce se presupune că se va întoarce va definecum ar trebui să îl testați.

cum se validează un punct final folosind opțiuni:

  • În primul rând, verificați anteturile de răspuns și Codul de stare al solicitării
  • puncte finale de testare care nu acceptă opțiuni și asigurați-vă că nu reușesc în mod corespunzător

mai multe resurse

ceea ce am discutat mai sus este doar un punct de plecare pentru săparea metodelor toHTTP și testarea diferitelor resurse ale unui API. De asemenea, presupune un caz în mare parte ideal – în lumea reală, API-urile nu sunt la fel de structurate caexemple de mai sus. Acest lucru face ca testarea diferitelor metode împotriva unui mod eficient APIan de a găsi bug-uri neașteptate.

Lasă un răspuns

Adresa ta de email nu va fi publicată.