project_path:/blog/_project.yaml Book_path:/_book.yaml page_type:博客 刷新日期:2020 年 2 月 5 日 说明:Chrome 的测试策略很大程度上依赖于自动化功能正确性测试和手动测试,但这两种测试都不能可靠地发现细微的界面回归问题。使用 Pixel 测试来自动测试桌面浏览器界面。 image_path:../images/chromiumchronicle.jpg 关键字: docType:博客,chromiumchronicle
第 10 集:Sven Zheng 在华盛顿州贝尔维尤(2020 年 1 月)
上一集
Chrome 的测试策略在很大程度上依赖于自动化功能正确性 测试和手动测试,但这两种方法都无法可靠地捕获次要界面 回归。使用 Pixel 测试自动测试桌面浏览器界面。
在编写像素测试时,请通过以下方式避免不稳定问题:(1) 停用动画; (2) 使用模拟数据;(3) 测试尽可能小的表面积。
以下示例图片用于验证多功能框的像素正确性:
验证浏览器的代码与下图匹配:
IN_PROC_BROWSER_TEST_F(SkiaGoldDemoPixelTest, TestOmnibox) {
// Always disable animation for stability.
ui::ScopedAnimationDurationScaleMode disable_animation(
ui::ScopedAnimationDurationScaleMode::ZERO_DURATION);
GURL url("chrome://bookmarks");
AddTabAtIndex(0, url, ui::PageTransition::PAGE_TRANSITION_FIRST);
auto* const browser_view = BrowserView::GetBrowserViewForBrowser(browser());
// CompareScreenshot() takes a screenshot and compares it with the
// golden image, which was previously human-approved, is stored
// server-side, and is managed by Skia Gold. If any pixels differ, the
// test will fail and output a link for the author to triage the
// new image.
bool ret = GetPixelDiff().CompareScreenshot("omnibox",
browser_view->GetLocationBarView());
EXPECT_TRUE(ret);
}
此代码位于 chrome/test/pixel/demo/skia_gold_demo_pixeltest.cc。
对于单元测试,相关头文件为 skia_gold_pixel_diff.h
;
browser_skia_gold_pixel_diff.h
,用于浏览器测试。
Pixel 差异和审批流程由 Skia Gold 提供支持。Skia Gold 像素 测试提供了一个直观的审批工作流程,并允许开发者接受 通过批准多张金色图片来制作小碎片。
目前,该测试套件正在 Windows“参考信息”聊天机器人上运行。浏览器测试 以及 View 单元测试。