Ẹyọ 4 / 11

Adaaṣe Idanwo UI: Ṣiṣẹda Selenium, Playwright ati koodu Cypress pẹlu AI

Awọn anfani:

  • Agbara lati ṣe agbejade koodu idanwo UI ti o lagbara pẹlu oye atọwọda, pẹlu data-testid, ṣiṣi duro, ati sọ pe o jẹrisi abajade olumulo gidi.
  • Agbara lati yago fun awọn idanwo ẹlẹgẹ (oluyan buburu, idaduro afọju) ati jẹ ki awọn idanwo rọrun lati ṣetọju ni eto awoṣe Nkan Oju-iwe
  • Agbara lati ṣe idanwo gbogbo idanwo UI ti a ṣe nipasẹ kikan koodu ati rii ati ṣatunṣe awọn idanwo iro-ṣe

Gbogbo titẹ, gbogbo fọọmu kun, gbogbo iyipada oju-iwe ti olumulo ṣe ni ẹrọ aṣawakiri kan ko le ṣe idanwo leralera nipasẹ ọwọ - iyẹn ni idi ti adaṣe idanwo UI (ni wiwo olumulo; awọn idanwo wọnyi farawe ihuwasi olumulo nipasẹ ṣiṣe ẹrọ aṣawakiri gidi kan) wa. Selenium, Playwright ati Cypress jẹ awọn irinṣẹ ti o wọpọ julọ fun iṣẹ yii. Oye itetisi atọwọda (AI) jẹ oye pupọ ni kikọ koodu fun awọn irinṣẹ wọnyi: o ṣapejuwe ọran idanwo kan, AI fun ọ ni iwe afọwọkọ adaṣe adaṣe kan ti o le ṣiṣẹ. Ṣugbọn nibi ikilọ aringbungbun ti module yii tun wa sinu ere lẹẹkansi: koodu idanwo UI ti AI gbejade le jẹ awọn idanwo ẹlẹgẹ nigbagbogbo ti “imọlẹ alawọ ewe ṣugbọn rii daju ohun ti ko tọ” tabi gbigbọn ni afẹfẹ. Iṣẹ rẹ kii ṣe lati ṣiṣẹ koodu yii, ṣugbọn lati rii daju pe o jẹri ni otitọ ohun ti o tọ.

Ninu ẹyọ yii, a ni ifọkansi lati ṣe agbejade awọn idanwo UI ti o lagbara, ti o le ṣetọju ati otitọ ni otitọ pẹlu AI; Iwọ yoo kọ ẹkọ lati yago fun awọn idanwo ẹlẹgẹ.

Awọn ọwọn mẹta ti idanwo UI to lagbara

1. Atunse eroja locator. Idanwo kan nlo oluyan lati wa nkan ti o wa ni oju-iwe naa. AI nigbagbogbo ṣe agbejade awọn yiyan brittle: awọn ipa ọna XPath gigun (adirẹsi ti o gbẹkẹle pupọ lori eto oju-iwe), awọn yiyan ti o da lori awọn orukọ kilasi CSS (fifọ nigbati awọn ayipada apẹrẹ). Awọn logan ọna jẹ idurosinsin eroja bi data-testid ti awọn Olùgbéejáde fi kun fun igbeyewo. Fi idi eyi han ni gbangba lori AI.

2. Iduro gbangba. Orisun nọmba akọkọ ti ailagbara ni idanwo UI jẹ akoko. Oorun igbagbogbo (3) (iduro afọju) jẹ iwa buburu: nigbami ko to, nigbami o padanu akoko. Ọna ti o pe ni lati lo idaduro ti o fojuhan, eyiti o sọ pe “duro titi nkan yii yoo fi han”. Playwright wo ni yi ibebe laifọwọyi; Ni Selenium o gbọdọ beere ni gbangba.

3. Ifarabalẹ ti o nilari. Idanwo naa yẹ ki o jẹrisi abajade ti olumulo yoo rii gangan - bii “nọmba aṣẹ han loju iboju,” kii ṣe “ti kojọpọ oju-iwe nikan.” Ti idanwo ti a ṣe nipasẹ AI ko ba ni idaniloju tabi ko ṣe pataki, idanwo yẹn ṣe agbejade pseudo-pass (ẹyọ 1st).

