Ашық код / Қапшық.

Браузерді тестілейтін құрал.

"browser-tester" – бұл Rust тілінде жасалған, нақты браузерге ұқсас, алдын ала анықталған тестілеу жүйесі. Ол нақты браузерді іске қоспай-ақ, DOM (Document Object Model) және оқиғалардың жұмыс істейтін тәсілін тексеруге мүмкіндік береді.

Коррозия. Белгілі уақыт аралығындағы жұмыс. DOM тестілеу.

Бұл контейнер нені жақсы орындай алады.

"Browser-tester" бағдарламасы толық браузердің өріністік үйлесімділігіне емес, керісінше, формалар мен интерфейстің алдын-ала белгіленген мінез-құлқын тестілеуге бағытталған.

Тек Rust тілінде жазылған орындаушы орта.

Бұл бағдарлама бір ғана Rust процесінде жұмыс істейді. Оған сыртқы браузер, WebDriver немесе Node.js қажет емес.

Детерминистік орындалу.

Бұл жүйе қайталанатын сынақтарды жүргізу үшін арнайы жобаланған: жасалма уақыт, анықталған случайный генератор және уақытты басқаруға арналған нақты API интерфейстері қолданылған.

DOM элементтері мен оқиғаларды тестілеу.

Браузерге ұқсас практикалық функционалдылықты қолдау: элементтерді таңдау, кодты тікелей орындау, оқиғаларды тарату және DOM-ді жаңарту.

Жылдам, жергілікті пікір-ұсыныстар.

Формаға бағытталған интерфейс тестілеу үшін жылдам кері байланыс циклы қамтамасыз етіледі, сонымен қатар, қателер туралы ақпараттардың бағытталуы таңдамаларға және күтілген/нақты мәндерге шоғырланады.

Жұмылдыруға арналған нұсқаулық.

HTML-кодты пайдаланып сынақ құралдарын жасаңыз, олармен өзара әрекеттесіңіз және DOM-ның нәтижелерін тексеріңіз. Кішірек сынақ құралымен бастап, одан кейін уақытты есептеу функцияларын немесе жасалмалы API-ларды қосып, оны кеңейтіңіз.

Орнатыңыз.

cargo командасы арқылы "browser_tester" модулін қосыңыз.

Негізгі мысал.

Негізгі API интерфейсі.

"Harness Actions + Assertions" фразасын қалай аударуға болады, оған бірнеше нұсқа бар: 1. **"Құрал-жабдықтарды пайдалану және мәлімдемелерді жасау"** (Бұл аударма техникалық контексте қолданылуы мүмкін) 2. **"Құрал-жабдықтарды тиімді пайдалану және нақты мәлімдемелер"** (Бұл аударма нақтылықты көрсетеді) 3. **"Құрал-жабдықтарды қолдану және өз позицияңызды айту"** (Бұл аударма кең мағынада қолданылуы мүмкін) 4. **"Технологияларды тиімді пайдалану және сенімді мәлімдемелер"** (Бұл аударма заманауи контексте қолданылуы мүмкін) Қажет болса, контекстін біліп, нақты бір нұсқаны таңдауға болады.

Негізгі 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` функциясы мақсатты түрде қолдануға тыйым салынып, қауіпсіздік пен тұрақтылықты сақтау үшін шектеу қойылған.
  • Бұл жүйе нақты сынақ сценарийлеріне арналған, ол 100% нақты браузерлермен үйлесімділікті қамтамасыз етпейді.
  • Сыртқы желі арқылы жүретін кіріс-шығыс операциялары бұл мәселенің шеңберінде қарастырылмаған; сынақтарды жүргізу үшін жасалған модельдік функцияларды қолданыңыз.

Егер сіздің сынақ пакетіңізге қосымша браузер API-лары қажет болса, мүмкін болатын мәселелерді талқылау үшін, шектеулер мен маңыздылықты көрсететін минималды мысалмен бірге сұрақ қойыңыз.