러스트(Rust) 언어만 지원하는 런타임.
이 프로그램은 단일 Rust 프로세스 내에서 실행되며, 외부 브라우저, WebDriver 또는 Node.js와 같은 추가적인 요소에 의존하지 않습니다.
오픈 소스 / 크레이트 (Crate)
"browser-tester"는 순수 Rust로 구현된, 실제 브라우저와 유사한 테스트 실행 환경입니다. 이 도구는 실제 브라우저를 실행하지 않고도 DOM(문서 객체 모델)과 이벤트 동작을 검증합니다.
browser-tester는 전체 브라우저 렌더링 호환성 테스트보다는 예측 가능한 폼/UI 동작 테스트에 중점을 둡니다.
이 프로그램은 단일 Rust 프로세스 내에서 실행되며, 외부 브라우저, WebDriver 또는 Node.js와 같은 추가적인 요소에 의존하지 않습니다.
반복적인 테스트를 위해 설계된 시스템으로, 가짜 시계, 예측 가능한 난수 생성, 그리고 명시적인 타이머 제어 API를 제공합니다.
실제 브라우저와 유사한 기능을 지원합니다. 여기에는 선택자 사용, 인라인 스크립트 실행, 이벤트 전파, 그리고 DOM 업데이트 기능이 포함됩니다.
폼 기반 UI 테스트에서 빠른 피드백 주기를 제공하며, 오류 발생 시 오류 메시지는 선택자 및 예상/실제 값에 집중하여 표시합니다.
HTML 코드를 기반으로 테스트 환경을 구축하고, 상호 작용을 수행하며, DOM 결과 값을 검증합니다. 작은 테스트 환경부터 시작하여 타이머 또는 모의 API를 추가하여 기능을 확장할 수 있습니다.
설치합니다.
cargo 명령어를 사용하여 'browser_tester' 패키지를 추가합니다.
기본 예시.
핵심 DOM 테스트 기능: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` 함수와 텍스트, 값, 선택 상태, 존재 여부 등을 검증하는 유틸리티 함수들.
비동기 동작을 가짜 시계(fake clock)를 사용하여 제어할 수 있습니다. `advance_time`, `advance_time_to`, `flush` 및 타이머 검사 API를 사용하여 시간을 예측 가능하게 조정할 수 있습니다.
테스트의 독립성을 유지하기 위해 `set_fetch_mock`, `enqueue_confirm_response`, `enqueue_prompt_response` 함수를 사용하여 테스트 환경에 필요한 데이터 응답과 대화 결과를 주입하십시오.
테스트 실패 시 추적 로그를 활성화하고 이벤트/타이머 흐름을 추출합니다. 이벤트 순서 및 기본 동작 문제를 디버깅하는 데 유용합니다.
테스트 스위트에 필요한 추가 브라우저 API가 있다면, 문제 해결을 위해 최소한의 테스트 환경을 포함하여 이슈를 제기하고, 해당 기능의 범위와 우선순위에 대해 논의해 주세요.