Programovanie

Testovanie webových aplikácií pomocou Node.js a Playwright

Moderný vývoj aplikácií závisí od automatizovaného testovania, pričom sa pomocou testovacích rámcov zaistí, že je kód pripravený na vstup do balíkov aplikácií a ku koncovým používateľom. Aby ste testovaním vyťažili maximum, sú testy písané pred kódom a je možné ich integrovať do kanálov riadenia zdrojov a CI / CD (nepretržitá integrácia / nepretržité nasadenie). Testy by mali byť všade vo vašom vývojovom procese. Potrebujete zlúčiť žiadosť o stiahnutie? Vyskúšajte kód. Potrebujete sa zaviazať k pobočke? Vyskúšajte kód.

Existuje však jedna oblasť, v ktorej je testovanie náročné, najmä keď je potrebné ju automatizovať. Hovorím o potrebe interakcie a testovania dynamických používateľských rozhraní. Testovanie webových aplikácií je zložitý proces. Nástroje ako Selenium a webdriver sú kľúčovými prvkami pri automatizácii obsahu stránky a zaistení toho, že testujete prvky stránky aj aplikáciu ako celok. Sú dôležité, ak v aplikácii používate bezhlavé prehliadače; Používal som sadu skriptov Pythonu v aplikácii Twitter vytvorenej okolo podpory webového ovládača Selenium a Chromium na automatizáciu snímania snímok obrazovky z aplikácie na sledovanie lietadiel.

Predstavujeme Playwright, rámec testovania webu spoločnosti Microsoft

Selén a webdriver nie sú jedinými nástrojmi na vytváranie komplexných testov pre moderné webové aplikácie a prehliadače. Populárnou alternatívou je Puppeteer spoločnosti Google, ktorý spracováva odosielanie kliknutí do prehľadávačov pomocou rovnakých techník ako nástroje webdriveru prehliadača Chrome, ako aj prístup k informáciám o ladení pomocou rozhraní API známych vývojárskych nástrojov. Playwright, novší účastník ligy testovania prehliadačov, je vyvíjaný spoločnosťou Microsoft ako open source projekt hostený na GitHub.

Dramatik preberá základnú architektúru Puppeteer a posúva ju viac smerom k selénu, pridáva rámec automatizácie webu a vylepšuje interakciu Puppeteer s obsahom stránky. Je navrhnutý na rýchlu a ľahkú inštaláciu pomocou známej syntaxe NPM, pomocou JavaScriptu na vytvorenie automatizácie a testovania webových aplikácií. Funguje s viacerými prehľadávačmi, s podporou prehliadačov založených na chróme, ako sú Edge, ako aj Firefox a WebKit spoločnosti Apple.

V zozname podporovaných prehľadávačov Playwright je dôležitá správa: Nemôžete ho použiť v prehliadačoch založených na Trident alebo EdgeHTML. To nie je prekvapujúce. Spoločnosť Microsoft sa pevne zaviazala k svojej pobočke Chromium v ​​novom Edge a starý Edge aj Internet Explorer sa blížia ku koncu životnosti. Ak budete na testovanie používať Playwright, rozhodujete sa, že budete podporovať iba bežné moderné prehliadače, takže budete musieť používateľov informovať, čo všetko si pripravia pre budúce vydania akýchkoľvek webových aplikácií, ktoré vytvárate a podporujete.

Testovanie webu pomocou aplikácie Playwright

Schopnosť testovať na viacerých platformách s rovnakou sadou skriptov vo všetkých hlavných prehliadačoch je dôležitá, rovnako ako podpora pre mobilné verzie webov (pretože dve hlavné mobilné platformy používajú varianty svojich prehliadačov pre počítače. Playwright v súčasnosti emuluje mobilné zobrazenia v prehliadačoch pre počítače. ). Dôležitá je tiež podpora bezhlavých testov, pri ktorých nevykresľujete používateľské rozhranie prehliadača, ale pracujete namiesto toho s vygenerovaným objektovým modelom dokumentu (a tieňovým DOM, ak používate moderné funkcie prehľadávača a technológie, ako sú webové komponenty).

Môžete použiť Playwright na automatizáciu bežiaceho prehliadača na vývojových desktopoch na kontrolu chýb v rámci ladenia aplikácií, čo zaisťuje, že budete dôsledne prechádzať všetkými svojimi testovacími cestami a zároveň zaznamenávať ďalšie informácie o výkone a sledovať nesledované závady používateľského rozhrania. Prípadne ho možno nastaviť ako súčasť akcie GitHub na testovanie nového kódu ako súčasť potvrdenia alebo zlúčenia, čím sa automatizuje komplexný manuálny test.

Vytváranie a prevádzka testov Dramatik

Začíname s programom Playwright je také ľahké ako nastavenie nového projektu Node.js. Najskôr si na svoje testovacie zariadenia nainštalujte súbor Node.js. Pretože Playwright používa Node, môžete ho spustiť na vývojových počítačoch alebo na serveroch vo vašom potrubí CI / CD, čo z neho robí súčasť akcie GitHub, ktorú je možné použiť počas celého procesu vývoja softvéru. Potrebujete iba jediný príkaz npm, ktorý nainštaluje balík Playwright a binárne súbory pre všetky podporované prehliadače. Po dokončení inštalácie môžete vytvárať automatizačné skripty pomocou jazyka JavaScript alebo TypeScript na volanie rozhraní API Playwright. Všetko sú to asynchrónne hovory, takže na splnenie svojich sľubov použite príkazy await.

