Programavimas

Interneto programų testavimas naudojant „Node.js“ ir „Playwright“

Šiuolaikinis programų kūrimas priklauso nuo automatizuoto testavimo, naudojant testavimo sistemas, kad kodas būtų paruoštas pereiti į programų paketus ir išleisti galutiniams vartotojams. Norėdami gauti kuo daugiau naudos iš bandymų, testai rašomi prieš kodą ir juos galima integruoti į šaltinio valdymo ir CI / CD (nuolatinės integracijos / nuolatinio diegimo) vamzdynus. Testai turėtų būti visur jūsų kūrimo procese. Reikia sujungti traukimo užklausą? Išbandykite kodą. Reikia įsipareigoti filialui? Išbandykite kodą.

Tačiau yra viena sritis, kurioje bandymai yra sunkūs, ypač kai juos reikia automatizuoti. Kalbu apie būtinybę bendrauti ir išbandyti dinamines vartotojo sąsajas. Interneto programų testavimas yra sudėtingas procesas. Tokie įrankiai kaip „Selenium“ ir žiniatinklio tvarkyklė yra pagrindiniai elementai automatizuojant puslapio turinį ir užtikrinant, kad testuojate tiek puslapio elementus, tiek visą programą. Jie yra svarbūs, jei programoje naudojate naršykles be galvos; Aš naudoju „Python“ scenarijų rinkinį „Twitter“ programoje, sukurtoje aplink „Selenium“ ir „Chromium“ žiniatinklio tvarkyklės palaikymą, kad automatizuočiau ekrano kopijas iš lėktuvo sekimo programos.

Pristatome „Playwright“, „Microsoft“ žiniatinklio testavimo sistemą

Selenas ir žiniatinklio tvarkyklė nėra vieninteliai šiuolaikinių žiniatinklio programų ir naršyklių visiško testavimo įrankiai. Populiari alternatyva yra „Google Puppeteer“, valdanti paspaudimų siuntimą naršyklėms, naudojant tas pačias technikas, kaip „Chrome“ žiniatinklio tvarkyklės įrankiai, ir prieigą prie derinimo informacijos per žinomų kūrėjo įrankių API. Naujesnį naršyklių testavimo lygos dalyvį „Playwright“ „Microsoft“ kuria kaip atvirojo kodo projektą, kurį talpina „GitHub“.

Dramaturgas perima pagrindinę „Puppeteer“ architektūrą ir labiau juda „Selenium“ kryptimi, pridėdamas interneto automatizavimo sistemą ir pagerindamas „Puppeteer“ sąveiką su puslapio turiniu. Jis sukurtas greitai ir lengvai įdiegti naudojant žinomą „npm“ sintaksę, naudojant „JavaScript“ žiniatinklio programų automatizavimui ir testavimui kurti. Jis veikia su daugiau naršyklių, palaiko „Chromium“ pagrįstas naršykles, tokias kaip „Edge“, taip pat „Firefox“ ir „Apple WebKit“.

„Playwright“ palaikomų naršyklių sąraše yra svarbus pranešimas: jo negalite naudoti su „Trident“ arba „EdgeHTML“ pagrįstomis naršyklėmis. Tai nenuostabu. „Microsoft“ tvirtai įsipareigojo dėl savo „Chromium“ filialo savo naujajame krašte, ir senasis „Edge“, ir „Internet Explorer“ yra beveik baigęsi savo veikla. Jei bandymams naudosite „Playwright“, priimate sprendimą palaikyti tik pagrindines šiuolaikines naršykles, todėl turėsite informuoti vartotojus apie tai, ko laukia būsimi bet kurių jūsų kuriamų ir palaikomų žiniatinklio programų leidimai.

Tinklo testavimas naudojant „Playwright“

Svarbu galimybė atlikti bandymą per visas platformas visose pagrindinėse naršyklėse su tais pačiais scenarijų rinkiniais, taip pat ir mobiliųjų svetainių versijų palaikymas (kadangi dvi pagrindinės mobiliosios platformos naudoja savo darbalaukio naršyklių variantus, „Playwright“ šiuo metu imituoja mobiliųjų rodinius darbalaukio naršyklėse ). Taip pat svarbu palaikymas bandymams be galvos, kai netaisote naršyklės vartotojo sąsajos, o dirbate su sugeneruotu dokumento objekto modeliu (ir šešėliniu DOM, jei naudojate šiuolaikines naršyklės funkcijas ir tokias technologijas kaip interneto komponentai).

Galite naudoti „Playwright“, norėdami automatizuoti veikiančią naršyklę kūrimo darbalaukiuose, kad patikrintumėte klaidas, kaip programos derinimo dalį, užtikrindami, kad nuosekliai vykdysite visus bandymo kelius, tuo pačiu įrašydami papildomą našumo informaciją ir stebėdami, ar nesusiję vartotojo sąsajos trikdžiai. Arba jį galima nustatyti kaip „GitHub“ veiksmo dalį, kad būtų galima išbandyti naują kodą kaip įpareigojimo ar sujungimo dalį, automatizuojant tai, kas kitaip gali būti sudėtingas rankinis bandymas.

„Dramaturgo“ testų kūrimas ir vykdymas

Pradėti naudoti „Playwright“ yra taip pat lengva, kaip nustatyti naują „Node.js“ projektą. Pirmiausia turite bandomuosiuose įrenginiuose įdiegti „Node.js“. Kadangi „Playwright“ naudoja „Node“, galite jį paleisti kūrimo kompiuteriuose arba serveriuose, esančiuose CI / CD vamzdynuose, todėl tai yra „GitHub“ veiksmo dalis, kurią galima naudoti visame jūsų programinės įrangos kūrimo procese. Viskas, ko jums reikia, yra viena komanda „npm“, kuri įdiegia „Playwright“ paketą ir visų palaikomų naršyklių dvejetainius failus. Baigę diegti, galite sukurti automatizavimo scenarijus naudodami „JavaScript“ arba „TypeScript“, kad iškviestumėte „Playwright“ API. Tai visi asinchroniniai skambučiai, todėl naudokite laukimo pareiškimus, kad valdytumėte jų pažadus.

