Programmēšana

Tīmekļa lietojumprogrammu pārbaude ar Node.js un Playwright

Mūsdienu lietojumprogrammu izstrāde ir atkarīga no automatizētas testēšanas, izmantojot testēšanas ietvarus, lai nodrošinātu, ka kods ir gatavs nonākt lietojumprogrammu paketēs un lietotājiem. Lai maksimāli izmantotu testēšanu, testi tiek uzrakstīti pirms koda, un tos var integrēt avota vadības un CI / CD (nepārtraukta integrācija / nepārtraukta izvietošana) cauruļvados. Pārbaudēm jābūt visur jūsu attīstības procesā. Nepieciešams apvienot ievilkšanas pieprasījumu? Pārbaudiet kodu. Jāapņemas filiāle? Pārbaudiet kodu.

Bet ir viena joma, kurā testēšana ir sarežģīta, it īpaši, ja tā ir jā automatizē. Es runāju par nepieciešamību mijiedarboties ar dinamiskām lietotāja saskarnēm un pārbaudīt tās. Tīmekļa lietojumprogrammu testēšana ir sarežģīts process. Rīki, piemēram, Selenium un tīmekļa draiveris, ir galvenie elementi, lai automatizētu lapas saturu un nodrošinātu, ka tiek pārbaudīti gan lapas elementi, gan visa lietojumprogramma. Tie ir svarīgi, ja lietojumprogrammā izmantojat pārlūkprogrammas bez galvas; Esmu izmantojis Python skriptu kopu Twitter lietojumprogrammā, kas veidota ap Selenium un Chromium tīmekļa draiveru atbalstu, lai automatizētu ekrānuzņēmumu uzņemšanu no lidmašīnas izsekošanas lietojumprogrammas.

Iepazīstinām ar Playwright, Microsoft tīmekļa testēšanas sistēmu

Selēns un tīmekļa draiveris nav vienīgie rīki, lai izveidotu modernu tīmekļa lietojumprogrammu un pārlūkprogrammu end-to-end testus. Populāra alternatīva ir Google Puppeteer, kas apstrādā gan klikšķu sūtīšanu pārlūkprogrammām, izmantojot tādas pašas metodes kā Chrome tīmekļa draiveru rīkus, gan piekļuvi atkļūdošanas informācijai, izmantojot pazīstamo izstrādātāja rīku API. Jauns dalībnieks pārlūkprogrammu testēšanas līgā, Playwright, Microsoft izstrādā kā atvērtā pirmkoda projektu, kas mitināts vietnē GitHub.

Dramaturgs izmanto pamata kucēnu arhitektūru un vairāk pārvieto to Selēna virzienā, pievienojot tīmekļa automatizācijas ietvaru un uzlabojot to, kā kucēns mijiedarbojas ar lapas saturu. Tas ir paredzēts, lai ātri un ērti instalētu, izmantojot pazīstamu npm sintaksi, izmantojot JavaScript, lai izveidotu tīmekļa lietojumprogrammu automatizāciju un testēšanu. Tas darbojas ar vairākām pārlūkprogrammām, atbalstot pārlūkus, kuru pamatā ir Chromium, piemēram, Edge, kā arī Firefox un Apple WebKit.

Playwright atbalstīto pārlūkprogrammu sarakstā ir svarīgs ziņojums: to nevar izmantot ar pārlūkiem, kuru pamatā ir Trident vai EdgeHTML. Tas nav pārsteidzoši. Microsoft ir stingri apņēmusies izmantot savu Chromium filiāli jaunajā Edge, un gan vecajai Edge, gan Internet Explorer ir tuvu dzīves beigām. Ja testēšanai izmantojat Playwright, jūs pieņemat lēmumu atbalstīt tikai mūsdienu modernās pārlūkprogrammas, tāpēc jums būs jāinformē lietotāji par visu jūsu veidoto un atbalstīto tīmekļa lietojumprogrammu turpmākajiem izlaidumiem.

