Programiranje

Testiranje spletnih aplikacij z Node.js in Playwright

Sodobni razvoj aplikacij je odvisen od avtomatiziranega preizkušanja z uporabo testnih okvirov, ki zagotavljajo, da je koda pripravljena za vstop v pakete aplikacij in za končne uporabnike. Da bi testiranje kar najbolje izkoristili, so testi napisani pred kodo in jih je mogoče vključiti v cevovode za nadzor virov in CI / CD (neprekinjena integracija / neprekinjena razmestitev). Testi naj bodo povsod v vašem razvojnem procesu. Ali želite združiti zahtevo za vlečenje? Preizkusite kodo. Se morate zavezati k podružnici? Preizkusite kodo.

Obstaja pa eno področje, kjer je testiranje težko, še posebej takrat, ko ga je treba avtomatizirati. Govorim o potrebi po interakciji in testiranju dinamičnih uporabniških vmesnikov. Testiranje spletnih aplikacij je zapleten postopek. Orodja, kot sta Selenium in webdriver, so ključni elementi pri avtomatizaciji vsebine strani in pri zagotavljanju preskušanja elementov strani in aplikacije kot celote. Pomembni so, če v aplikaciji uporabljate brezglave brskalnike; Nabor skriptov Python uporabljam v Twitterjevi aplikaciji, zgrajeni okoli podpore za selenium in Chromium's webdriver, za avtomatizacijo snemanja posnetkov zaslona iz aplikacije za sledenje letala.

Predstavljamo Playwright, Microsoftovo ogrodje za spletno testiranje

Selen in spletni gonilnik nista edini orodji za izdelavo celovitih testov sodobnih spletnih aplikacij in brskalnikov. Priljubljena alternativa je Googlov Puppeteer, ki brskalnikom pošilja klike tako, da uporablja enake tehnike kot orodje za brskalnik Chrome in dostopa do informacij o odpravljanju napak prek API-jev znanih orodij za razvijalce. Playwright, ki je novejši udeleženec lige preizkušanja brskalnikov, razvija Microsoft kot odprtokodni projekt, ki ga gosti GitHub.

Playwright prevzame osnovno Puppeteerjevo arhitekturo in jo premakne bolj v smeri Selenium, dodaja okvir za avtomatizacijo spletnih strani in izboljša način interakcije Puppeteerja z vsebino strani. Zasnovan je za hitro in enostavno namestitev z uporabo znane sintakse npm, z uporabo JavaScript za izdelavo avtomatizacije in testiranja spletnih aplikacij. Deluje z več brskalniki, s podporo za brskalnike na osnovi Chromium, kot je Edge, pa tudi Firefox in Appleov WebKit.

Na seznamu podprtih brskalnikov Playwright je pomembno sporočilo: ne morete ga uporabljati z brskalniki, ki temeljijo na Trident ali EdgeHTML. Ni presenetljivo. Microsoft se je trdno zavezal svoji podružnici Chromium v ​​svojem novem Edgeu, tako stari Edge kot Internet Explorer pa sta blizu konca življenjske dobe. Če boste za preizkušanje uporabljali Playwright, se odločite, da boste podpirali samo sodobne sodobne brskalnike, zato boste morali uporabnike obvestiti, kaj vas čaka za prihodnje izdaje spletnih aplikacij, ki jih gradite in podpirate.

Testiranje spleta z Playwrightom

Sposobnost navzkrižnega preizkušanja v vseh večjih brskalnikih z enakim naborom skriptov je pomembna, prav tako kot podpora za mobilne različice spletnih mest (saj glavni dve mobilni platformi uporabljata različice svojih namiznih brskalnikov, Playwright trenutno posnema mobilne poglede v brskalnikih namizja ). Pomembna je tudi podpora za brezglave teste, kjer ne upodabljate uporabniškega vmesnika brskalnika, namesto tega pa delate z ustvarjenim objektnim modelom dokumenta (in senčnim DOM-om, če uporabljate sodobno funkcionalnost brskalnika in tehnologije, kot so spletne komponente).

Playwright lahko uporabite za avtomatizacijo delujočega brskalnika na razvojnih namizjih za pregled napak kot del razhroščevanja programov, s čimer zagotavljate neprekinjeno izvajanje vseh preizkusnih poti, medtem ko snemate dodatne informacije o zmogljivosti in opazujete napake v uporabniškem vmesniku, ki mu ni sledeno. Lahko pa ga nastavite kot del akcije GitHub za preskušanje nove kode kot del objave ali spajanja, kar avtomatizira tisto, kar bi sicer lahko bil zapleten ročni test.

Sestavljanje in izvajanje preizkusov dramatikov