Išọra: Nigba ti o ba akọkọ ri ohun AI-ipilẹṣẹ UI igbeyewo, ṣayẹwo mẹta ohun ni julọ: ti wa ni awọn olutayo (data-testid), ti wa ni nduro lori (ko si afọju orun), ati ki o daju awọn gangan olumulo esi? Ti awọn mẹtẹẹta wọnyi ba dara, idanwo naa ṣee ṣe ri to.

Awoṣe Ohun Oju-iwe

Bi awọn idanwo ti n dagba sii, kikọ awọn yiyan inu idanwo kọọkan di alaburuku itọju. Awoṣe Nkan Oju-iwe (POM - apẹrẹ apẹrẹ ti o gba awọn yiyan ati awọn iṣe fun oju-iwe kọọkan / iboju sinu kilasi kan) tọju oluyan ni aaye kan; Nigbati wiwo ba yipada, o ṣe imudojuiwọn ni faili kan. Jẹ ki AI gbejade awọn idanwo ni eto POM, dipo taara; Eleyi mu ki itọju yatq rọrun.

Ailagbara kiakia / Alagbara kiakia

Alailagbara: "Kọ idanwo Selenium fun oju-iwe wiwọle."
Alagbara: "Kọ idanwo sisan iwọle pẹlu Playwright (TypeScript). Awọn oluyanju nikan lo data-testid; maṣe lo iṣakoso ohun ti olumulo n rii, kii ṣe akọle oju-iwe."

Imudani ti o lagbara; Ọpa naa funni ni ede, eto imulo yiyan, ilana iduro, faaji (POM) ati ireti idaniloju asọye.

Idanwo data ati ominira ayika

Idanwo UI to lagbara ko ni kikọ ni deede, ṣugbọn tun kọ ati sọ data idanwo tirẹ di mimọ. Awọn idanwo ti ipilẹṣẹ AI nigbagbogbo ni asopọ si olumulo tabi igbasilẹ ti o ro pe o ti wa tẹlẹ ni agbegbe (“wole bi olumulo abojuto”). Iroro yii ba fọ nigbati idanwo naa ba ṣiṣẹ ni agbegbe miiran tabi lẹhin idanwo miiran (iṣoro igbẹkẹle aṣẹ ni ẹyọ 9). Otitọ ni pe gbogbo idanwo ṣẹda data ti o nilo ni ibẹrẹ idanwo naa (tabi murasilẹ pẹlu ipe API) ati sọ di mimọ ni ipari. Sọtọtọ fun AI lati “ṣeto eyikeyi data ti idanwo yii da lori laarin idanwo naa; maṣe gba data ti a ti ṣetan lati ita.”

Ojuami pataki miiran kii ṣe lati ṣe idanwo UI pẹlu data olumulo gidi. Ti a ba lo ẹda data iṣelọpọ kan ni agbegbe idanwo, awọn igbasilẹ wọnyi jẹ data ti awọn eniyan gidi; awọn sikirinisoti ati awọn gbigbasilẹ idanwo le ṣafihan data yii. Lo awọn iroyin idanwo sintetiki (itan-itan); o mejeeji ṣe aabo fun asiri ati mu ki awọn idanwo tun ṣe. Ṣiṣe idanwo “ifagile aṣẹ” pẹlu akọọlẹ alabara gidi jẹ mejeeji iṣe iṣe iṣe ati aṣiṣe iṣẹ.

Imọran: Jeki awọn idanwo UI diẹ bi o ti ṣee; Fi ijẹrisi gangan silẹ si API ati awọn idanwo ẹyọkan, eyiti o yara ati iduroṣinṣin. Idanwo UI jẹ gbowolori ati brittle - lo nikan lati jẹrisi ṣiṣan olumulo opin-si-opin nitootọ (ọgbọn idanwo jibiti).

Ifiwera ọkọ

