Bölüm 4 / 11

UI synag awtomatizasiýasy: AI bilen Selen, dramaturg we Cypress kody döretmek

Girdeji:

  • Emeli intellekt bilen ygtybarly UI synag koduny öndürip bilmek, şol sanda maglumatlary barlamak, açyk garaşmak we hakyky ulanyjynyň netijesini tassyklaýan tassyklama
  • Gowşak synaglardan (erbet saýlaýjy, kör garaşmak) gaça durmak we Sahypanyň obýekt modeliniň gurluşynda synaglary aňsatlaşdyrmak
  • Kody döwmek we öndürilen galp synaglary ýüze çykarmak we düzetmek arkaly öndürilen her UI synagyny barlamak ukyby

Ulanyjynyň brauzerde eden her gezek basylmagy, her görnüşi doldurylmagy, sahypanyň her gezek geçirilmegi el bilen gaýtalanyp bilinmez - şonuň üçin UI synag awtomatizasiýasy (ulanyjy interfeýsi; bu synaglar hakyky brauzeri programma taýdan sürmek arkaly ulanyjynyň özüni alyp barşyna meňzeýär) bar. Selen, dramaturg we Cypress bu iş üçin iň köp ulanylýan gural. Emeli intellekt (AI) bu gurallaryň koduny ýazmaga ökde: synag synagyny suratlandyrýarsyňyz, AI size işleýän awtomatlaşdyryş skriptiniň taslamasyny berýär. Hereöne bu ýerde bu modulyň merkezi duýduryşy ýene-de güýje girýär: AI öndürýän UI synag kody köplenç “ýaşyl öwüsýän, ýöne nädogry zady barlaýan” ýa-da şemalda çişýän gowşak synaglar bolup biler. Siziň işiňiz bu kody işletmek däl-de, hakykatdanam dogry zady berk tassyklaýandygyna göz ýetirmek.

Bu bölümde, AI bilen ygtybarly, durnukly we hakykatdanam tassyklaýan UI synaglaryny öndürmegi maksat edinýäris; Gowşak synaglardan gaça durmagy öwrenersiňiz.

Gaty UI synagynyň üç sütüni

1. Dogry element tapyjy. Synag, sahypadaky elementi tapmak üçin saýlaýjyny ulanýar. AI köplenç döwük saýlaýjylary öndürýär: uzyn XPath ýollary (sahypanyň gurluşyna aşa bagly salgy), CSS synp atlaryna esaslanýan saýlaýjylar (dizaýn üýtgän mahaly arakesme). Ygtybarly usul, döredijiniň synag üçin goşan maglumatlary-testid ýaly durnukly häsiýetlerdir. Muny AI-e aç-açan ýükläň.

2. Açyk garaşmak. UI synagynda gowşak goralanlygyň birinji çeşmesi wagt. Üznüksiz uky (3) (kör garaşmak) erbet amal: käwagt ýeterlik däl, käwagt wagt ýitirýär. Dogry ýol, "bu element peýda bolýança garaşyň" diýilýän aç-açan garaşmakdan peýdalanmakdyr. Dramaturg muny esasan awtomatiki ýerine ýetirýär; Seleniýada aç-açan haýyş etmeli.

3. Manyly tassyklama. Synag, ulanyjynyň hakykatdanam görjek netijesini barlamaly - diňe “sahypa ýüklenen” däl-de, “ekranda sargyt belgisi peýda boldy”. AI tarapyndan öndürilen synagda tassyklama ýok bolsa ýa-da ähmiýetsiz bolsa, bu synag pseudo-pass (1-nji bölüm) öndürýär.

Üns beriň: AI-den döredilen UI synagyny ilkinji gezek göreniňizde, üç zady barlaň: saýlaýjylar (maglumatlar-testid), garaşýarlarmy (kör uky ýok) we tassyklama ulanyjynyň hakyky netijesini tassyklaýarmy? Bu üçüsi gowy bolsa, synag gaty ähtimal.

Sahypanyň obýekt modeli

Synaglar ulaldygyça, her synagyň içinde saýlaýjylary ýazmak tehniki düýş görýär. Sahypanyň obýekt modeli (POM - her sahypa / ekran üçin saýlaýjylary we hereketleri bir klasa ýygnaýan dizaýn nagşy) saýlaýjyny bir ýerde saklaýar; Interfeýs üýtgese, ony bir faýlda täzelärsiňiz. AI synaglary gönüden-göni däl-de, POM gurluşynda öndürmegini isläň; Bu tehniki hyzmaty düýpgöter aňsatlaşdyrýar.

Gowşak haýyş / Güýçli haýyş