Tīmekļa pārbaude ar Playwright

Svarīga ir iespēja veikt dažādu platformu testēšanu visās lielākajās pārlūkprogrammās ar vienādu skriptu kopumu, tāpat kā vietņu mobilo versiju atbalsts (tā kā divas galvenās mobilās platformas izmanto savu darbvirsmas pārlūkprogrammu variantus, Playwright pašlaik emulē mobilos skatus darbvirsmas pārlūkprogrammās. ). Svarīgs ir arī atbalsts testiem bez galvas, kur jūs neatveidojat pārlūkprogrammas lietotāja saskarni, tā vietā strādājot ar ģenerēto dokumenta objekta modeli (un ēnu DOM, ja izmantojat modernas pārlūka funkcionalitātes un tehnoloģijas, piemēram, tīmekļa komponentus).

Varat izmantot Playwright, lai automatizētu darbojošos pārlūku izstrādes galddatoros, lai pārbaudītu kļūdas kā daļu no lietojumprogrammu atkļūdošanas, nodrošinot, ka jūs vienmēr konsekventi iziet cauri visiem testa ceļiem, vienlaikus ierakstot papildu veiktspējas informāciju un skatoties, vai nav izsekotu lietotāja saskarnes traucējumu. Alternatīvi, to var iestatīt kā daļu no GitHub darbības, lai pārbaudītu jauno kodu kā daļu no saistības vai apvienošanas, automatizējot to, kas citādi varētu būt sarežģīts manuāls tests.

Dramaturgu testu veidošana un vadīšana

Darba sākšana ar Playwright ir tikpat vienkārša kā jauna Node.js projekta iestatīšana. Pirmkārt, pārbaudāmajās ierīcēs ir jāinstalē Node.js. Tā kā Playwright izmanto Node, varat to palaist izstrādes datoros vai serveros, kas atrodas jūsu CI / CD cauruļvadā, padarot to par daļu no GitHub darbības, kuru var izmantot visā jūsu programmatūras izstrādes procesā. Viss, kas jums nepieciešams, ir viena komanda npm, kas instalē Playwright pakotni, kā arī visu atbalstīto pārlūkprogrammu bināros failus. Kad instalēšana ir pabeigta, varat izveidot automatizācijas skriptus, izmantojot JavaScript vai TypeScript, lai izsauktu Playwright API. Tie visi ir asinhronie zvani, tāpēc izmantojiet gaidīšanas paziņojumus, lai pārvaldītu viņu solījumus.

Rezultāts ir ļoti skaidrs skriptu veidošanas veids, sākot ar pārlūkprogrammas bezgalīgas instances atvēršanu, pēc tam pārejot uz lapu, pirms mijiedarboties ar lapu gadījumiem. Sākumā ir ieteicams izveidot testus ar pilnām pārlūkprogrammām, lai jūs varētu sekot, kā Playwright mijiedarbojas ar jūsu lietojumprogrammu. Noderīga lēnā mo opcija mijiedarbību veic ar cilvēka ātrumu, tādējādi atvieglojot darbvirsmas pārlūkprogrammās veikto testu vizualizāciju un pārvaldību. Kad tests ir atkļūdots un darbojas labi, varat to pārvietot bezroku režīmā un pēc tam palaist kā daļu no CI / CD ieviešanas.

Dramaturgs ietver CLI rīku, kas var ierakstīt mijiedarbību ar vietnēm, automātiski ģenerējot JavaScript, kas nepieciešams testu veikšanai. Opcija codegen ir noderīgs rīks, lai ātri sāktu darbu ar Playwright, parādot kodu, kas mijiedarbojas ar lapas elementiem, kurus pēc tam varat izmantot kā veidni saviem testiem, pēc nepieciešamības kopējot un rediģējot ģenerēto kodu. TypeScript atbalsts var palīdzēt rakstīt sarežģītākus testus, mainīgo pārvaldīšanai izmantojot spēcīgu rakstīšanu.