Uvod v Playwright je tako enostaven kot postavitev novega projekta Node.js. Najprej namestite Node.js na testne naprave. Ker Playwright uporablja Node, ga lahko zaženete na razvojnih računalnikih ali na strežnikih v vašem CI / CD cevovodu, tako da je del akcije GitHub, ki se lahko uporablja v celotnem procesu razvoja programske opreme. Vse, kar potrebujete, je en ukaz npm, ki namesti paket Playwright in binarne datoteke za vse podprte brskalnike. Po končani namestitvi lahko ustvarite skripte za avtomatizacijo z uporabo JavaScript ali TypeScript za klicanje API-jev Playwright. To so vsi asinhroni klici, zato uporabite izjave await za upravljanje njihovih obljub.

Rezultat je zelo jasen način gradnje skriptov, začenši z odpiranjem primerka brskalnika brez glave in nato navigacijo do strani pred interakcijo s primerki strani. Dobro je, da na začetku ustvarite teste s popolno različico brskalnikov, da boste lahko spremljali, kako Playwright komunicira z vašo aplikacijo. Uporabna možnost počasnega gibanja izvaja interakcije z bolj človeško hitrostjo, kar olajša vizualizacijo in upravljanje testov, ki se izvajajo v namiznih brskalnikih. Ko je test razhroščen in dobro deluje, ga lahko premaknete v brezglavi način in nato zaženete kot del izvedbe CI / CD.

Playwright vključuje orodje CLI, ki lahko snema interakcije s spletnimi mesti in samodejno generira JavaScript, potreben za izvajanje testov. Možnost codegen je uporabno orodje za hiter začetek uporabe programa Playwright, ki vam prikaže kodo, ki deluje z elementi strani, ki jo lahko nato uporabite kot predlogo za lastne teste, po potrebi kopirate in urejate ustvarjeno kodo. Podpora za TypeScript lahko pomaga pri pisanju bolj zapletenih testov z uporabo močnega tipkanja za upravljanje spremenljivk.

Delo s spletnimi aplikacijami v programu Playwright

Ena od koristnejših funkcij Playwrighta je podpora za kontekst brskalnika. Ti vam omogočajo izvajanje posameznih dejanj v enem primerku brskalnika, tako da lahko nastavite več kontekstov za preizkušanje več interakcij hkrati. Znotraj vsakega konteksta ustvarite strani, ki so v namiznem brskalniku najbolje mišljene kot zavihki. Strani podpirajo lastne interakcije s kliki in jih je mogoče spremljati vzporedno. Ko ste na strani, lahko uporabite različne načine iskanja vsebine za interakcijo z uporabo izbirnikov CSS ali XPath, atributov HTML ali besedila. Če ste seznanjeni s selenijem, vam bo navigacija po straneh znana z dodano možnostjo čakanja, da se stran popolnoma naloži ali da se dinamična vsebina upodobi v spletni strani z eno stranjo.

Funkcije ocenjevanja lahko uporabite za pošiljanje parametrov na in s spletnih strani v kodo JavaScript, ki se izvaja v kontekstu strani. Rezultati se vrnejo v program za izvajanje preskusnega skripta v Node.js za analizo, s čimer dobite orodja, potrebna za uspešno ali neuspešno preizkušanje. Dramatik deluje z razvijalci brskalnikov F12, zato lahko naredi veliko več kot le interakcijo z vsebino strani. Spremlja lahko omrežni promet, tako da lahko z njim med drugim preizkusite preverjanje pristnosti in prenos datotek. Lahko dostopa do konzole brskalnika in beleži napake, ki morda niso takoj vidne na upodobljeni strani: na primer sledenje težavam CSS ali knjižnicam JavaScript, ki se ne naložijo.

V Playwrightu je veliko in predstavlja prepričljivo alternativo seleniju za testiranje brskalniških aplikacij. Ker Microsoft nenehno dodaja orodja za razvijalce F12 v Edge, bo zanimivo gledati, kako Playwright dodaja nove funkcije, ki poleg tradicionalnih spletnih aplikacij razširjajo vaše možnosti za testiranje aplikacij, ki jih gostijo brskalniki, in progresivnih spletnih aplikacij.

Poleg JavaScript: Testiranje v Pythonu in C #

Microsoft je nedavno izdal novo različico Playwrighta za razvijalce, ki raje gradijo teste v Pythonu in ne v JavaScript. Je koristna možnost, saj številni obstoječi testni okviri Selenium temeljijo na Pythonu in omogoča povezavo kode za testiranje z analitičnimi paketi za podrobnejšo analizo rezultatov z bogatim Pythonovim ekosistemom statističnih aplikacij in orodij.

Playwright vključuje jezikovne vezave za C #, tako da lahko vključite Playwrighta v obstoječe testne okvire za ASP.NET ali druga orodja .NET. Za uvajanje novih orodij vam ne bi bilo treba spreminjati načina dela, Microsoft pa obljublja dodatne jezikovne vezi za Javo in Ruby. V prihodnosti obstaja več možnosti, saj dokumentacija Playwrighta navaja, da je zasnovana tako, da podpira vezave za kateri koli jezik. Z vso kodo na GitHub-u obstaja možnost, da ustvarite lastne vezi za izbrani testni jezik in jih oddate kot zahtevo za vlečenje v projekt.

$config[zx-auto] not found$config[zx-overlay] not found