Architecture Decision Record

Active theme: Light

← Eisimpleirean de chlàran co-dhùnaidh

Clàr co-dhùnaidh ailtireachd: frèam fèin-ghluasaid brabhsair airson deuchainn E2E (Playwright an aghaidh Selenium)

1. Co-theacsa

Tha sinn sa phròiseas frèam fèin-ghluasaid brabhsair a thaghadh airson ar pìob deuchainn end-to-end (E2E). Bidh am frèam seo riatanach do na pròiseasan CI/CD againn, a’ ruith dheuchainnean a dhèanas atharrais air fìor eadar-obrachaidhean luchd-cleachdaidh air an àrd-ùrlar againn. Gu sònraichte, còmhdaichidh na deuchainnean suidheachaidhean leithid clàradh/clàradh a-steach luchd-cleachdaidh, luchdadh suas fhaidhlichean, eadar-obrachaidhean deas-bhòrd, agus luchdadh sìos aithisgean.

Mar chompanaidh tòiseachaidh, tha ar fòcas air leasachadh lùghdaichte (agile), le feum air ath-aithris agus mean-fhàs luath. Bidh an sgioba againn ag obair sa mhòr-chuid le TypeScript agus Python, agus tha e riatanach deuchainnean a sgrìobhadh sna cànanan sin. A bharrachd air sin, tha clàran-dealbh agus deas-bhùird eadar-ghnìomhach san àrd-ùrlar, a tha ga dhèanamh èiginneach gum bi an inneal fèin-ghluasaid a’ toirt taic mhath do UIan beairteach, dinamach.

Is iad an dà thagraiche airson na h-obrach seo Playwright agus Selenium, gach fear le a neartan agus eadar-dhealachaidhean fhèin. Feumaidh sinn measadh a dhèanamh air na frèamaichean seo stèidhichte air na feartan agus riatanasan a tha air am mìneachadh gu h-ìosal.

2. Roghainnean air am beachdachadh

  • Playwright (le Microsoft)
  • Selenium (le Pròiseact Selenium)

3. Draibhearan co-dhùnaidh

Is iad na factaran a tha a’ toirt buaidh air ar co-dhùnadh:

  1. Leasachadh lùghdaichte (agile): Feumaidh an inneal a thaghar cuairtean leasachaidh luath, sùbailte a leigeil.
  2. Taic chànanan: Feumaidh an sgioba againn taic airson TypeScript agus Python le chèile.
  3. Deuchainn UI eadar-ghnìomhach: Tha e riatanach a bhith comasach air clàran-dealbh eadar-ghnìomhach, deas-bhùird, agus eileamaidean dinamach a dheuchainn gu earbsach.
  4. Astar ùine-ruith: Ged nach e prìomh dhragh a th’ ann, tha coileanadh ann am pìoban CI/CD na bheachdachadh.
  5. So-sgèileachd: Chan eil sinn a’ dealbhadh airson sgèileadh mòr san àm ri teachd dlùth, ach tha sinn airson dèanamh cinnteach gun urrainn don fhuasgladh fàs san àm ri teachd a làimhseachadh.
  6. Co-chòrdalachd air ais: Chan eil siostaman dìleabach agus co-chòrdalachd le brabhsairean nas sine èiginneach don phròiseact againn an-dràsta.
  7. Deuchainn gluasadach: Ged nach e fòcas sa bhad a th’ ann, bu chòir don fhrèam a bhith comasach air feartan freagarrach air guthan gluasadach a dheuchainn no a bhith so-leudachaidh airson a leithid de chùisean cleachdaidh.
  8. Deuchainn ioma-sgrìn: Tha taic airson rèiteachaidhean ioma-sgrìn na dhàrna riatanas, gu sònraichte ma sgèileas sinn gu deuchainn airson sruthan-obrach luchd-cleachdaidh nas toinnte.
  9. Deuchainn luchdadh suas fhaidhlichean: Feumaidh am frèam luchdadh suas fhaidhlichean a làimhseachadh gu h-èifeachdach, prìomh riatanas de na feumalachdan deuchainn againn.

