Episódio 10:por Sven Zheng em Bellevue, WA (janeiro de 2020)
Episódios anteriores
A estratégia de teste do Chrome depende muito de testes automatizados de correção funcional e testes manuais, mas nenhum deles detecta regressões menores de IU de forma confiável. Use testes de pixel para automatizar os testes da interface do navegador para computador.
Ao escrever um teste de pixel, evite a instabilidade fazendo o seguinte: (1) desativando a animação, (2) usando dados simulados e (3) testando a área de superfície mínima possível.
Confira um exemplo de imagem usada para verificar a correção do pixel para a barra de ferramentas:
E o código para verificar o navegador corresponde a esta imagem:
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);
}
Esse código está em chrome/test/pixel/demo/skia_gold_demo_pixeltest.cc.
Os cabeçalhos relevantes são skia_gold_pixel_diff.h
para testes de unidade e
browser_skia_gold_pixel_diff.h
para testes de navegador.
A diferença entre pixels e o processo de aprovação são fornecidos pelo Skia Gold. Os testes de pixel Skia Gold fornecem um fluxo de trabalho de aprovação visual e permitem que os desenvolvedores aceitem pequenos flocos aprovando várias imagens douradas.
No momento, o conjunto de testes está sendo executado no bot FYI do Windows. Os testes de navegador e de unidade do Views têm suporte.