- Cypress
- Cypress 是一个基于 JavaScript 的现代前端端到端测试框架,专为当今的 Web 应用程序而构建。它运行在浏览器内部,与应用程序在同一个进程中执行,这使得它能够直接访问 DOM、window 对象和网络请求等浏览器原生 API。Cypress 提供了强大的时间旅行调试功能、自动等待机制、实时重载以及直观的错误信息,极大地简化了 Web 应用的测试流程。
- E2E 测试(端到端测试)
- E2E 是 End-to-End 的缩写,中文译为端到端测试。它是一种软件测试方法,旨在模拟真实用户从应用程序入口到完成特定业务流程的完整操作路径。E2E 测试在真实的浏览器环境中运行,验证各个组件和模块集成在一起后是否能够正确协同工作。与单元测试和集成测试相比,E2E 测试覆盖面最广,但执行速度相对较慢,维护成本也更高。
- describe / it 代码块
- describe 和 it 是 Cypress(及 Mocha 测试框架)中用于组织测试代码的两个核心函数。describe 函数用于定义测试套件(test suite),将相关的测试用例分组到一起,并为该分组提供一个描述性名称。it 函数用于定义单个测试用例(test case),描述该用例要验证的具体行为。典型结构是 describe 包含多个 it,每个 it 执行一组操作并进行断言验证。这种嵌套结构使得测试代码层次清晰、易于维护。
- data-cy 选择器
- data-cy 是 Cypress 官方推荐的测试专用 HTML 属性,用于为测试提供稳定可靠的元素定位标识。与 CSS 类名或 ID 不同,data-cy 属性的唯一目的是服务于测试,不会因为 UI 样式调整、组件重构或业务逻辑变更而被修改或移除。在 HTML 元素上添加 data-cy="submit-btn" 属性后,测试中可以使用 cy.get('[data-cy="submit-btn"]') 来精准定位该元素。这种约定优于配置的方式有效避免了测试与实现细节的耦合。
- cy.get() 命令
- cy.get() 是 Cypress 中最基础也最常用的查询命令,用于根据选择器从 DOM 中查找一个或多个元素。它接受一个 CSS 选择器字符串作为参数,返回一个包含匹配元素的 Cypress 对象。该命令具有重试机制,会持续尝试查找元素直到超时,这种自动重试特性使得测试在面对异步渲染时更加健壮。例如 cy.get('[data-cy="username"]') 会查找所有具有 data-cy="username" 属性的元素。
- 断言(Assertion)
- 断言是测试用例中用于验证预期结果的核心机制。在 Cypress 中,断言通过链式调用附加到命令链后面,用于检查被查询元素或命令返回值是否满足特定条件。例如 .should('be.visible') 断言元素可见,.should('contain', 'Success') 断言文本包含指定字符串。断言失败时测试用例会被标记为失败并输出详细的错误信息,帮助开发者快速定位问题。Cypress 内部使用 Chai 断言库,同时提供了自定义的链式 API。
- 自动等待(Auto-waiting)
- 自动等待是 Cypress 框架的一项核心特性,也是它区别于其他测试框架的重要优势。当 Cypress 执行一个命令时,它会自动等待该命令操作的元素达到可操作状态后才继续执行。例如执行 click 操作时,Cypress 会自动等待元素变为可见、不被遮挡、未被禁用且不在动画中,全部条件满足后才会触发点击。开发者无需手动编写显式的等待代码(如 sleep 或 waitFor),这大幅简化了测试编写并减少了因等待策略不当导致的测试不稳定问题。
- intercept(网络请求拦截)
- intercept 是 Cypress 提供的网络请求拦截命令,用于监听、修改或模拟应用程序发出的 HTTP 请求和响应。通过 intercept 命令,测试可以拦截特定 URL 的 API 请求并返回预设的模拟响应数据,从而在不依赖真实后端服务的情况下进行前端测试。也可以用它来验证前端是否发出了正确的 API 请求,检查请求参数和请求头是否符合预期。intercept 命令是实现前后端分离架构下可靠 E2E 测试的关键工具。
- fixture(测试固件数据)
- fixture 是 Cypress 中用于管理测试固定数据的机制。测试固件数据是指在测试执行过程中使用的预定义输入数据和预期输出数据。Cypress 的 cy.fixture() 命令可以从 cypress/fixtures 目录下加载 JSON、CSV 或图片等格式的测试数据文件。使用 fixture 数据可以将测试数据与测试逻辑分离,提高测试代码的可维护性,同时也便于对同一组测试步骤使用不同的数据集进行数据驱动测试。
- command chain(命令链)
- 命令链是 Cypress API 设计的核心模式,通过将多个命令以链式调用的方式串联在一起执行。每个命令的返回值会作为下一个命令的上下文,形成一条完整的操作链。例如 cy.get('[data-cy="email"]').type('user@test.com').should('have.value', 'user@test.com') 就是一条包含查询、输入和断言的命令链。命令链使得测试代码读起来接近自然语言描述,可读性和可维护性都非常出色。
- screenshot(截图)
- screenshot 是 Cypress 中用于在测试执行过程中捕获页面截图的命令。截图功能在调试失败的测试用例时尤为有用,它可以在特定的操作节点保存页面的视觉快照,帮助开发者了解测试失败时页面的实际状态。Cypress 还支持在测试失败时自动截图的全局配置。截图默认保存在 cypress/screenshots 目录下,支持全页面截图和特定元素截图两种模式。
CSS缓动函数试玩场 - 所有预设一览
并列播放所有CSS内置缓动函数(ease, linear等)的动画效果,方便对比选择。
贝塞尔缓动函数调校工具 - 自定义动画曲线
拖拽两控制点精细微调CSS `cubic-bezier()` 曲线并对比预设函数效果。
gRPC-Web 一元调用测试器 - 发送请求并查看序列化
输入 gRPC 服务地址和方法,构造 JSON 请求体,观察转为二进制帧并接收响应解码。
悬停提示框生成器 - 纯CSS/JS气泡样式定制
选择触发位置、箭头方向与样式,生成轻量悬停提示框代码。
页面标题层级分析器 - h1~h6 结构检查
输入 HTML 或网址,提取所有标题标签,生成文档大纲树,检测跳跃和缺失。
结构化数据测试 - 粘贴代码实时预览
粘贴结构化数据代码,模拟Google结构化数据测试,检查错误与丰富结果。
代码审查清单动态生成 - 按语言和项目定制
选择编程语言和关注领域(安全、性能、可读性),生成定制化的代码审查核对表。
新拟态设计生成器 - CSS Neumorphism样式代码
调节光源角度、颜色和距离,生成凹凸柔和的新拟态UI元素CSS盒阴影代码,潮流设计工具。
Flexbox属性速查 - 可视对照表
可视化Flexbox容器和子项的所有属性及选项,鼠标悬停预览效果。
CSS Grid 调试覆盖层 - 显示网格线与区域
在页面上叠加可拖拽的半透明网格线,辅助网格布局对齐。
Lit 组件快速实验场 - 在线编写 Lit 模板与反应式属性
编写 Lit 组件模板和属性,实时渲染并观察响应式更新,无需构建环境。
内存分页替换模拟 - FIFO/LRU/OPT动画
设定物理页框数,输入页引用串,动画展示不同页面置换算法的缺页率。
Brainfuck在线解释器 - 步进调试
编写Brainfuck代码,以可视化的方式步进执行,观察活动纸带和指针。
Flexbox 高级演练场 - 所有属性可视化控制
通过滑块和开关调整 Flex 容器和子项的所有 CSS 属性,实时观察布局变化,理解弹性盒子。
Periodic Sync 事件模拟器 - 手动触发并查看结果
在开发环境中模拟 periodicSync 事件,触发后查看 SW 中的处理逻辑和网络请求。
XPath选择器测试工具 - 对HTML文档提取
粘贴HTML并编写XPath表达式,高亮显示匹配的节点并提取文本。
HTTP 响应头获取器 - 查看任意 URL 的 Header 详情
输入 URL,通过前端代理或 CORS 配置获取并显示完整的响应头信息。
Catmull-Clark 细分曲面演示 - 控制网格迭代
载入简单控制网格,执行 Catmull-Clark 细分一次,观察光滑效果。
调色板导出为 Tailwind 配置 - 从图片/手动生成色阶
从一个基色或图片提取的颜色,自动生成 50-950 的色阶并导出为 Tailwind CSS 配置。
Webpack 打包分析器 - stats.json 可视化
上传 webpack 的 stats.json,生成交互式树状图、模块大小排名,辅助优化构建体积。
正则表达式在线测试工具 - JavaScript正则校验
在线正则表达式测试工具,支持JavaScript正则匹配、替换、提取等操作,即时显示匹配结果和高亮。
Kruskal 最小生成树动画 - 按边排序并查集
动画展示 Kruskal 算法选择边和合并集合的过程,高亮生成树边。
骨架屏代码生成器 - 加载占位灰色块
为内容区域生成灰色闪烁的骨架屏占位代码,包含卡片、标题等组件样式。
JavaScript this 上下文测试器 - 不同调用方式下的指向
编写函数并选择调用方式(普通、方法、call、apply、箭头等),输出 this 的值。
Cookie 同意条生成 - 纯代码无样式嵌入
勾选需要展示的选项(接受/拒绝/设置),生成纯净HTML/JS代码,自行套用样式。
CSS Grid可视化调试器 - 叠加网格线
为页面上使用CSS Grid的元素显示网格线和名称,辅助布局开发和调试。
Web Worker 代码生成器 - 快速创建独立线程脚本
编写主线程和 Worker 内的逻辑模板,自动生成分离的 JS 文件代码,加速 Worker 开发。
Lottie动画预览器 - 拖放JSON查看动效
加载Lottie动画JSON文件,播放并控制速度、方向,预览动效效果。
HTML内联样式提取器 - 批量整理为独立CSS
提取HTML中内联style属性或嵌入式style标签,转变为独立CSS规则,辅助样式重构。
Tailwind 调色板可视化浏览器 - 所有色阶一览
可视化浏览 Tailwind CSS 所有内置颜色的 50-950 色阶,点击复制类名或色值。
UD5工具箱