4. Slatan-tomhais measaidh

  • Furasta a chleachdadh: Dè cho furasta ’s a tha e deuchainnean a sgrìobhadh agus a chumail suas?
  • Taic chànanan: A bheil am frèam a’ toirt taic do TypeScript agus Python, an dà chànan as trice a bhios an sgioba againn a’ cleachdadh?
  • Deuchainn UI eadar-ghnìomhach: Dè cho math ’s a làimhsicheas am frèam eadar-aghaidhean cleachdaiche toinnte, eadar-ghnìomhach leithid clàran-dealbh, luchdadh suas fhaidhlichean, agus dàta dinamach?
  • Amalachadh CI/CD: Dè cho math ’s a tha am frèam ag amalachadh ann an innealan is seirbheisean CI/CD cumanta?
  • Taic thar-bhrabhsair: Dè na brabhsairean a tha air an taicinn agus dè cho math ’s a tha iad ag obair?
  • Coileanadh agus astar: Dè cho luath ’s a ruitheas deuchainnean, gu sònraichte ann am pìob CI/CD?
  • So-sgèileachd: Dè cho math ’s as urrainn don fhrèam sgèileadh ma thèid barrachd dheuchainnean no suidheachaidhean nas toinnte a chur ris?
  • Coimhearsnachd agus eag-shiostam: Dè cho gnìomhach ’s a tha coimhearsnachd an fhrèam? A bheil pailteas amalachaidhean agus leudachain ri fhaighinn?

5. Beachdachaidhean

5.1 Playwright

Buannachdan:
  1. API nas tapaidh airson luchdadh suas fhaidhlichean ionadail: Tha API Playwright airson eadar-obrachadh le faidhlichean ionadail agus luchdadh suas fhaidhlichean a dhèanamh nas sìmplidhe agus nas nàdarra. Fàgaidh seo deuchainn luchdadh suas fhaidhlichean nas fhasa a chur an gnìomh agus a chumail suas.
  2. Co-chòrdadh agus gineadh còd: Tha co-chòrdadh nas giorra, nas cuimire aig Playwright. Bidh seo a’ leantainn gu nas lugha de chòd boilerplate, a leasaicheas so-chumail agus èifeachdas luchd-leasachaidh. A bharrachd air sin, leasaichidh an co-chòrdadh nas giorra seo càileachd gineadh còd OpenAI, ga dhèanamh nas fhasa sgriobtaichean deuchainn a ghineadh gu fèin-obrachail.
  3. Deuchainn UI eadar-ghnìomhach: Tha Playwright air leth math air aplacaidean-lìn dinamach, eadar-ghnìomhach a dheuchainn, leithid feadhainn le clàran-dealbh beairteach, eadar-obrachaidhean luchd-cleachdaidh toinnte, agus ùrachaidhean fìor-ùine. Bidh e a’ làimhseachadh WebSockets, WebRTC, shadow DOMs, agus teicneolasan-lìn ùr-nodha eile gu math èifeachdach.
  4. Taic thar-bhrabhsair: Bheir Playwright taic do Chromium, WebKit, agus Firefox. Tha coileanadh cunbhalach aige thar nam brabhsairean sin, a bu chòir a’ mhòr-chuid de ar feumalachdan deuchainn a chòmhdach.
  5. Amalachadh CI/CD: Bidh Playwright ag amalachadh gun fhuaigheal le àrd-ùrlaran CI/CD ùr-nodha (GitHub Actions, Jenkins, msaa.). Faodaidh e deuchainnean a ruith co-shìnte thar diofar bhrabhsairean, ag optimachadh amannan ruith dheuchainnean agus ga dhèanamh freagarrach airson leasachadh luath.
  6. Luath agus earbsach: Tha Playwright nas luaithe na Selenium san fharsaingeachd, gu sònraichte ann am modh headless, agus nas seasmhaiche nuair a bhios e a’ dèiligeadh ri eileamaidean-lìn asyncronach.