Gowşak: "Giriş sahypasy üçin Selen synagyny ýazyň."
Güýçli: "Dramaturg (TypeScript) bilen giriş akymynyň synagyny ýazyň. Saýlaýjylar diňe data-testid ulanýarlar; sahypanyň adyny däl-de, ulanyjynyň görýän zadyny dolandyrmaň."

Güýçli haýyş; Gural dil, saýlaýjy syýasaty, garaşmak strategiýasy, arhitektura (POM) we täsirli garaşma berýär.

Maglumatlary we daşky gurşawyň garaşsyzlygyny barlaň

Gaty UI synagy diňe bir dogry ýazylman, eýsem öz synag maglumatlaryny gurýar we arassalaýar. AI tarapyndan döredilen synaglar köplenç ulanyja ýa-da daşky gurşawda bar diýlip hasaplanylýan ýazgy bilen baglanyşýar (“administrator ulanyjy hökmünde giriň”). Synag başga gurşawda ýa-da başga bir synagdan soň (9-njy bölümde garaşlylyk meselesi) ýüze çykanda bu çaklama bozulýar. Hakykat, her synag synagyň başynda zerur maglumatlary döredýär (ýa-da ony API jaňy bilen taýýarlaýar) we ahyrynda arassalaýar. AI-e "bu synag synagyň çägine bagly bolan islendik maglumatlary gurmak; daşardan taýýar maglumatlary kabul etmäň" diýip aç-açan görkezme beriň.

Anotherene bir möhüm zat, hakyky ulanyjy maglumatlary bilen UI synagyny geçirmek däl. Synag gurşawynda önümçilik maglumatlar bazasynyň göçürmesi ulanylsa, bu ýazgylar hakyky adamlaryň maglumatlarydyr; skrinşotlar we synag ýazgylary bu maglumatlary açyp biler. Sintetiki (toslama) synag hasaplaryny ulanyň; ikisi hem gizlinligi goraýar we synaglary köpeldýär. Hakyky müşderi hasaby bilen "sargytlary ýatyrmak" synagyny geçirmek hem ahlak taýdan hem-de amaly ýalňyşlykdyr.

Maslahat: UI synaglaryny mümkin boldugyça az saklaň; Hakyky barlagy çalt we durnukly API we birlik synaglaryna goýuň. UI synagy gymmat we döwük - diňe ahyrky ulanyjy akymyny barlamak üçin ulanyň (piramida logikasyny synap görüň).

Ulaglary deňeşdirmek

aýratynlygy

selen

dramaturg

serwi

dilleri

Java, C #, Python, JS

JS / TS, Python, .NET, Java

JavaScript / TypeScript

awto garaşma

(Ok (el bilen)

Hawa (güýçli)

Hawa

Köp brauzer

giň

Hrom / Firefox / WebKit

Hrom agdyklyk edýär

gödeklik meýli

Highokary (el bilen garaşmak)

pes

pes

Okuw aňsatlygy

orta

aňsat

aňsat

parallel işlemek

Grid gerek

gurlan

Identaşaýjy / tölegli

AI-den kod soranyňyzda, haýsy ulaga degişlidigini aýdyň; Otherwiseogsam, bulaşyk, işlemeýän kod döredip biler.

Göçürip boljak dört şablon

1) Gaty UI synag nesli:

Siziň roluňyz: ýokary derejeli synag awtomatlaşdyryş inereneri. Aşakdaky akym üçin [gural + dil] bilen synaglary ýazyň: [akym]. Düzgünler: - Diňe saýlaýjylar maglumat-testid; XPath / CSS-synpy ulanmak. - Kör uky ýok; Açyk / awtomatiki garaşmagy ulanyň. - Sahypanyň obýekt modelini ulanyň. - Her tassyklama hakyky ulanyjy netijesini barlasyn. Her synagyň başynda haýsy kabul ediş kriteriýalaryny tassyklaýandygyňyzy düşündiriň.

2) döwüklige gözegçilik:

Gödeklik üçin aşakdaky UI synagyny gözden geçiriň: - Durnuksyz saýlaýjy barmy (uzyn

3) Sahypanyň obýektine öwrülişi:

Aşakdaky ýönekeý synag koduny Page Object Model gurluşyna öwüriň. Saýlaýjylary we hereketleri sahypa synplaryna geçiriň; Synag faýly diňe ssenariýa akymyny okaň. [Gural / dil] .Kod: [kod goýmak]

4) Pseudo-geçiş subutnamasy:

Bu UI synagynyň hakykatdanam tassyklanýandygyny subut ediň: Bu synagy RED öwürjek programma koduna haýsy üýtgeşiklik girizýärin? Synagy bozjak üýtgeşme tapyp bilmeseňiz, synag ýeterlik däl; ýiten tassyklamalary goşuň. Synag: [pasta synagy]

