Loki视觉回归测试工具入门指南
什么是Loki
Loki是一款基于Storybook的视觉回归测试工具,专门用于检测UI组件在不同环境和设备上的视觉表现差异。它通过捕获组件的屏幕截图并与基准图像进行对比,帮助开发者发现意外的UI变化,确保界面在不同平台和设备上的一致性。
环境准备
基础要求
- Node.js 16或更高版本
可选依赖
根据测试需求,你可能需要安装以下工具:
-
GraphicsMagick:用于图像差异比较引擎
- macOS用户可通过Homebrew安装:
brew install graphicsmagick
- macOS用户可通过Homebrew安装:
-
Docker:用于
chrome.docker测试目标 -
Chrome 59+:用于
chrome.app测试目标- 推荐安装Canary版本:
brew install --cask google-chrome-canary
- 推荐安装Canary版本:
-
Android调试工具:用于Android设备上的自愈崩溃功能
安装与配置
快速安装
执行以下命令完成基础安装:
yarn add loki --dev
yarn loki init
初始化命令会自动检测项目类型并生成默认配置。
手动配置
对于特殊需求,可以手动添加配置:
React Native项目
在storybook/storybook.js中添加:
import 'loki/configure-react-native'
其他项目
现代Storybook版本通常无需额外配置。旧版本可能需要:
// 在.storybook/preview.js中添加
import 'loki/configure-react'
测试流程详解
1. 检查配置
初始化后,package.json中会生成默认的Loki配置。对于Web项目,默认包含笔记本电脑和iPhone的测试配置,使用本地Chrome应用。你可以随时修改这些配置。
2. 启动Storybook
测试前必须启动Storybook服务:
yarn storybook
对于React Native项目:
- iOS模拟器:
react-native run-ios - Android模拟器:
react-native run-android
3. 创建基准图像
首次使用时需要生成基准图像:
yarn loki update
生成的图像默认保存在loki目录中,建议将这些文件纳入版本控制。
4. 修改组件
对组件或故事进行修改,这些修改将在后续测试中被检测。
5. 执行测试
运行测试命令:
yarn loki test
可以指定测试特定配置:
yarn loki test laptop # 测试名称包含"laptop"的配置
6. 检查差异
测试完成后会生成:
loki/current:当前测试截图loki/difference:差异对比图
建议使用专业工具仔细检查所有差异。
7. 确认变更
如果差异符合预期,更新基准图像:
yarn loki approve
更新后记得提交代码和新的基准图像。
最佳实践
-
命名规范:为配置使用描述性名称,如"chrome-desktop"、"ios-mobile"等
-
版本控制:考虑使用Git LFS管理基准图像
-
CI集成:将Loki测试集成到持续集成流程中
-
定期更新:随着UI迭代,定期更新基准图像
-
差异分析:建立明确的差异审查流程,确保只有预期的变更被接受
通过遵循这些步骤,Loki将成为你UI质量保障流程中不可或缺的工具,帮助你在开发早期发现视觉回归问题,提高产品的一致性和可靠性。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0141- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
MiniCPM-V-4.6这是 MiniCPM-V 系列有史以来效率与性能平衡最佳的模型。它以仅 1.3B 的参数规模,实现了性能与效率的双重突破,在全球同尺寸模型中登顶,全面超越了阿里 Qwen3.5-0.8B 与谷歌 Gemma4-E2B-it。Jinja00
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0109