ẹya-ara

selenium

oṣere ere

cypress

awọn ede

Java, C#, Python, JS

JS/TS, Python, .NET, Java

JavaScript / TypeScript

laifọwọyi imurasilẹ

Rara (nipa ọwọ)

Bẹẹni (lagbara)

Bẹẹni

Olona aṣawakiri

igboro

Chromium/Firefox/WebKit

Chromium-ti o pọju

ifarahan lati brittleness

Giga (imurasilẹ pẹlu ọwọ)

kekere

kekere

Irọrun ti ẹkọ

alabọde

rorun

rorun

ni afiwe isẹ

Akoj ti a beere

ti a ṣe sinu

Olugbe / san

Nigbati o ba n beere koodu kan lati AI, sọ kedere iru ọkọ ti o jẹ ti; Bibẹẹkọ, o le ṣe iruju, koodu ti kii ṣiṣẹ.

Mẹrin daakọ awọn awoṣe

1) iran idanwo UI to lagbara:

Rẹ ipa: oga igbeyewo automation engineer.Write igbeyewo pẹlu [tool + ede] fun awọn wọnyi sisan: [sisan].Ofin: - Selectors data-testid nikan; Lilo XPath / CSS-kilasi. - Ko si orun afọju; Lo o fojuhan/duro aifọwọyi. - Waye Page Nkan awoṣe. - Jẹ ki kọọkan sọ daju esi olumulo gangan. Ọrọìwòye ni ibẹrẹ idanwo kọọkan eyiti awọn ibeere gbigba ti o n fọwọsi.

2) Iṣakoso fragility:

Ṣayẹwo idanwo UI atẹle fun brittleness: - Njẹ yiyan ti ko duro (gun

3) Iyipada si Nkan Oju-iwe:

Ṣe iyipada koodu idanwo itele ti o tẹle sinu eto Awoṣe Ohun Oju-iwe. Gbe awọn yiyan ati awọn iṣe si awọn kilasi oju-iwe; Jẹ ki awọn igbeyewo faili ka nikan ohn sisan. [Ọpa/ede].Koodu: [koodu lẹẹmọ]

4) Ẹri-iyipada-iyipada:

Jẹrisi pe idanwo UI yii jẹ ifọwọsi ni otitọ: Iyipada ẹyọkan wo ni MO ṣe si koodu ohun elo ti yoo tan idanwo yii RED? Ti o ko ba le rii iyipada ti yoo fọ idanwo naa, idanwo naa ko to; fi sonu asserts.Test: [paste tests]

mẹta mini igba

Irú 1 - Ominira lati ẹlẹgẹ selector. Ninu awọn idanwo 40 ẹgbẹ kan ti a ṣe pẹlu AI, 70% ti bajẹ lẹhin imudojuiwọn wiwo; ko si ọkan ninu wọn ti o jẹ awọn idun gangan, gbogbo wọn jẹ awọn yiyan XPath ẹlẹgẹ. Awọn egbe iyipada awọn igbeyewo sinu kan data-testid mimọ pẹlu "ayẹwo fragility" awoṣe. Lori awọn imudojuiwọn wiwo mẹta ti nbọ, nọmba awọn fifọ eke ti lọ silẹ si odo; akoko itọju dinku lati awọn wakati 6 si awọn iṣẹju 30 fun ọsẹ kan.

Ọran 2 - Iro-gba UI igbeyewo. AI ṣe agbejade idanwo “fi kun fun rira”; igbeyewo je alawọ ewe. Nigbati awoṣe “ẹri-ti-passage” ti ṣiṣẹ, idanwo naa han lati ṣayẹwo bọtini tẹ nikan ati akọle oju-iwe, ko rii daju boya kọnputa rira ti pọ si tabi rara. Paapa ti o ba jẹ pe ọgbọn-ọgbọn kẹkẹ ti bajẹ patapata, idanwo naa kọja. Imudaniloju otitọ ti a ṣafikun (baaji fun rira jẹ "1").

