Chromium Chronicle شماره 10: گرفتن رگرسیون های رابط کاربری با تست های پیکسل

project_path: /blog/_project.yaml book_path: /_book.yaml page_type: blog refresh_date: 05-02-2020 توضیحات: استراتژی آزمایش Chrome به شدت بر تست‌های صحت عملکرد خودکار و تست دستی متکی است، اما هیچ‌کدام از اینها به‌طور قابل‌اطمینانی رگرسیون‌های UI جزئی را دریافت نمی‌کنند. از تست های پیکسل برای تست خودکار رابط کاربری مرورگر دسکتاپ خود استفاده کنید. image_path: ../images/chromiumchronicle.jpg کلمات کلیدی: docType:Blog,chromiumchronicle

قسمت 10: توسط Sven Zheng در Bellevue، WA (ژانویه، 2020)
قسمت های قبلی

استراتژی آزمایش Chrome به شدت به تست‌های صحت عملکرد خودکار و آزمایش دستی متکی است، اما هیچ‌کدام از این‌ها به‌طور قابل‌اطمینانی رگرسیون‌های کوچک رابط کاربری را نمی‌گیرند. از تست های پیکسل برای تست خودکار رابط کاربری مرورگر دسکتاپ خود استفاده کنید.

هنگام نوشتن یک آزمایش پیکسلی، از پوسته پوسته شدن با موارد زیر اجتناب کنید: (1) غیرفعال کردن انیمیشن، (2) استفاده از داده های ساختگی، و (3) آزمایش حداقل سطح ممکن.

در اینجا یک تصویر نمونه استفاده شده برای تأیید صحت پیکسل برای omnibox است:

تصویر Omnibox برای مقایسه پیکسل استفاده می شود.

و کد تأیید مرورگر با این تصویر مطابقت دارد:

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 برای تست های مرورگر هستند.

تفاوت پیکسل و فرآیند تأیید توسط Skia Gold ارائه می شود. تست‌های پیکسل Skia Gold گردش کار تایید بصری را ارائه می‌کنند و به توسعه‌دهندگان اجازه می‌دهند تا با تایید چندین تصویر طلایی، تکه‌های کوچک را بپذیرند.

در حال حاضر مجموعه آزمایشی بر روی ربات Windows FYI اجرا می شود. تست‌های مرورگر و تست‌های واحد Views پشتیبانی می‌شوند.