Architecture Decision Record

Active theme: Light

← Samplaí de thaifid chinntí

Taifead cinnidh ailtireachta: creat uathoibrithe brabhsálaí le haghaidh tástála E2E (Playwright nó Selenium)

1. Comhthéacs

Táimid i mbun creat uathoibrithe brabhsálaí a roghnú dár bpíblíne tástála ceann go ceann (E2E). Beidh an creat seo ina chuid dhílis dár bpróisis CI/CD, ag rith tástálacha a insamhlaíonn fíor-idirghníomhaíochtaí úsáideoirí ar ár n-ardán. Go sonrach, clúdóidh na tástálacha cásanna amhail clárú/síniú isteach úsáideora, uaslódálacha comhad, idirghníomhaíochtaí painéil, agus íoslódálacha tuarascála.

Mar thionscnamh nua, tá ár bhfócas ar fhorbairt agile, le gá le hatriall agus forbairt thapa. Oibríonn ár bhfoireann go príomha le TypeScript agus Python, agus tá an cumas tástálacha a scríobh sna teangacha seo riachtanach. Ina theannta sin, tá cairteacha agus painéil idirghníomhacha ar an ardán, rud a fhágann go bhfuil sé ríthábhachtach go dtacaíonn an uirlis uathoibrithe go maith le UIanna saibhre, dinimiciúla.

Is iad Playwright agus Selenium an dá iomaitheoir don tasc seo, agus tá a láidreachtaí agus a gcothromaíochtaí féin ag gach ceann acu. Ní mór dúinn meastóireacht a dhéanamh ar na creataí seo bunaithe ar na gnéithe agus na riachtanais atá leagtha amach thíos.

2. Roghanna a Breithníodh

  • Playwright (ag Microsoft)
  • Selenium (ag Tionscadal Selenium)

3. Tiomántóirí Cinnidh

Is iad seo a leanas na fachtóirí a chuireann isteach ar ár gcinneadh:

  1. Forbairt Agile: Ní mór don uirlis roghnaithe cuir ar chumas timthriallta forbartha tapa, solúbtha.
  2. Tacaíocht Teanga: Teastaíonn tacaíocht do TypeScript agus Python araon ó ár bhfoireann.
  3. Tástáil UI Idirghníomhach: Tá an cumas cairteacha idirghníomhacha, painéil, agus eilimintí dinimiciúla a thástáil go hiontaofa riachtanach.
  4. Luas Ama Rite: Cé nach príomhimní é, is breithniú é feidhmíocht i bpíblíní CI/CD.
  5. Inscálaitheacht: Nílimid ag pleanáil do scálú ollmhór sa todhchaí láithreach, ach ba mhaith linn a chinntiú gur féidir leis an réiteach fás sa todhchaí a láimhseáil.
  6. Comhoiriúnacht Chúlghabhálach: Níl córais oidhreachta agus comhoiriúnacht le brabhsálaithe níos sine ríthábhachtach dár dtionscadal faoi láthair.
  7. Tástáil Ghluaiste: Cé nach fócas láithreach é, ba cheart go mbeadh an creat in ann gnéithe freagrúla gluaiste a thástáil nó a bheith inleathnaithe do chásanna úsáide den chineál sin.
  8. Tástáil Il-mhonatóra: Is riachtanas tánaisteach é tacaíocht do chumraíochtaí il-mhonatóra, go háirithe má scálaímid riamh go tástáil sreafaí oibre úsáideora níos casta.
  9. Tástáil Uaslódála Comhad: Ní mór don chreat uaslódálacha comhad a láimhseáil go héifeachtúil, riachtanas lárnach dár riachtanais tástála.

4. Critéir Mheastóireachta

  • Éascaíocht Úsáide: Cé chomh héasca is atá sé tástálacha a scríobh agus a chothabháil?
  • Tacaíocht Teanga: An dtacaíonn an creat le TypeScript agus Python, an dá theanga is minice a úsáideann ár bhfoireann?
  • Tástáil UI Idirghníomhach: Cé chomh maith agus a láimhseálann an creat comhéadain úsáideora chasta, idirghníomhacha amhail cairteacha, uaslódálacha comhad, agus sonraí dinimiciúla?
  • Comhtháthú CI/CD: Cé chomh maith agus a chomhtháthaíonn an creat in uirlisí agus seirbhísí CI/CD coitianta?
  • Tacaíocht Tras-Bhrabhsálaí: Cé na brabhsálaithe a dtacaítear leo agus cé chomh maith agus a fheidhmíonn siad?
  • Feidhmíocht agus Luas: Cé chomh tapa agus a ritheann tástálacha, go háirithe i bpíblíne CI/CD?
  • Inscálaitheacht: Cé chomh maith agus is féidir leis an gcreat scálú má chuirtear tuilleadh tástálacha nó cásanna níos casta leis?
  • Pobal agus Éiceachóras: Cé chomh gníomhach is atá pobal an chreata? An bhfuil neart comhtháthaithe agus síntí ar fáil?