Eas-bhuannachdan:
  1. Deuchainn ghluasadach chuingealaichte: Ged a bheir Playwright taic do atharrais gluasadach airson bhrabhsairean, tha comasan deuchainn gluasadach dùthchasach a dhìth air mar amalachadh Selenium le Appium airson fìor dheuchainn ghluasadach.
  2. Eag-shiostam nas lugha: Tha Playwright fhathast nas ùire agus nas lugha stèidhichte na Selenium. Ged a tha coimhearsnachd a’ fàs gu luath agus deagh sgrìobhainnean aige, is dòcha nach eil eag-shiostam mòr de phlugainean is amalachaidhean aige fhathast mar a tha aig Selenium.
  3. Taic bhrabhsairean chuingealaichte: Ged a chòmhdaicheas Playwright na prìomh bhrabhsairean ùr-nodha (Chrome, Safari, Firefox), chan eil an taic aige airson bhrabhsairean dìleabach (m.e., Internet Explorer) cho làidir ri taic Selenium.

5.2 Selenium

Buannachdan:
  1. Eachdraidh nas fhaide agus aibidheachd: Tha Selenium air a bhith timcheall airson ùine mhòr agus tha clàr-obrach dearbhte aige. Tha e air a chleachdadh gu farsaing thar mòran sgiobaidhean is gnìomhachasan, a tha air leantainn gu eag-shiostam mòr de phlugainean, amalachaidhean, agus ghoireasan.
  2. Taic thar-bhrabhsair agus thar-àrd-ùrlair: Bheir Selenium taic do raon farsaing de bhrabhsairean agus thionndaidhean, a’ gabhail a-steach Internet Explorer, agus faodar a amalachadh cuideachd le diofar innealan leithid Docker, Selenium Grid, agus seirbheisean neòil airson deuchainn sgaoilte.
  3. Deuchainn ghluasadach: Tha Selenium, tro amalachadh le Appium, tòrr nas làidire airson deuchainn ghluasadach, a’ gabhail a-steach aplacaidean Android agus iOS. Tha seo ga dhèanamh na roghainn nas fheàrr do phròiseactan le fòcas mobile-first no mobile-heavy.
  4. Deuchainn ioma-sgrìn: Bheir Selenium taic nas fheàrr do shuidheachaidhean a tha a’ gabhail a-steach grunn sgrìn no eadar-obrachaidhean ioma-uinneig toinnte.
Eas-bhuannachdan:
  1. Iom-fhillteachd: Tha API Selenium nas briathraiche agus nas soilleire. Ged a dh’fhaodas seo a bhith na bhuannachd ann an cuid de chùisean, tha e a’ ciallachadh barrachd còd ri sgrìobhadh agus ri chumail suas, a dh’fhaodadh sùbailteachd luchd-leasachaidh a lùghdachadh—gu sònraichte cudromach ann an àrainneachd tòiseachaidh.
  2. Coileanadh: Mar as trice ruitheas Selenium nas slaodaiche na Playwright, gu sònraichte ann am modh headless. Dh’fhaodadh seo buaidh a thoirt air pìoban CI/CD, gu sònraichte mar a dh’fhàsas àireamh nan deuchainnean.
  3. Deuchainn UI eadar-ghnìomhach: Chan eil Selenium cho rèidh ri Playwright a thaobh UIan-lìn ùr-nodha, eadar-ghnìomhach a dheuchainn, gu sònraichte le clàran-dealbh agus ùrachaidhean dàta fìor-ùine. Feumaidh e barrachd suidheachaidh is làimhseachaidh gus eadar-obrachadh gu earbsach le susbaint dinamach.

6. Geàrr-chunntas coimeas

