第 4 集:羅伯特在滑鐵盧, ON (2019 年 7 月)
上一集
如果您使用的是 Blink,可能知道 web_tests (舊稱 LayoutTests)。
網頁平台測試 (WPT) 位於 web_test/external/wpt
內。WPT 是
比較偏好網路公開功能的方法,因為與其他程式共用
與 kube-APIserver 通訊它主要有兩種測試類型:限制和
testharness.js 測試。
拒絕:擷取及比較兩個網頁的螢幕截圖。根據預設,螢幕截圖
是在觸發 load
事件後發生;如果新增 reftest-wait
類別
至 <html>
元素,則會在移除類別時擷取螢幕截圖。
停用測試代表測試涵蓋範圍會降低。留意字型相關
發炎請盡可能使用 Ahem
字型。
testharness.js 是一種 JavaScript 架構,可用於測試任何項目 (算繪除外)編寫 testharness.js 測試時,請留意時機 並記得清除全球狀態
不穩定的逾時與可能的外洩狀態:
<script> promise_test(async t => { assert_equals(await slowLocalStorageTest(), "expected", "message"); localStorage.clear(); }); </script>
使用較長的逾時和資源清理:
<meta name="timeout" content="long"> <script> promise_test(async t => { t.add_cleanup(() => localStorage.clear()); assert_equals(await slowLocalStorageTest(), "expected", "message"); }); </script>
如果需要自動化作業,或不想在網路上使用自動化功能,請使用 testdriver.js。
您可以使用 test_driver.bless
取得使用者手勢、產生複雜的
受信任的輸入內容,含有 test_driver.action_sequence
等等。
WPT 也會透過檔案名稱提供部分實用的伺服器端功能。
多重全球測試 (.any.js
及其好友) 在不同的
範圍 (window
、worker
等);.https.sub.html
要求載入測試
透過 HTTPS 以及伺服器端替代支援,如下所示:
var anotherOrigin = "https://{{hosts[][www1]}}:{{ports[https][0]}}/path/to/page.html";
有些功能也可以在查詢字串中啟用。
baz.html?pipe=sub|header(X-Key,val)|trickle(d1)
啟用替代功能,並新增 X-Key: val
回應標頭,並在 1 秒後延遲回應。搜尋「管道」
web-platform-tests.org 上。
WPT 也可以測試規格中尚未包含的行為,
將測試命名為 .tentative
。如果需要 Blink 內部 API (例如
testRunner
(internals
)),請將測試放在 web_tests/wpt_internal
中。
WPT 所做的變更會自動匯出至 GitHub。您將會看到
來自 CL 中機器人的註解我們也從其他供應商處進行了 GitHub 變更
持續匯入在新失敗時自動提交錯誤
,請在 WPT 的子目錄中建立 OWNERS
檔案:
# TEAM: your-team@chromium.org
# COMPONENT: Blink>YourComponent
# WPT-NOTIFY: true
emails-here-will-be-cc@chromium.org
其他資源
- 想瞭解測試在其他瀏覽器上的執行情況,以及測試的互通性 那麼功能為何?使用 wpt.fyi。
- 想要查看更多 API、指南、範例、提示等說明文件嗎? 前往 web-platform-tests.org。