仅支持 Rust 语言的运行时环境。
它在单个 Rust 进程中运行,无需任何外部浏览器、WebDriver 或 Node.js 依赖。
browser-tester 的重点在于针对表单/用户界面行为进行可预测的测试,而不是全面测试浏览器渲染的兼容性。
它在单个 Rust 进程中运行,无需任何外部浏览器、WebDriver 或 Node.js 依赖。
该系统设计之初就考虑了可重复的测试需求,因此具备以下特性:模拟时钟、可预测的随机数种子以及明确的定时器控制API。
支持类似于浏览器的实用功能:选择器、内联脚本执行、事件传播以及DOM更新。
针对以表单为中心的UI测试,提供快速的反馈循环,同时确保错误输出信息集中于选择器以及预期值和实际值。
使用 HTML 创建测试框架,执行交互操作,并验证 DOM 结果。从一个简单的测试用例开始,然后逐步扩展,加入定时器和模拟 API。
安装。
将 "browser_tester" 添加到 cargo 依赖项中。
基本範例。
核心 DOM 测试操作:包括 `Harness::from_html`(从 HTML 字符串创建 DOM 树)、`type_text`(输入文本)、`set_checked`(设置复选框状态)、`click`(点击)、`submit`(提交表单)以及用于验证文本内容、数值、复选框状态和元素是否存在的相关辅助函数。
使用模拟时钟来控制异步行为。通过 `advance_time`、`advance_time_to`、`flush` 以及计时器检查 API 等功能,可以以确定性的方式推进时间。
为了保持测试的独立性,可以使用 `set_fetch_mock`、`enqueue_confirm_response` 和 `enqueue_prompt_response` 函数来模拟网络请求的响应和对话结果。
启用追踪日志,并在测试失败时提取事件/计时器流程信息。这对于调试事件顺序和默认行为非常有用。