Výsledkom je veľmi jasný spôsob vytvárania skriptov, počnúc otvorením inštancie bezhlavého prehliadača, až po prechod na stránku pred interakciou s inštanciami stránky. Je dobré najskôr vytvoriť testy s plnohodnotnými prehliadačmi, aby ste mohli sledovať, ako program Playwright interaguje s vašou aplikáciou. Užitočná možnosť slow-mo spúšťa interakcie ľudskejšou rýchlosťou, čo uľahčuje vizualizáciu a správu testov prebiehajúcich v prehliadačoch pre počítače. Po odladení testu a jeho správnom spustení ho môžete presunúť do bezhlavého režimu a potom ho spustiť ako súčasť implementácie CI / CD.

Playwright obsahuje nástroj CLI, ktorý dokáže zaznamenávať interakcie s webmi a automaticky generovať JavaScript potrebný na vykonanie testov. Možnosť codegen je užitočný nástroj na rýchle začatie práce s programom Playwright, ktorý vám ukáže kód, ktorý interaguje s prvkami stránky, ktoré potom môžete použiť ako šablónu pre svoje vlastné testy, podľa potreby kopírovať a upravovať vygenerovaný kód. Podpora strojopisu môže pomôcť pri písaní zložitejších testov a na správu premenných sa používa silné písanie.

Práca s webovými aplikáciami v aplikácii Playwright

Jednou z užitočnejších funkcií aplikácie Playwright je podpora kontextov prehliadača. Umožňujú vám spustiť izolované akcie v jednej inštancii prehľadávača, takže môžete nastaviť niekoľko kontextov na testovanie viacerých interakcií súčasne. V každom kontexte vytvárate stránky, ktoré sa najlepšie považujú za karty v prehliadači pre počítače. Stránky podporujú svoje vlastné interakcie s kliknutiami a je možné ich monitorovať paralelne. Keď sa nachádzate na stránke, môžete použiť rôzne spôsoby hľadania obsahu, s ktorými môžete interagovať, pomocou selektorov CSS alebo XPath, atribútov HTML alebo textu. Ak ovládate selén, mali by ste prezerať stránky, ktoré sú mu známe, s pridanou možnosťou čakať na úplné načítanie stránky alebo na vykreslenie dynamického obsahu v jednostránkovej webovej aplikácii.

Funkcie vyhodnotenia môžete použiť na odoslanie parametrov na webové stránky a z nich do kódu JavaScript spusteného v kontexte stránky. Výsledky sa vrátia bežcovi testovacieho skriptu v Node.js na analýzu, čím získate nástroje potrebné na úspešné absolvovanie alebo neúspešnosť testov. Dramatik spolupracuje s nástrojmi prehliadača F12, takže dokáže oveľa viac, než len jednoducho komunikovať s obsahom stránky. Môže monitorovať sieťový prenos, takže ho môžete okrem iného použiť na testovanie autentifikácie aj sťahovania súborov. Môže pristupovať ku konzole prehliadača a zaznamenávať chyby, ktoré sa na vykreslenej stránke nemusia okamžite zobraziť: napríklad sledovanie problémov s CSS alebo knižnice JavaScript, ktoré sa nenačítajú.

V aplikácii Playwright je toho veľa a predstavuje zaujímavú alternatívu k selénu na testovanie aplikácií prehliadača. Keďže spoločnosť Microsoft neustále pridáva k vývojovým nástrojom F12 v Edge, bude zaujímavé sledovať, ako Playwright pridáva nové funkcie, ktoré rozširujú vaše možnosti testovania aplikácií hosťovaných v prehliadači a progresívnych webových aplikácií popri tradičných webových aplikáciách.

Okrem JavaScriptu: Testovanie v Pythone a C #

Spoločnosť Microsoft nedávno vydala novú verziu aplikácie Playwright pre vývojárov, ktorí uprednostňujú testovanie skôr v jazyku Python ako JavaScript. Je to užitočná voľba, pretože veľa existujúcich testovacích rámcov selénu je založených na Pythone, a umožňuje vám prepojiť váš testovací kód s analytickými balíkmi pre podrobnejšiu analýzu výsledkov pomocou bohatého ekosystému štatistických aplikácií a nástrojov Pythonu.

Playwright obsahuje jazykové väzby pre C #, takže môžete Playwright preniesť do existujúcich testovacích rámcov pre ASP.NET alebo iné nástroje .NET. Pri zavádzaní nových nástrojov by ste nemuseli meniť spôsob práce a Microsoft sľubuje ďalšie jazykové väzby pre Java a Ruby. V budúcnosti existuje perspektíva ďalších, pretože dokumentácia Playwright uvádza, že je navrhnutá tak, aby podporovala väzby pre akýkoľvek jazyk. So všetkým kódom na GitHub existuje možnosť vytvoriť si vlastné väzby pre váš testovací jazyk, ktorý si vyberiete, a odoslať ich ako požiadavku na stiahnutie do projektu.

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