Feart Playwright Selenium
Furasta a chleachdadh Co-chòrdadh nas giorra, nas nàdarra airson UIan ùr-nodha Nas soilleire, feumaidh barrachd boilerplate
Taic chànanan TypeScript, Python, JavaScript TypeScript, Python, Java, Ruby, C#
Deuchainn UI eadar-ghnìomhach Sàr-mhath airson UIan dinamach, fìor-ùine Làimhsichidh e UIan bunaiteach, ach nas briathraiche is toinnte airson eadar-obrachaidhean beairteach
Deuchainn luchdadh suas fhaidhlichean API nas tapaidh airson luchdadh suas fhaidhlichean Nas briathraiche, API nach eil cho nàdarra
Amalachadh CI/CD Amalachadh furasta le GitHub Actions, Jenkins Amalachadh làidir le mòran innealan CI
Deuchainn ghluasadach Cuingealaichte, dìreach atharrais Làn thaic tro Appium
Taic thar-bhrabhsair Chromium, WebKit, Firefox Làn thaic thar bhrabhsairean mòra is dìleabach
Coileanadh Luath, optimaichte airson deuchainn headless Nas slaodaiche, gu sònraichte ann am modh headless
Deuchainn ioma-sgrìn Cuingealaichte Deagh thaic airson suidheachaidhean ioma-sgrìn
Coimhearsnachd agus eag-shiostam A’ fàs, deagh sgrìobhainnean Mòr, aibidh, eag-shiostam farsaing

7. Co-dhùnadh

Às dèidh beachdachadh air na riatanasan agus na h-eadar-dhealachaidhean, is e Playwright an roghainn as fheàrr airson ar feumalachdan làithreach. Tha an API nas tapaidh aige airson deuchainn luchdadh suas fhaidhlichean ionadail, co-chòrdadh cuimir, agus taic làidir airson deuchainn UI eadar-ghnìomhach ga dhèanamh freagarrach airson ar cuairt leasachaidh agile. Tha e riatanach don sgioba againn gu bheil e a’ toirt taic do TypeScript agus Python le chèile, agus leigidh dòigh-obrach ùr-nodha an fhrèam do dheuchainn dhuinn còd glan a ghabhas cumail suas a sgrìobhadh.

Ged a tha Selenium fhathast na dheagh inneal, gu sònraichte airson deuchainn ghluasadach, taic brabhsairean dìleabach, agus suidheachaidhean ioma-sgrìn, chan eil e cho freagarrach airson ar feumalachdan làithreach. Tha a bhriathrachas, coileanadh nas slaodaiche, agus làimhseachadh nas toinnte de UIan dinamach leithid clàran-dealbh ga dhèanamh nas lugha freagarrach airson ar cùis chleachdaidh.

8. Builean

  • Gnìomh sa bhad: Gabhaidh sinn Playwright airson ar deuchainn E2E, a’ cuimseachadh air deuchainn sruthan luchd-cleachdaidh a’ gabhail a-steach clàradh, clàradh a-steach, luchdadh suas fhaidhlichean, deas-bhùird, agus luchdadh sìos aithisgean.
  • Beachdachaidhean fad-ùine: Cumaidh sinn sùil air eag-shiostam Playwright a tha a’ tighinn air adhart. Ma dh’atharraicheas na feumalachdan againn, gu sònraichte mu dheidhinn deuchainn ghluasadach no taic airson bhrabhsairean dìleabach, dh’fhaodadh sinn ath-bheachdachadh air Selenium.
  • Trèanadh agus sgrìobhainnean: Feumaidh sgiobaidhean leasachaidh fàs eòlach air API Playwright, gu sònraichte airson UIan dinamach agus luchdadh suas fhaidhlichean a làimhseachadh.
  • Imrich: Thèid deuchainnean Selenium a th’ ann (ma tha gin ann) imrich gu mean air mhean gu Playwright.

9. Beachdachaidhean san àm ri teachd