
Playwright эсвэл Cypress: нэг тестийн хурд бус, browser хүрээ ялгарна

Gosik, Miłosz нарын Angular аппын судалгаанд таван E2E урсгал тус бүрийг хөтчийн цонхгүй горимд давтан ажиллуулахад Playwright Cypress-ээс хурдан гарсан. Хэмжилтийг нэг апп, нэг локал машинд хийсэн тул энэ үр дүн танай төслийн CI хугацааг шууд таамаглахгүй.
Шинэ E2E тестүүдэд Chromium, Firefox, WebKit-ийг тогтвортой хамруулах шаардлага давамгайлж байвал Playwright илүү тодорхой сонголт. Cypress-ийн Angular component test болон алдаа оношлох урсгал аль хэдийн багийн ажилд суусан бол хурдны ганц давуу талыг шилжүүлгийн зардалтай хамт үнэлэх хэрэгтэй. Гол ялгаа нь хөтчүүдийн нэр төдий бус, WebKit-ийн дэмжлэг ямар төлөвтэй байгаа болон тэнд хэрэгтэй үйлдлүүд ажиллах эсэх юм.
Хурдны үр дүн ямар нөхцөлд гарсан бэ?
Судалгааны апп нь хурдан унших, бичих, ой тогтоолтын дасгалтай. Сонгосон урсгалууд нь бүртгэл, бичих хичээл, Шульцын хүснэгт, тоо эрэмбэлэх тоглоом, хэрэглэгчийн илгээсэн асуудлыг администратор шалгах үйлдлийг хамарсан. Тестийн өгөгдлийг ажиллуулалт бүрийн өмнө сэргээх тусгай боломж нэмсэн нь өмнөх туршилтын үлдэгдэл дараагийн үр дүнд нөлөөлөхөөс сэргийлжээ.
Хугацааг тестийн процесс эхэлснээс дуусах хүртэл хэмжсэн. Ийм хэмжилтэд хөтөч болон тестийн орчныг эхлүүлэх зардал ч орно; зөвхөн хуудсан дээрх товч дарах хурдыг хэмжээгүй. Судалгаанд Playwright-ийн хугацааны хэлбэлзэл мөн бага байсан ч багийн бодит CI орчинд сүлжээ, өгөгдлийн сан, зэрэгцээ job, тайлан хадгалах үе шат нэмэгдэнэ. Тиймээс локал хэмжилтийн ялгааг нийт suite-ийн хугацаа эсвэл шинэ тест бичихэд гарах хэмнэлттэй адилтгаж болохгүй.
Кодын хэмжээгээр ч нэг чигийн ялалт гараагүй: администраторын урсгалд Playwright хоёр browser context ашигласан тул тухайн тестийн код Cypress-ийнхээс урт болсон. Энэ нь олон эрхтэй хэрэглэгчийн үйлдлийг хэрэгжүүлэх арга тестийн хэмжээнд нөлөөлдгийг харуулна. Богино код өөрөө засвар үйлчилгээ хялбар болохыг батлахгүй; давтагдсан туслах код, locator-ийн тогтвортой байдал, алдаа гарсан үед олдох мэдээлэл бас чухал.
Хөтчийн хамрах хүрээг юугаар харьцуулах вэ?
Playwright-ийн суулгах баримтжуулалт Chromium, Firefox, WebKit-ийг үндсэн E2E тохиргоонд багтааж, тестүүдийг эдгээр орчинд зэрэгцүүлэн ажиллуулахыг тайлбарладаг. Шаардлагатай browser binary-г суулгах алхам нь локал орчин болон CI тохиргоонд орно. Ижил урсгалын үр дүнг хөтөч бүрээр ялгаж харах боломж нь зөвхөн нэг хөтөч дээр амжилттай ажилласан тестээс илүү мэдээлэл өгнө.
Cypress-ийн browser ажиллуулах зааварт Chrome төрлийн хөтчүүд болон Firefox дэмжигддэг, харин WebKit туршилтын төлөвтэй гэж тэмдэглэсэн. WebKit-д нэмэлт тохиргоо, тусдаа багц шаардлагатай бөгөөд энэ горимд cy.origin() болон Test Replay ажиллахгүй. Иймээс Cypress WebKit-ийг огт ажиллуулахгүй гэсэн дүгнэлт буруу, гэхдээ туршилтын дэмжлэгийг үндсэн дэмжлэгтэй ижил эрсдэлтэй гэж тооцож болохгүй.
Хөтчийн матрицад бүтээгдэхүүний нэрийн хажууд тухайн хөтчийн дэмжлэгийн төлөв, CI-д суулгах нөхцөл, заавал ажиллах хэрэглэгчийн үйлдлийг бичих нь ашигтай. Жишээлбэл, өөр домэйн рүү шилждэг нэвтрэх урсгал WebKit дээр зайлшгүй шалгагдах ёстой бол Cypress-ийн cy.origin() хязгаарлалт шийдвэрт шууд нөлөөлнө. WebKit дээр ажилласан тест нь Safari-ийн бүх төхөөрөмж, хувилбарын шалгалтыг орлохгүй; шаардлагаа browser хөдөлгүүр эсвэл бодит төхөөрөмжийн түвшинд тодорхойлох хэрэгтэй.
Component test ба алдаа оношилгооны үнэ цэнэ
Cypress-ийн бүтээгдэхүүний тайлбар E2E болон Angular component testing-ийг нэг ажлын урсгалд санал болгож, алхам бүрийн төлөвийг эргэн харах Time Travel боломжийг дурддаг; өргөтгөсөн Cypress Accessibility нь төлбөртэй үйлчилгээ юм. Component-ийг тусгаарлан browser дотор ажиллуулах нь бүтэн апп эхлүүлэхгүйгээр дүрслэл, харилцан үйлчлэлийг шалгах өөр төрлийн ажил. Тиймээс E2E хурдны судалгаа багийн component test-ийн өдөр тутмын ашиг тусыг хэмжсэн гэсэн үг биш.
Playwright-д UI Mode, алхмын мэдээлэл, HTML тайлан бий. Хоёр хэрэгслийн алдаа оношилгоог харьцуулахад тест унасны дараа ямар төлөв хадгалагдсан, ямар хүсэлт эсвэл үйлдэл алдаа үүсгэснийг олж болох эсэх нь цонхны харагдах байдлаас илүү чухал. Cypress-ийн одоогийн тестийн санд баг аль хэдийн танил locator, туслах команд, component fixture ашигладаг бол эдгээрийг дахин бичих хугацаа сонголтын бодит өртөгт орно.
CI-д хурдыг хэрхэн ойлгох вэ?
Нэг тест хурдан дуусах нь нийт suite хурдан дуусна гэсэн баталгаа биш. CI-д хөтчийг суулгах, апп болон өгөгдлийн санг эхлүүлэх, тестийн өгөгдөл бэлтгэх, тайлан хадгалах хугацаа нэмэгдэнэ. Зэрэгцээ ажиллах урсгалууд нэг бүртгэл эсвэл нэг өгөгдлийг хуваалцвал хүлээлт болон санамсаргүй алдаа өсөж болно. Энэ нь framework-ийн гүйцэтгэлээс тусдаа асуудал.
Cypress Cloud-ийн зэрэгцүүлэлтийн заавар CI машинуудын хооронд тестийг spec файлаар хуваарилж, үүнд бичлэгтэй ажиллуулалт шаарддаг. Файлын хэмжээ, доторх тестийн хугацаа тэнцвэргүй бол нэмэлт машин бүр ижил хэмжээний ашиг өгөхгүй. Playwright-ийн суурь тохиргоо тестүүдийг зэрэгцүүлэн ажиллуулдаг тул хоёр хэрэгслийг харьцуулахдаа ижил тооны CI ажилтан, ижил өгөгдөл бэлтгэл, ижил browser хүрээтэй бүтэн ажиллуулалтын дуусах хугацааг авч үзэх нь зөв.
Шилжүүлгийн ажлын хуудас: ижил урсгал, ижил баталгаа
Одоо байгаа Cypress suite-ийг Playwright руу шилжүүлэх үнэ цэнийг мэдэхийн тулд судалгааны урсгалуудтай дүйцэх ажлыг хоёр хэрэгсэлд ижил нөхцөлөөр буулгаж болно. Доорх нь судалгааны аппын бодит үйлдлүүд; танай бүтээгдэхүүнд таарахгүй бол ижил эрсдэл шалгадаг урсгалаар орлуулна. Хоёр талд эхний өгөгдөл, хэрэглэгчийн эрх, эцсийн баталгаа өөр байвал хугацааны зөрүүг хэрэгслийн ялгаа гэж тайлбарлах боломжгүй.
- Бүртгэл: буруу оролтын алдаа, зөв оролтын амжилт, баталгаажуулалт, дахин нэвтрэлтийг хамруул. Зөвхөн бүртгүүлэх товч дарах тест бүтэн бүртгэлийн урсгалтай дүйхгүй.
- Бичих хичээл: дасгал эхлэх, түр зогсоход хугацаа зогсох, оролдлогын үр дүн хадгалагдах, ахиц шинэчлэгдэхийг ижил өгөгдлөөр шалга.
- Шульцын хүснэгт: зөв болон буруу сонголтын дараах оноо, дасгал дууссаны дараах үр дүнг батал. Хоёр хэрэгсэлд ижил төлөвийг шалгах locator сонго.
- Тоо эрэмбэлэх: чирж байрлуулах үйлдэл хийгдсэн эсэхээс гадна дараалал болон эцсийн үр дүн зөв гарсныг батал.
- Асуудал шийдвэрлэх: хэрэглэгчийн илгээсэн мэдээлэл администраторын орчинд зөв харагдахыг шалга. Эрх тусгаарлалт болон тестийн дараах цэвэрлэгээг хоёр хэрэгсэлд ижил болго.
Урсгал бүрд бичих, засах болон алдаа оношлоход зарцуулсан хугацаа; хөтөч тус бүрийн үр дүн; давтан ажиллуулахад гарсан тогтворгүй алдааг нэг мөрөөр тэмдэглэвэл шилжүүлгийн өртөг харагдана. Одоогийн Cypress туслах командууд, fixture, component test-үүдээс хэд нь дахин бичигдэхийг мөн тооцох хэрэгтэй. Шинэ E2E урсгалыг Playwright-д бичих нь ашигтай байлаа ч хуучин бүх тестийг нэг дор хөрвүүлэх шийдвэр тусдаа тооцоо шаарддаг.
Ингээд сонголт хэрэглэгчдийн ашигладаг хөтөч болон багийн тестийн сангаас хамаарна. WebKit-ийн үндсэн дэмжлэг чухал, E2E suite-ийг шинээр байгуулж байгаа багт Playwright хүчтэй хувилбар. Cypress-ийн component test, алдаа оношилгоо болон бэлэн suite аль хэдийн үнэ цэнтэй бол түүнийг хадгалж, зөвхөн шаардлагатай урсгалын browser хүрээг тусад нь шийдэх нь боломжтой.
Мөн уншаарай:
Холбоотой нийтлэлүүд


Google My Activity-г устгасан ч browser history үлдэнэ: хоёуланг цэвэрлэ

Jira эсвэл Azure DevOps: самбар уу, бүтэн DevOps багц уу

Namespace $42 сая босгов: AI кодын өсөлт дата төв хүртэл хүрчээ

AI-ийн бичсэн кодыг merge хийхээс өмнө долоон шалгалт хий

Docker Compose контейнер асахыг бэлэн болсонтой бүү андуур: healthcheck нэм
Мэдээллийн товхимолд бүртгүүлэх
Web3, AI болон криптоны шинэ мэдээг шууд имэйл хайрцагтаа аваарай.