开源项目 / 容器 (或:开源软件 / 容器)

浏览器测试工具。

`browser-tester` 是一個基於純 Rust 語言實現的、具有瀏覽器功能的測試執行環境。它可以在不啟動實際瀏覽器的情况下,驗證 DOM(文件物件模型)和事件的行為。

锈蚀。 确定性运行时环境。 DOM 測試

这个工具包的优势所在。

browser-tester 的重点在于针对表单/用户界面行为进行可预测的测试,而不是全面测试浏览器渲染的兼容性。

仅支持 Rust 语言的运行时环境。

它在单个 Rust 进程中运行,无需任何外部浏览器、WebDriver 或 Node.js 依赖。

确定性执行。

该系统设计之初就考虑了可重复的测试需求,因此具备以下特性:模拟时钟、可预测的随机数种子以及明确的定时器控制API。

DOM 和事件测试。

支持类似于浏览器的实用功能:选择器、内联脚本执行、事件传播以及DOM更新。

快速的本地化反馈。

针对以表单为中心的UI测试,提供快速的反馈循环,同时确保错误输出信息集中于选择器以及预期值和实际值。

快速上手指南。

使用 HTML 创建测试框架,执行交互操作,并验证 DOM 结果。从一个简单的测试用例开始,然后逐步扩展,加入定时器和模拟 API。

安装。

将 "browser_tester" 添加到 cargo 依赖项中。

基本範例。

主要API接口。

整合行动与声明。

核心 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` 函数来模拟网络请求的响应和对话结果。

追踪与诊断功能。

启用追踪日志,并在测试失败时提取事件/计时器流程信息。这对于调试事件顺序和默认行为非常有用。

运行时策略。

  • `eval` 功能被故意禁用,以确保系统的安全性和可预测性。
  • 这个运行时环境主要针对实际的测试场景,并非完全兼容所有浏览器。
  • 外部网络输入/输出功能不在此范围之内;请使用模拟数据来覆盖测试用例。

如果您需要为您的测试套件添加额外的浏览器 API,请提交一个问题,并在问题中提供一个最简化的测试用例,以便我们讨论其适用范围和优先级。