视觉回归测试-backstopjs文档
{
// 测试项目的唯一标识符,通常设置为项目名称。
"id": "backstop_default",
// 定义测试用例中使用的不同视口大小
"viewports": [
{
"label": "phone",
"width": 320,
"height": 480
},
{
"label": "tablet",
"width": 1024,
"height": 768
}
],
"onBeforeScript": "puppet/onBefore.js",
// 在每个测试场景之前执行的 JavaScript 脚本
"onReadyScript": "puppet/onReady.js",
// 定义测试场景,包括要测试的网址、视口大小、操作和生成的测试截图的文件名等。
"scenarios": [
{
// 测试场景的名称或标签,用于标识测试场景
"label": "BackstopJS Homepage",
// 指定存储 cookies 的文件路径,用于在测试之间保留 cookies 状态
"cookiePath": "backstop_data/engine_scripts/cookies.json",
// 测试场景的网址或文件路径
"url": "https://garris.github.io/BackstopJS/",
// 用于比较的基准截图的网址或文件路径,如果未指定,则使用 `url`
"referenceUrl": "",
// 定义测试场景何时视为已准备就绪的事件名称
"readyEvent": "",
// 定义测试场景何时视为已准备就绪的选择器
"readySelector": "",
// 在截图之前等待的时间,以毫秒为单位
"delay": 0,
// 需要隐藏的元素选择器数组
"hideSelectors": [],
// 需要从 DOM 中移除的元素选择器数组
"removeSelectors": [],
// 将鼠标悬停在其上的元素选择器
"hoverSelector": "",
// 单击的元素选择器
"clickSelector": "",
// 在执行单击事件后等待的时间,以毫秒为单位
"postInteractionWait": 0,
// 需要测试的元素选择器数组
"selectors": [],
// 指定是否扩展选择器,以便匹配更多元素
"selectorExpansion": true,
// 期望测试结果,如果测试结果不满足期望,则测试失败
"expect": 0,
// 设置像素不匹配阈值,即两个图像之间的可接受差异百分比
"misMatchThreshold": 0.1,
// 设置是否要求测试截图和基准截图具有相同的尺寸
"requireSameDimensions": true
}
],
// 定义测试用例中的文件路径或网址
"paths": {
// 存储基准截图的目录,即测试前的截图,BackstopJS 会将其用作测试结果的比较标准
"bitmaps_reference": "backstop_data/bitmaps_reference",
// 存储测试截图的目录,即测试过程中生成的截图
"bitmaps_test": "backstop_data/bitmaps_test",
// 存储用于测试的引擎脚本的目录,例如 Puppeteer 或 Playwright
"engine_scripts": "backstop_data/engine_scripts",
// 存储测试报告的 HTML 文件和其他相关文件的目录
"html_report": "backstop_data/html_report",
// 存储在 CI/CD 环境中运行测试时生成的报告文件的目录
"ci_report": "backstop_data/ci_report"
},
// 定义测试报告的输出格式和位置
"report": ["browser"],
// 指定使用哪个引擎进行测试,可以是 puppeteer 或 playwright
"engine": "puppeteer",
"engineOptions": {
"args": ["--no-sandbox"]
},
// 设置异步并发截图的最大数量
"asyncCaptureLimit": 5,
// 设置异步并发比较的最大数量
"asyncCompareLimit": 50,
// 设置是否启用调试模式,如果启用,则会在测试过程中显示更多的信息
"debug": false,
"debugWindow": false,
// ======================================================
// 设置是否在 CI/CD 环境中运行测试,如果设置为 `true`,则会忽略视口大小和测试间隔时间,以便更快地完成测试
"ci": true,
// 如果使用 Docker 运行测试,可以指定 Docker 命令的模板
"dockerCommandTemplate": ""
}