5. Breithnithe

5.1 Playwright

Buntáistí:
  1. API Níos Cliste do Uaslódálacha Comhad Áitiúil: Tá API Playwright d'idirghníomhú le comhaid áitiúla agus uaslódálacha comhad a dhéanamh níos simplí agus níos intuigthe. Dhéanfadh sé seo tástáil uaslódála comhad níos éasca a chur i bhfeidhm agus a chothabháil.
  2. Comhréir agus Giniúint Cód: Tá comhréir níos giorra, níos gonta ag Playwright. Mar thoradh air seo tá níos lú cód boilerplate, rud a fheabhsaíonn inchothabháilteacht agus éifeachtúlacht forbróirí. Ina theannta sin, feabhsaíonn an chomhréir ghiorra seo cáilíocht ghiniúna cód OpenAI, rud a fhágann go bhfuil sé níos éasca scripteanna tástála a ghiniúint go huathoibríoch.
  3. Tástáil UI Idirghníomhach: Is fearr le Playwright feidhmchláir ghréasáin dhinimiciúla, idirghníomhacha a thástáil, amhail iad siúd le cairteacha saibhre, idirghníomhaíochtaí casta úsáideora, agus nuashonruithe fíor-ama. Láimhseálann sé WebSockets, WebRTC, shadow DOMs, agus teicneolaíochtaí gréasáin nua-aimseartha eile go han-éifeachtach.
  4. Tacaíocht Tras-Bhrabhsálaí: Tacaíonn Playwright le Chromium, WebKit, agus Firefox. Tá feidhmíocht chomhsheasmhach aige ar fud na mbrabhsálaithe seo, rud ba cheart a chlúdóidh formhór ár riachtanas tástála.
  5. Comhtháthú CI/CD: Comhtháthaíonn Playwright gan uaim le hardáin CI/CD nua-aimseartha (GitHub Actions, Jenkins, srl.). Is féidir leis tástálacha a rith go comhthreomhar ar fud brabhsálaithe éagsúla, ag barrfheabhsú amanna rite tástála agus á fhágáil oiriúnach d'fhorbairt thapa.
  6. Tapa agus Iontaofa: Tá Playwright níos tapúla ná Selenium go ginearálta, go háirithe i mód headless, agus níos athléimní agus eilimintí gréasáin asincronacha á láimhseáil.
Míbhuntáistí:
  1. Tástáil Ghluaiste Theoranta: Cé go dtacaíonn Playwright le hiarmhíniú gluaiste do bhrabhsálaithe, níl cumais tástála gluaiste dhúchasacha aige cosúil le comhtháthú Selenium le Appium le haghaidh fíor-thástála gluaiste.
  2. Éiceachóras Níos Lú: Tá Playwright níos nuaí agus níos lú bunaithe ná Selenium fós. Cé go bhfuil pobal atá ag fás go tapa agus doiciméadú maith aige, b'fhéidir nach bhfuil éiceachóras fairsing breiseán agus comhtháthaithe aige go fóill a thairgeann Selenium.
  3. Tacaíocht Brabhsálaí Theoranta: Cé go gclúdaíonn Playwright na príomhbhrabhsálaithe nua-aimseartha (Chrome, Safari, Firefox), níl a thacaíocht do bhrabhsálaithe oidhreachta (m.sh., Internet Explorer) chomh láidir le tacaíocht Selenium.

5.2 Selenium

Buntáistí:
  1. Stair Níos Faide agus Aibíocht: Tá Selenium ann le fada an lá agus tá taifead cruthaithe aige. Úsáidtear go forleathan é ar fud go leor foirne agus tionscal, rud a d'eascair éiceachóras fairsing breiseán, comhtháthaithe, agus acmhainní.
  2. Tacaíocht Tras-Bhrabhsálaí agus Tras-Ardáin: Tacaíonn Selenium le héagsúlacht leathan brabhsálaithe agus leaganacha, lena n-áirítear Internet Explorer, agus is féidir é a chomhtháthú le huirlisí éagsúla amhail Docker, Selenium Grid, agus seirbhísí scamall le haghaidh tástála dáilte.
  3. Tástáil Ghluaiste: Tá Selenium, trína chomhtháthú le Appium, i bhfad níos láidre le haghaidh tástála gluaiste, lena n-áirítear feidhmchláir Android agus iOS araon. Fágann sé seo gurb é an rogha is fearr é do thionscadail a bhfuil fócas ghluaiste-ar-dtús nó mór-ghluaiste orthu.
  4. Tástáil Il-mhonatóra: Soláthraíonn Selenium tacaíocht níos fearr do chásanna ina bhfuil il-mhonatóirí nó idirghníomhaíochtaí casta il-fhuinneoige.
