სელენიუმი სრულყოფილი არ არის?

სელენიუმი დღეს ხშირად უარყოფით შეფასებას იღებს

ბოლო პერიოდში სელენიუმს ხშირად აკრიტიკებენ. ამბობენ, რომ ის ნელია და “Playwright და Cypress” ტესტირების მომავალია. თუმცა, სამივე ხელსაწყოსთან მუშაობის გამოცდილებაზე დაყრდნობით შემიძლია ვთქვა, რომ სელენიუმი არა მარტო გადარჩება, არამედ კვლავ წარმატებით განვითარდება.

სიჩქარე – შეცდომაში შემყვანი ფაქტორი

Cypress და Playwright მართლაც უფრო სწრაფია. მაგრამ სიჩქარე ყოველთვის სანდოობის საწინდარი არ არის.
Cypress-ის ტესტები სწრაფია? დიახ, თუმცა როცა აპლიკაცია რთულ ავტენტიფიკაციას ან მრავალ მიმართულებას შეიცავს, ეს უპირატესობა მნიშვნელობას კარგავს.
რაც შეეხება Playwright-ს? მისი სისწრაფეც ნაკლებად გამოსადეგია, როდესაც მემკვიდრეობითი სისტემების ან არასტანდარტული DOM სტრუქტურების ტესტირებაა საჭირო.რადგან მას კიდევ ბევრი რამე აქვს გასანვითარებელი.

რატომ არიან ეს ხელსაწყოები უფრო სწრაფები? უმეტეს შემთხვევაში, სწრაფი კლიკების გამო. მაგრამ რეალურ მომხმარებლებს კლიკის შესრულებამდე დრო სჭირდებათ – ფიქრობენ, გადაწყვეტილებას იღებენ. ამიტომ, სისწრაფის უპირატესობა ხშირად მხოლოდ ილუზია და რადგან არ გვაძლევს იმ შედეგს რაც რეალურია.
(ნუ რა თქმა უნდა გამონაკლისებიც არსებობს)

თანამედროვე ჩარჩოების/ფრეიმვორქების დაფარული ხარჯები

მწარმოებლის დაბმა

Cypress გვაბამს მათივე სისტემაში და გვაიძულებს მათი წესებით თამაშს 🙂 Playwright გვიბიძგებს მათი ინსტრუმენტების ეკოსისტემისკენ.
სელენიუმი კი ჩვენ გვერგება ანუ რაც გინდა ის გამოიყენე ყველაფერთან ინტეგრირებადია. გინდათ TestNG, JUnit, NUnit ან თუნდაც თავად გინდა რაიმე ქასთუმ შექმნათ? იქაც მარტივად დაინტეგრირდება. სელენიუმი ყველასთან მეგობრობს, ასე რომ არჩევანში ხარ თავისუფალი.

ეს თავისუფლება დიდ გავლენას ახდენს. მაგალითად, გჭირდებათ რაიმე ტიპის რეპორტინგის ინტეგრაცია?
სელენიუმის ეკოსისტემამ შესაძლოა უკვე მოაგვარა ეს პრობლემა. გინდათ პარალელურად გაუშვათ ტესტები სხვადასხვა პარამეტრების მიხედვით?
სელენიუმის არქიტექტურა მარტივად აგვარებს ამას. მოკლედ რომ ვთქვათ, რაც უფრო დიდი ფრეიმვორქის დაწერა მოგიწევთ, მით უფრო დააფასებთ სელენიუმს 🙂

ბრაუზერის მხარდაჭერა

Cypress და Playwright მხარს უჭერენ ძირითად ბრაუზერებს, მაგრამ სელენიუმი მხარს უჭერს ყველაფერს. გჭირდებათ Internet Explorer-ზე ტესტირება?
(ნუ რატომ უნდა დაგჭირდეს IE-ზე ტესტირება, მაგრამ ეგეც ხდება ხოლმე) სელენიუმი მზად არის. Chromium-ზე დაფუძნებული ბრაუზერის გამოყენება გინდა?
სელენიუმი ამასაც აკეთებს უპრობლემოდ.

სწავლის ბარიერი

Playwright და Cypress თავიანთი API-ებითა და კონვენციებით გამოდიან და გვაიძულებენ დავემორჩილოთ მათ წესებს.
თქვენს გუნდს უწევს ამ კონკრეტული წესების შესწავლა. სელენიუმთან კი, თუ HTML/CSS სელექტორები და საბაზისო პროგრამირება იცით, ყველაფერი ბევრად მარტივია 🙂

„ნელი“ შეიძლება იყოს უფრო სწრაფი

აქ არის პარადოქსული სიმართლე: სელენიუმის „ნელობა“ სინამდვილეში უპირატესობაა რეალური სამყაროს ტესტირების პროცესში.

  • ელემენტის პოვნა: სელენიუმის მოლოდინის/მოცდის/ვეითების მექანიზმები უკეთ იმეორებს რეალური მომხმარებლის ქცევას.
  • ბრაუზერების ერთგვაროვნება: სელენიუმის ტესტი ერთნაირად მუშაობს ყველა ბრაუზერში.
  • სიცხადე: ნელი შესრულება უფრო რეალურ ტესტირებას იძლევა (უფრო ადამიანურ ქცევაზეა დამსგავსებული).

სწორი არჩევანის გაკეთება

თუ წერთ/ქმნით მცირე ან საშუალო ზომის აპლიკაციას თანამედროვე არქიტექტურით, გამოიყენეთ Cypress ან Playwright.
მაგრამ თუ საქმე გაქვთ დიდი მასშტაბის აპლიკაციებთან, მემკვიდრეობით სისტემებთან ან რთულ არქიტექტურებთან, სელენიუმი საუკეთესო არჩევანია.

ახლა კი რომ შევაჯამოთ

ტესტირების სამყაროში მხოლოდ სიჩქარეზე ფიქრი არასწორია. ტესტირების ფრეიმვორქების უფრო მნიშვნელოვანი კომპონენტი არის ის თუ რამდენად ეფექტურად ინარჩუნებს ხარისხს.
სელენიუმი სრულყოფილი არ არის. საკმაოდ მოძველებულიც არის მაგრამ არის გამოცდილი და სანდო 🙂

კომენტარის დატოვება

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები მონიშნულია *