Нээлттэй эх код / Савлагаа.

Бүтэн интернэт хуудсыг шалгах хэрэгсэл.

"browser-tester" нь Rust хэлээр бүтээгдсэн, тодорхой алгоритмтай, веб браузер шиг ажилладаг тестийн программ юм. Энэ нь жинхэнэ браузер ашиглалгүйгээр DOM (Document Object Model) болон үйл явцдын үйлчилгээг шалгадаг.

Цавчим. Тогтмол ажиллагааны хугацаа. DOM тестилэг.

Энэхүү программ хангайн багцаас ямар үр дүн авч болох вэ.

"Browser-tester" нь бүрэн дүүгэн браузерын горимд ажиллах боломжийг шалгахын оронд, хэлбэрүүд болон интерфейсийн урьдчилан төлөвлөгдсөн ажиллагааг шалгах зорилготой.

Зөвхөн Rust хэлээр бичигдсэн программ ажиллагаалах орчин.

Энэ нь ганц Rust програмын дотор ажилладаг. Бусад программ, жишээлбэл, веб браузер, WebDriver эсвэл Node.js-ийн дэмжлэг хэрэггүй.

Тодорхой төлөвлөгөөгөөр явагдах гүйлт.

Бүтэн бүтэн туршилтуудыг давтан хийхэд тохиромжтой байхыг зорилго болгосон: хуурамч цаг, тодорхой шинжтэй хайрга үүсгэх систем, мөн цагийн улаан байдлыг тодорхой хянахаар зохион бүтээсэн интерфейсүүд ашиглагдсан.

DOM болон үйл явцлын туршилтууд.

Браузертой ажиллахдаа хэрэглэгддэг олон функц, жишээ нь: элементүүдийг сонгох, скриптийг шууд ажиллуулах, үйл явдлыг дамжуулах, мөн DOM-ийн өөрчлөлтийг дэмждэг.

Шуурхай, орон нутгийн түвшинд санал сэтгэл хүлээж авах.

Формд суурилсан интерфейсийн тестийн хувьд, хурдан хариу өгөх системийг ашиглаж, алдааны мэдээллүүдийг сонгогч элементүүд болон төлөвлөгдсөн/бодит утгууд дээр төвлөрдөг байх.

Шилдэг хэрэгслийг хэрэглэх заавар.

HTML-ийг ашиглан туршилтын орчиг (harness) үүсгэж, өөр өөр үйлчилгээг туршиж, DOM-ийн үр дүнг шалгаж байх боломжтой. Эхлээд жижиг туршилтын орчиг үүсгэж, дараа нь цагийн тохируулга эсвэл хуурамч API-уудыг ашиглан өргөтгөж болно.

Суулгах.

cargo програманд "browser_tester" гэсэн багцыг нэмж өг.

Бага дээж.

Гол API интерфейс.

"Harness Actions + Assertions" гэдэг нь "Үйл ажиллагаа болон баталгаажуулалтыг зохицуулах" гэсэн утгатай байж болно. Энэ нь үйл ажиллагаануудыг зохицуулж, тухайн үйл ажиллагаануудын үр дүнд баталгаа өгөхөөс ярьж байгаа байх.

Гол DOM тестийн үйл ажиллагаа: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` болон текст, утга, сонгогдсон байдал, байршил зэргийг шалгах тусламж үйлчилгээнүүд.

Тодорхой хугацаатай таймерүүд.

Асинхрон үйлдлийг төлөвлөгдсөн цаг ашиглан хянаж болно. `advance_time`, `advance_time_to`, `flush` болон цагийн тохиргоог шалгах API-уудыг ашиглан цагийг тодорхой хэлбэрээр урагдуулах боломжтой.

Орондоо суурилуулсан хуурамч тохируулга.

Тестүүдийг тусгаарлаж байхаар, `set_fetch_mock`, `enqueue_confirm_response` болон `enqueue_prompt_response` функцийгууд ашиглан, серверээс авсан хариултууд болон утаа залгасны үр дүнүүдийг тохируулж бай.

Шилжилтийг ажиглах ба оношилгооны хэрэгслүүд.

Шинжилгээ бүтэлгүйдсэн үед, бүртгэлүүдийг идэвхжүүлж, үйл явдал болон цагийн урсгалыг цуглуулна. Энэ нь үйл явдлын дарааллыг болон угсар газарх үйл ажиллагааны асуудлыг илрүүлэхэд тустай.

Ажиллагааны зальтай бодлого.

  • "eval" функц нь аюулгүй байдал болон тогтвортой байдлыг хадгалах зорилгоор санаатайгаар дэмжлэггүй болгосон.
  • Энэхүү программ нь бодит туршилтын нөхцөлүүдийг хангахад чиглэгдсэн бөгөөд бүх төрлийн интернэт хөтөчтэй бүрэн нийтлэгдэхийг зориноогүй юм.
  • Гадна шүлэгтэй холболтын оролдлого нь энэ хүрээнд орохгүй; туршилгын зорилго бүхий бүтэцүүдийг ашиглахдоо хуурамч (mock) бүтэцүүдийг хэрэглэнэ үү.

Таны туршилтын программд илүү браузер API-ууд хэрэгтэй бол, асуудлыг гаргаж, тодорхой зорилготой жишээг хамт өгөөд, энэ талаар ярилцахаар санал болгоно.