Míbhuntáistí:
  1. Castacht: Tá API Selenium níos fadálaí agus níos follasaí. Cé go bhféadfadh sé seo a bheith ina bhuntáiste i gcásanna áirithe, ciallaíonn sé níos mó cód le scríobh agus le cothabháil, rud a d'fhéadfadh agilíocht forbróirí a laghdú—rud atá tábhachtach go háirithe i dtimpeallacht tionscnaimh nua.
  2. Feidhmíocht: Ritheann Selenium níos moille ná Playwright go ginearálta, go háirithe i mód headless. D'fhéadfadh tionchar a bheith aige seo ar phíblíní CI/CD, go háirithe de réir mar a mhéadaíonn líon na dtástálacha.
  3. Tástáil UI Idirghníomhach: Níl Selenium chomh réidh le Playwright maidir le UIanna gréasáin nua-aimseartha, idirghníomhacha a thástáil, go háirithe le cairteacha agus nuashonruithe sonraí fíor-ama. Teastaíonn níos mó socraithe agus láimhseála chun idirghníomhú go hiontaofa le hábhar dinimiciúil.

6. Achoimre Comparáide

Gné Playwright Selenium
Éascaíocht Úsáide Comhréir níos giorra, níos intuigthe do UIanna nua-aimseartha Níos follasaí, éilíonn níos mó boilerplate
Tacaíocht Teanga TypeScript, Python, JavaScript TypeScript, Python, Java, Ruby, C#
Tástáil UI Idirghníomhach Sármhaith do UIanna dinimiciúla fíor-ama Láimhseálann UIanna bunúsacha, ach níos fadálaí agus níos casta d'idirghníomhaíochtaí saibhre
Tástáil Uaslódála Comhad API níos cliste d'uaslódálacha comhad Níos fadálaí, API níos lú intuigthe
Comhtháthú CI/CD Comhtháthú éasca le GitHub Actions, Jenkins Comhtháthú láidir le go leor uirlisí CI
Tástáil Ghluaiste Teoranta, iarmhíniú amháin Tacaíocht iomlán trí Appium
Tacaíocht Tras-Bhrabhsálaí Chromium, WebKit, Firefox Tacaíocht iomlán ar fud mórbhrabhsálaithe agus brabhsálaithe oidhreachta
Feidhmíocht Tapa, barrfheabhsaithe le haghaidh tástála headless Níos moille, go háirithe i mód headless
Tástáil Il-mhonatóra Teoranta Tacaíocht mhaith do shocruithe il-mhonatóra
Pobal agus Éiceachóras Ag fás, doiciméadú maith Mór, aibí, éiceachóras fairsing

7. Cinneadh

Tar éis na riachtanais agus na cothromaíochtaí a mheas, is é Playwright an rogha is fearr dár riachtanais reatha. Fágann a API níos cliste do thástáil uaslódála comhad áitiúil, a chomhréir ghonta, agus a thacaíocht láidir do thástáil UI idirghníomhach gur oiriúnú idéalach é dár dtimthriall forbartha agile. Tá an fíoras go dtacaíonn sé le TypeScript agus Python araon ríthábhachtach dár bhfoireann, agus ceadóidh cur chuige nua-aimseartha an chreata do thástáil dúinn cód glan, inchothabhála a scríobh.

Cé go bhfanann Selenium ina uirlis iontach, go háirithe do thástáil ghluaiste, do thacaíocht brabhsálaí oidhreachta, agus do shocruithe il-mhonatóra, tá sé níos lú oiriúnach dár riachtanais reatha. Fágann a fhadálacht, a fheidhmíocht níos moille, agus láimhseáil níos casta UIanna dinimiciúla amhail cairteacha é níos lú optamach dár gcás úsáide.

8. Iarmhairtí

  • Gníomh Láithreach: Glacfaimid Playwright dár dtástáil E2E, ag díriú ar thástáil sreafaí úsáideora lena n-áirítear clárú, síniú isteach, uaslódálacha comhad, painéil, agus íoslódálacha tuarascála.
  • Breithnithe Fadtéarmacha: Coinneoimid súil ar éiceachóras Playwright atá ag forbairt. Má athraíonn ár riachtanais, go háirithe maidir le tástáil ghluaiste nó tacaíocht do bhrabhsálaithe oidhreachta, d'fhéadfaimis Selenium a athbhreithniú.
  • Oiliúint agus Doiciméadú: Beidh ar fhoirne forbartha éirí eolach ar API Playwright, go háirithe chun UIanna dinimiciúla agus uaslódálacha comhad a láimhseáil.
  • Imirce: Aistreofar tástálacha Selenium atá ann cheana (más ann dóibh) go Playwright go céimniúil.

9. Breithnithe don Todhchaí