percorso_progetto: /blog/_project.yaml book_path: /_book.yaml page_type: "blog" refresh_date: 05-02-2020 descrizione: La strategia di test di Chrome si basa in larga misura sui test automatici di correttezza funzionale e sui test manuali, ma nessuno dei due rileva in modo affidabile le regressioni minori dell'interfaccia utente. Utilizza i test dei pixel per automatizzare i test dell'interfaccia utente del browser desktop. percorso_immagine: ../images/chromiumchronicle.jpg parole chiave: docType:Blog,chromiumchronicle
Episodio 10: di Sven Zheng a Bellevue, WA (gennaio 2020)
Puntate precedenti
La strategia di test di Chrome fa grande affidamento sulla correttezza funzionale automatizzata e manuali, ma nessuna delle due opzioni rileva in modo affidabile di regressione lineare. Usa i test dei pixel per automatizzare i test dell'interfaccia utente del browser desktop.
Quando scrivi un test dei pixel, evita le irregolarità: (1) disattivando l'animazione, (2) utilizzare dati fittizi e (3) testare l'area minima possibile.
Ecco un esempio di immagine utilizzata per verificare la correttezza dei pixel per la omnibox:
Il codice per verificare il browser corrisponde a questa immagine:
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);
}
Il codice si trova all'indirizzo chrome/test/pixel/demo/skia_gold_demo_pixeltest.cc.
Le intestazioni pertinenti sono skia_gold_pixel_diff.h
per i test delle unità e
browser_skia_gold_pixel_diff.h
per i test del browser.
La differenza tra i pixel e la procedura di approvazione si basano su Skia Gold. Pixel Skia Gold forniscono un flusso di lavoro di approvazione visiva e consentono agli sviluppatori di accettare piccole scaglie approvando diverse immagini dorate.
Attualmente la suite di test è in esecuzione sul bot di Windows FYI. Test del browser e dei test delle unità di visualizzazione.