Case 3 - Afoju idaduro pakute. Ninu idanwo Selenium ti AI ṣe, oorun wa (2) lẹhin igbesẹ kọọkan; Awọn idanwo 60 gba iṣẹju 14 ati pe o tun fọ lẹẹkọọkan. Lẹhin ti yi pada lati ṣii idaduro (duro fun eroja lati wa ni titẹ) akoko naa lọ si awọn iṣẹju 5 ati brittleness ti sọnu. Afọju nduro je mejeeji o lọra ati ki o unreliable.

Awọn aṣiṣe ti o wọpọ

  • Gbigba si awọn ayanfẹ ẹlẹgẹ. Lilo awọn XPaths gigun ti ipilẹṣẹ nipasẹ AI bi o ṣe jẹ; Awọn idanwo jamba ni wiwo wiwo akọkọ.
  • Nlọ afọju 'orun'. "Ipinnu" akoko pẹlu idaduro ti o wa titi; mejeeji lọra ati indecisive.
  • Isọdi bintin. Kan rii daju pe oju-iwe naa ti kojọpọ; ko ṣayẹwo abajade olumulo gangan (iro-kọja).
  • Dagba laisi POM. Pin awọn yiyan si idanwo kọọkan; Pẹlu ọwọ mimu dosinni ti awọn faili nigbati wiwo ayipada.
  • Ko pato awọn ọpa. Ko sọ fun AI kini irinṣẹ / ede ti o fẹ; n ni idoti, ti kii-ṣiṣẹ koodu.
  • Ni igbẹkẹle nigbati o ba ṣiṣẹ koodu ti ipilẹṣẹ ati kọja. Ko ṣe idanwo nipasẹ kikan koodu naa.

Ni soki

Idanwo adaṣe UI jẹri ihuwasi olumulo nipa wiwakọ ẹrọ aṣawakiri gangan pẹlu eto naa. AI ṣe ipilẹṣẹ koodu yii ni kiakia, ṣugbọn awọn ọfin nla meji lo wa: awọn idanwo brittle (oluyan buburu, afọju nduro) ati awọn idanwo ti n kọja iro (apejuwe / assert bintin). Awọn ọwọn mẹta ti idanwo UI to lagbara jẹ oluyan oluṣe (data-testid), durode ni gbangba, ati sọ pe o jẹrisi abajade olumulo gangan. Nini awọn idanwo ti ipilẹṣẹ ni Awoṣe Nkan Oju-iwe jẹ ki itọju di irọrun. Idanwo kọọkan ti ipilẹṣẹ igbeyewo pẹlu ibeere "kini iyipada yoo fọ eyi?"

Ohun elo iṣẹ-ṣiṣe

Yan ṣiṣan olumulo lati inu iṣẹ akanṣe tirẹ (fun apẹẹrẹ buwolu wọle tabi wiwa). Jẹ ki AI kọ awọn idanwo pẹlu awoṣe “iran idanwo UI to lagbara”. Lẹhinna: (1) ṣayẹwo ati ṣatunṣe awọn yiyan ki o duro pẹlu “ayẹwo fragility” kan, (2) jẹri pe idanwo kọọkan jẹri ni otitọ pẹlu “ẹri apseudo-pass”, (3) fọ koodu naa ki o ṣe akiyesi pe idanwo naa yipada pupa. Jabọ nọmba ti awọn idanwo ti a ṣe ati atunṣe, ati nọmba awọn ailagbara ati awọn ipasẹ afarape ti o rii.

akojọ ayẹwo

  • [] Mo fun AI ni ohun elo, ede, eto imulo yiyan ati faaji (POM) kedere.
  • [] Mo ti jerisi pe awọn selectors ni o wa data-testid.
  • [] Mo rii daju pe o lo fojuhan/duro aifọwọyi dipo oorun afọju.
  • [] Mo ṣayẹwo pe ọkọọkan jẹri esi olumulo gangan.
  • [] Mo ṣe idanwo idanwo kọọkan nipa fifọ koodu naa; Mo rii pe o di pupa.
  • [] Mo ti gba awọn igbeyewo ni Page Nkan awoṣe be.