Darbs ar tīmekļa lietojumprogrammām Playwright

Viena no Playwright noderīgākajām funkcijām ir pārlūka kontekstu atbalsts. Tie ļauj izpildīt atsevišķas darbības vienā pārlūkprogrammas instancē, tāpēc varat iestatīt vairākus kontekstus, lai vienlaikus pārbaudītu vairākas mijiedarbības. Katrā kontekstā jūs izveidojat lapas, kuras vislabāk ir iedomāties kā cilnes darbvirsmas pārlūkprogrammā. Lapas atbalsta viņu pašu mijiedarbību ar klikšķiem, un tās var uzraudzīt paralēli. Kad esat lapā, varat izmantot dažādus veidus, kā atrast saturu, ar kuru mijiedarboties, izmantojot CSS vai XPath atlasītājus, HTML atribūtus vai tekstu. Ja esat iepazinies ar Selenium, jums vajadzētu atrast navigāciju pa pazīstamām lapām ar papildu iespēju gaidīt, līdz lapa tiek pilnībā ielādēta vai dinamiskais saturs tiek atveidots vienas lapas tīmekļa lietojumprogrammā.

Varat izmantot funkciju novērtēt, lai parametrus nosūtītu uz un no tīmekļa lapām uz JavaScript kodu, kas darbojas lapas kontekstā. Rezultāti tiek atgriezti testa skriptu skrējējam vietnē Node.js, lai veiktu analīzi, sniedzot rīkus, kas nepieciešami testu nokārtošanai vai neizdošanai. Dramaturgs strādā ar F12 pārlūka devtooliem, tāpēc tas var paveikt daudz vairāk nekā vienkārši mijiedarboties ar lapas saturu. Tas var uzraudzīt tīkla trafiku, tāpēc to var izmantot, lai pārbaudītu, cita starpā, gan autentifikāciju, gan failu lejupielādi. Tas var piekļūt pārlūka konsolei un ierakstīt kļūdas, kas, iespējams, nav uzreiz redzamas atveidotā lapā: piemēram, CSS problēmu izsekošana vai JavaScript bibliotēkas, kuras neizdodas ielādēt.

Playwright ir daudz, un tas pārlūkprogrammu testēšanai ir pārliecinoša alternatīva Selenium. Tā kā Microsoft nepārtraukti papildina F12 izstrādātāju rīkus Edge, būs interesanti skatīties, kā Playwright pievieno jaunas funkcijas, kas paplašina jūsu iespējas pārbaudīt pārlūkprogrammā mitinātās lietojumprogrammas un progresīvās tīmekļa lietotnes līdzās tradicionālajām tīmekļa lietojumprogrammām.

Papildus JavaScript: testēšana Python un C # versijās

Microsoft nesen izlaida jaunu Playwright versiju izstrādātājiem, kuri izvēlas testus veidot Python, nevis JavaScript. Tā ir noderīga iespēja, jo daudzi esošie Selenium testa ietvari ir balstīti uz Python, un tas ļauj saistīt testēšanas kodu ar analītiskām paketēm, lai iegūtu detalizētāku rezultātu analīzi, izmantojot Python bagātīgo statistikas lietojumprogrammu un rīku ekosistēmu.

Playwright ietver valodas saistījumus C #, lai jūs varētu ieviest Playwright esošajos ASP.NET vai citu .NET rīku testa ietvaros. Lai ieviestu jaunus rīkus, jums nav jāmaina darba veids, un Microsoft sola papildu valodu saistījumus Java un Ruby. Nākotnē ir vairāk iespēju, jo Playwright dokumentācijā ir teikts, ka tā ir izstrādāta, lai atbalstītu jebkuras valodas iesiešanu. Izmantojot visu GitHub kodu, ir iespēja izveidot savas saites izvēlētajai testa valodai un iesniegt tās kā pieprasījumu projektam.

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