Rezultatas yra labai aiškus scenarijų kūrimo būdas, pradedant naršyklės be galvos egzemplioriaus atidarymu, tada naršant į puslapį prieš sąveikaujant su puslapio egzemplioriais. Patartina iš pradžių kurti bandymus naudojant visas funkcijas palaikančias naršykles, kad galėtumėte stebėti, kaip „Playwright“ sąveikauja su jūsų programa. Naudinga „slow-mo“ parinktis vykdo sąveiką labiau žmogišku greičiu, kad būtų lengviau vizualizuoti ir valdyti bandymus, vykdomus darbalaukio naršyklėse. Kai bandymas bus derinamas ir veikia gerai, galite jį perkelti į bevielio režimą ir paleisti kaip CI / CD diegimo dalį.

„Dramaturgas“ apima CLI įrankį, kuris gali įrašyti sąveiką su svetainėmis, automatiškai sugeneruodamas „JavaScript“, reikalingą bandymams atlikti. Parinktis „codegen“ yra naudingas įrankis greitai pradedant naudoti „Playwright“, rodantis kodą, kuris sąveikauja su puslapio elementais, kuriuos vėliau galite naudoti kaip šabloną savo bandymams atlikti, prireikus kopijuodami ir redaguodami sugeneruotą kodą. „TypeScript“ palaikymas gali padėti parašyti sudėtingesnius testus, naudojant kenkėjams valdyti tvirtą spausdinimą.

Darbas su interneto programomis „Playwright“

Viena iš „Playwright“ naudingesnių funkcijų yra palaikymas naršyklės kontekstuose. Tai leidžia atlikti izoliuotus veiksmus vienoje naršyklės instancijoje, todėl galite nustatyti kelis kontekstus, kad vienu metu išbandytumėte kelias sąveikas. Kiekviename kontekste sukuriate puslapius, kuriuos geriausia įsivaizduoti kaip skirtukus darbalaukio naršyklėje. Puslapiai palaiko savo paspaudimų sąveiką ir gali būti stebimi lygiagrečiai. Patekę į puslapį galite naudoti įvairius būdus, kaip rasti turinį, su kuriuo norite bendrauti, naudodami CSS ar XPath parinkiklius, HTML atributus ar tekstą. Jei esate susipažinę su „Selenium“, turėtumėte rasti naršymą per žinomus puslapius ir papildomą galimybę laukti, kol puslapis bus visiškai įkeltas arba dinaminis turinys bus pateiktas vieno puslapio žiniatinklio programoje.

Galite naudoti vertinimo funkcijas, norėdami siųsti parametrus į tinklalapius ir iš jų į „JavaScript“ kodą, veikiantį puslapio kontekste. Rezultatai grąžinami bandomojo scenarijaus bėgikui, esančiam „Node.js“, analizei atlikti, suteikiant jums įrankius, reikalingus norint išlaikyti testus. „Dramaturgas“ dirba su „F12“ naršyklės devtoolais, todėl gali padaryti daug daugiau, nei paprasčiausiai bendrauti su puslapio turiniu. Jis gali stebėti tinklo srautą, todėl, be kita ko, galite naudoti tikrindami autentifikavimą ir failų atsisiuntimą. Jis gali pasiekti naršyklės konsolę ir įrašyti klaidas, kurios gali būti ne iškart matomos pateikiamame puslapyje: pavyzdžiui, stebėti CSS problemas ar „JavaScript“ bibliotekas, kurių nepavyksta įkelti.

„Playwright“ yra daug, ir tai yra patraukli alternatyva „Selenium“, kad būtų galima išbandyti naršyklės programas. „Microsoft“ nuolat papildant „F12“ kūrėjų įrankius „Edge“, bus įdomu stebėti, kaip „Playwright“ prideda naujų funkcijų, kurios praplečia naršyklės priglobtų programų ir progresyvių žiniatinklio programų testavimo galimybes kartu su tradicinėmis žiniatinklio programomis.

Be „JavaScript“: „Python“ ir „C #“ testavimas

„Microsoft“ neseniai išleido naują „Playwright“ versiją, skirtą kūrėjams, kurie nori kurti „Python“, o ne „JavaScript“ testus. Tai naudinga parinktis, nes daugelis esamų „Selenium“ testavimo sistemų yra pagrįstos „Python“ ir tai leidžia susieti savo testavimo kodą su analitiniais paketais, kad būtų galima atlikti išsamesnę rezultatų analizę naudojant turtingą „Python“ statistinių programų ir įrankių ekosistemą.

„Playwright“ apima C # kalbos susiejimus, todėl galite įtraukti „Playwright“ į esamas ASP.NET ar kitų .NET įrankių bandymų sistemas. Jums nereikėtų keisti darbo būdo, kad įvestumėte naujų įrankių, o „Microsoft“ žada papildomų „Java“ ir „Ruby“ kalbų susiejimų. Ateityje yra daugiau galimybių, nes „Playwright“ dokumentuose teigiama, kad jie skirti palaikyti bet kurios kalbos įrišimus. Turėdami visą „GitHub“ kodą, galite sukurti savo susiejimus pasirinktai bandomajai kalbai ir pateikti juos kaip užklausą projektui.

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