The Chromium Chronicle #10: Pixel टेस्ट के साथ यूज़र इंटरफ़ेस (यूआई) के रिग्रेशन की जानकारी पाना

Project_path: /blog/_project.yaml book_path: /_book.yaml page_type: ब्लॉग रीफ़्रेश करने की तारीख: 05-02-2020 ब्यौरा: Chrome की टेस्टिंग रणनीति, अपने-आप काम करने वाले फ़ंक्शन के सही होने की जांच और मैन्युअल तरीके से की जाने वाली जांच पर बहुत ज़्यादा निर्भर करती है. हालांकि, इनमें से कोई भी यूज़र इंटरफ़ेस (यूआई) के छोटे-मोटे रिग्रेशन पर भरोसा नहीं करता. अपने डेस्कटॉप ब्राउज़र यूज़र इंटरफ़ेस (यूआई) की अपने-आप जांच होने के लिए पिक्सल टेस्ट का इस्तेमाल करें. Image_path: ../images/chromiumchronicle.jpg कीवर्ड: docType:Blog,chromiumchronicle

एपिसोड 10: स्वेन ज़ेंग का बनाया बेलेवु, वॉशिंगटन, वॉशिंगटन में (जनवरी, 2020)
पिछले एपिसोड

Chrome की टेस्टिंग रणनीति, अपने-आप काम करने वाले सही फ़ंक्शन पर निर्भर करती है और मैन्युअल तरीके से टेस्ट करता है, लेकिन इनमें से कोई भी छोटे यूज़र इंटरफ़ेस (यूआई) पर भरोसा नहीं करता रिग्रेशन. अपने डेस्कटॉप ब्राउज़र के यूज़र इंटरफ़ेस (यूआई) की टेस्टिंग को ऑटोमेट करने के लिए, पिक्सल टेस्ट का इस्तेमाल करें.

पिक्सल टेस्ट लिखते समय, डेटा खराब होने से बचा जा सकता है. इसके लिए: (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 की मदद से काम करती है. स्काई गोल्ड पिक्सल टेस्ट से, विज़ुअल मंज़ूरी का वर्कफ़्लो मिलता है. साथ ही, इसकी मदद से डेवलपर सोने की अलग-अलग इमेज को मंज़ूरी दें.

फ़िलहाल, टेस्ट सुइट Windows FYI बॉट पर चल रहा है. ब्राउज़र की जांच और व्यू यूनिट टेस्ट का इस्तेमाल किया जा सकता है.