üç sany kiçi halat

1-nji waka - gowşak saýlaýjydan azatlyk. AI bilen öndürilen 40 synagdan 40% interfeýs täzelenenden soň bozuldy; bularyň hiç biri-de hakyky kemçilik däldi, hemmesi gowşak XPath saýlaýjylarydy. Topar synaglary "gowşaklygy barlamak" şablony bilen maglumat synag bazasyna öwürdi. Indiki üç interfeýs täzelenmesinde ýalan arakesmeleriň sany nola düşdi; hyzmat ediş wagty hepdede 6 sagatdan 30 minuta çenli azaldy.

2-nji waka - galp geçýän UI synagy. AI “araba goşmak” synagyny döretdi; synag ýaşyl boldy. "Akeasama subutnama-geçiş" şablony işledilende, synag diňe düwmäniň basylmagyny we sahypanyň adyny barlamak üçin, araba hasaplaýjysynyň köpelendigini ýa-da ýokdugyny barlamaz ýaly boldy. Araba logikasy düýbünden bozulan hem bolsa, synag geçdi. Hakyky tassyklama goşuldy (arabanyň nyşany "1").

3-nji waka - Kör garaşýan duzak. AI tarapyndan öndürilen Selen synagynda her ädimden soň uky bardy (2); 60 synag 14 minut dowam etdi we henizem wagtal-wagtal bozuldy. Açyk garaşmaga geçenden soň (elementiň basylmagyna garaşyň) wagt 5 minuda çenli azaldy we gödeklik ýitdi. Kör garaşmak hem haýal, hem ygtybarly däldi.

Adaty ýalňyşlyklar

  • Gowşak saýlaýjylara razy. AI tarapyndan döredilen uzyn XPathlary bolşy ýaly ulanmak; Synaglar ilkinji interfeýs üýtgäninde ýykylýar.
  • Kör "uky" goýmak. Bellenen garaşmak bilen wagty "çözmek"; haýal we karar beriji.
  • Ujypsyz tassyklama. Sahypanyň ýüklenendigini barlaň; hakyky ulanyjy netijesini barlamazlyk (ýasama pass).
  • POM bolmasa ulalyň. Her synaga saýlaýjylary paýlaň; Interfeýs üýtgese onlarça faýly el bilen täzeläň.
  • Gural görkezilmeýär. AI-e haýsy gural / dil isleýändigiňizi aýtmazlyk; bulaşyk, işlemeýän kod almak.
  • Döredilen kody işledip, geçende ynanmak. Kody bozup synag etme.

Gysgaça

UI synag awtomatizasiýasy, hakyky brauzeri programma bilen sürüp, ulanyjynyň özüni alyp barşyny barlaýar. AI bu kody çalt döredýär, ýöne iki sany uly ýalňyşlyk bar: döwük synaglar (erbet saýlaýjy, kör garaşmak) we galp synaglar (doly däl / ownuk tassyklama). Gaty UI synagynyň üç sütüni, ulanyjynyň hakyky netijesini tassyklaýan aç-açan garaşmak we tassyklamak üçin saýlaýjydyr (data-testid). Sahypanyň obýekt modelinde döredilen synaglaryň bolmagy tehniki hyzmaty düýpgöter aňsatlaşdyrýar. Her döredilen synagy "muny haýsy üýtgeşiklik bozar?" Diýen sorag bilen barlaň.

Programma meselesi

Öz taslamaňyzdan ulanyjy akymyny saýlaň (meselem, giriş ýa-da gözleg). AI-de “ygtybarly UI synag nesli” şablony bilen synag synaglaryny ýazyň. Soňra: (1) saýlaýjylary barlaň we düzediň we "näziklik barlagy" bilen garaşyň, (2) her synagyň hakykatdanam "pseudo-pass subutnamasy" bilen tassyklanýandygyny subut ediň, (3) kody bozuň we synagyň gyzarýandygyny görüň. Öndürilen we düzedilen synaglaryň sanyny, tapylan gowşaklyklaryň we pseudo-paslaryň sanyny habar beriň.

gözegçilik sanawy

  • [] AI-a gural, dil, saýlaýjy syýasaty we arhitekturany (POM) aç-açan berdim.
  • [] Saýlaýjylaryň maglumatlary barlaýandyklaryny tassykladym.
  • [] Kör ukynyň ýerine aç-açan / awtomatiki garaşmagy ulanmagy makul bildim.
  • [] Her tassyklamanyň hakyky ulanyjy netijesini barlaýandygyny barladym.
  • [] Her synagy kody bozup synagdan geçirdim; Gyzyl öwrülendigini gördüm.
  • [] Synaglary Page Object Model gurluşynda ýygnadym.