de Adam Henson

Cum se automatizează testarea de regresie a performanței site-ului web cu Foo

Folosirea unui pas post implementare pentru automatizarea testării de regresie a performanței într-un flux de lucru de livrare continuă

Testarea automata a regresiei performantei site ului web

Într-o altă postare am trecut cum să analizăm performanța site-ului web folosind Lighthouse, și în mod specific cum putem automatiza monitorizarea performanței cu Foo. În această postare am să demonstrez cum putem crește o notă prin testarea regresiei de performanță … automat?

Ce este testarea de regresie?

Testarea de regresie este un tip de testare software pentru a confirma că o modificare recentă a programului sau a codului nu a afectat negativ caracteristicile existente. Aderarea la cele mai bune practici ar putea include cele de mai jos.

  • Mențineți un program de testare strict: Mențineți întotdeauna un program de testare continuă pe tot parcursul ciclului de viață al dezvoltării software-ului. Nu numai că acest lucru va forța rapid echipa să se adapteze la un regim de testare frecvent, dar va asigura, de asemenea, că produsul finit este cât mai bine testat.
  • Utilizați software-ul de gestionare a testelor: Cu excepția cazului în care proiectul dvs. software actual este un proiect secundar simplu dezvoltat de sine, este posibil să aveți o astfel de abundență de teste, încât urmărirea fiecăruia să depășească cu mult capacitățile unei singure persoane sau a unei foi de calcul. Din fericire, există pe piață numeroase instrumente de gestionare a testelor concepute pentru a simplifica procesul de creare, gestionare, urmărire și raportare a tuturor testelor din întreaga suită de testare.
  • Clasificați-vă testele: Imaginați-vă o suită de teste de sute sau mii de teste care sunt doar identificate de un singur name sau id camp. Cum pe Pământ ar putea cineva să treacă vreodată prin această listă masivă pentru a identifica testele care au legătură? Soluția este de a clasifica testele în grupuri mai mici pe baza oricăror criterii adecvate pentru echipa dvs. Majoritatea instrumentelor de gestionare a testelor vor oferi mijloacele de clasificare sau etichetare a testelor, ceea ce va face mai ușor pentru toți membrii echipei să identifice și să facă referire la un anumit tip de test.
  • Prioritizați testele pe baza nevoilor clienților: O modalitate utilă de a prioritiza testele este de a lua în considerare nevoile clientului sau ale utilizatorului. Luați în considerare modul în care un caz de test dat afectează experiența utilizatorului final sau cerințele comerciale ale clientului.

Consultați acest articol pentru mai multe informații: „Testarea regresiei: Ce este și cum să o utilizați

Ce înseamnă de fapt „Performanța site-ului”?

Timpii de încărcare variază dramatic de la utilizator la utilizator, în funcție de capacitățile dispozitivului și de condițiile de rețea. Tradiţional valorile de performanță, cum ar fi timpul de încărcare sau DOMContentLoaded, sunt extrem de nesigure, deoarece atunci când apar pot sau nu să corespundă atunci când utilizatorul crede că aplicația este încărcată.

~ Valori de performanță centrate pe utilizator | Noțiuni de bază web | Google Developers

În prezent, ciclul de viață al unei încărcări de pagini web poate fi gândit mai detaliat. Ne putem gândi la valorile de performanță ale site-ului web ca fiind „centrate pe utilizator”. Când un utilizator accesează o pagină web, de obicei caută feedback vizual pentru a-i asigura că totul funcționează conform așteptărilor.

Valorile de mai jos reprezintă puncte importante ale ciclului de viață al încărcării paginii. Fiecare răspunde la întrebări despre experiența utilizatorului.

  • Prima vopsea conținută: Se întâmplă? Navigarea a început cu succes? A răspuns serverul?
  • Prima vopsea semnificativă: Este util? A fost redat suficient conținut pentru ca utilizatorii să poată interacționa cu acesta?
  • Timp pentru interactivitate: Este utilizabil? Utilizatorii pot interacționa cu pagina sau este încă ocupată cu încărcarea?
  • Sarcini lungi (absența): Este încântător? Sunt interacțiunile netede și naturale, lipsite de întârziere și jank?

Putem efectua audituri de performanță manual sau programat folosind instrumente precum Far pentru a oferi valori valorilor similar cu cele de mai sus. Putem folosi un Integrarea farului ca Foo pentru a monitoriza automat performanța site-ului web peste orar. În exemplul de mai jos, puteți vedea cum performanța Twitter se degradează și o corelează cu o zi și o oră exacte! Ce se întâmplă dacă am putea identifica acest lucru cu o versiune exactă? În secțiunea următoare vă explic cum să faceți acest lucru.

1611428827 306 Testarea automata a regresiei performantei site ului web
Degradarea performanței Twitter

Cum putem regresa în mod automat performanța testului?

Putem realiza teste automate de performanță integrate ca etapă post-implementare într-o conductă de livrare continuă. Putem face acest lucru creând un gratuit cont la Foo și folosind API-ul său public REST. Urmați pașii de mai jos.

  1. Creați un cont gratuit cu Foo. Verificați-vă e-mailul făcând clic pe linkul trimis.
  2. Creați o pagină pe Foo unde puteți adăuga adresa URL la pagina pe care doriți să o testați.
  3. Faceți clic pe elementul de listă pentru pagina dvs. din ecranul de mai sus. Acest lucru vă va direcționa către tabloul de bord care reflectă pagina dvs.
  4. Obțineți simbolul API pentru pagină derulând până în partea de jos a paginii de mai sus.
  5. Declanșați un test executat solicitând punctul final așa cum este detaliat în Documentația API a lui Foo. O comandă curl ar arăta ceva asemănător curl -X POST "https://www.foo.software/api/v1/queue/items" -H "accept: application/json" -H "Content-Type: application/json" -d "{ "pages": "pagetoken1,pagetoken2", "tag": "My Tag" }".
  6. Adăugați comanda de mai sus ca pas de implementare în conducta CD. Puteți găsi un exemplu complet în GitHub. Sub un circleci fragment care definește de fapt acest pas.

Din exemplul legat mai sus, pașii noștri ai conductei rulează la fiecare commit către a noastră master ramură.

Testarea automata a regresiei performantei site ului web
Pași de livrare continuă

Și voilà, acum lansăm o versiune pentru fiecare angajament master și efectuarea automată a unui audit de performanță ⭐!

1611428828 935 Testarea automata a regresiei performantei site ului web
Foo CD Exemplu Rezultate de regresie automată a performanței

Concluzie

Foo oferă multe funcții pentru a monitoriza și analiza performanța. În acest post am aruncat o privire asupra modului în care îl putem utiliza pentru a rula automat testarea de regresie a performanței Lighthouse. Mai jos sunt alte caracteristici – dintre care majoritatea sunt gratuit!

  • Audituri automate de performanță, vizualizare cronologică și vizualizări detaliate ale rezultatelor.
  • Notificări prin e-mail, Slack, un PagerDuty atunci când performanța a scăzut, s-a îmbunătățit sau a devenit „normală”.
  • Verificări automate ale stării de sănătate și notificări.