Tập 4: của Robert in Waterloo, ON (tháng 7 năm 2019)
Các tập trước
Nếu làm việc trên Blink, bạn có thể biết về web_tests (trước đây là LayoutTests).
web-platform-tests (WPT) nằm bên trong web_test/external/wpt
. WPT là
nên dùng để kiểm thử các tính năng hiển thị trên web khi dữ liệu này được chia sẻ với những
thông qua GitHub. Có hai loại kiểm thử chính: reftest (kiểm thử) và kiểm thử (reftests)
testharness.js.
bài viết kiểm tra này chụp và so sánh ảnh chụp màn hình của hai trang. Theo mặc định, ảnh chụp màn hình
được lấy sau khi kích hoạt sự kiện load
; nếu bạn thêm một lớp reftest-wait
vào phần tử <html>
, hệ thống sẽ chụp ảnh màn hình khi lớp bị xoá.
Kiểm thử bị tắt có nghĩa là giảm phạm vi kiểm thử. Chú ý đến các yếu tố liên quan đến phông chữ
dễ bị bong tróc; hãy dùng phông chữ Ahem
nếu có thể.
testharness.js là khung JavaScript để thử nghiệm mọi thứ ngoại trừ việc kết xuất hình ảnh. Khi viết thử nghiệm testharness.js, hãy chú ý đến thời gian, và hãy nhớ dọn dẹp trạng thái toàn cục.
Thời gian chờ không ổn định và các trạng thái có thể bị rò rỉ:
<script> promise_test(async t => { assert_equals(await slowLocalStorageTest(), "expected", "message"); localStorage.clear(); }); </script>
Thử nghiệm tốt hơn với thời gian chờ dài và dọn dẹp:
<meta name="timeout" content="long"> <script> promise_test(async t => { t.add_cleanup(() => localStorage.clear()); assert_equals(await slowLocalStorageTest(), "expected", "message"); }); </script>
Sử dụng testdriver.js nếu bạn cần công nghệ tự động hoá không sử dụng được trên web.
Bạn có thể nhận một cử chỉ người dùng từ test_driver.bless
, tạo các cử chỉ phức tạp,
đầu vào đáng tin cậy bằng test_driver.action_sequence
, v.v.
WPT cũng cung cấp một số tính năng hữu ích phía máy chủ thông qua tên tệp.
Kiểm thử đa toàn cầu (.any.js
và bạn bè của họ) chạy cùng các chương trình kiểm thử trong nhiều kiểu kiểm thử
phạm vi (window
, worker
, v.v.); .https.sub.html
yêu cầu tải bài kiểm thử
qua HTTPS có hỗ trợ thay thế phía máy chủ như dưới đây:
var anotherOrigin = "https://{{hosts[][www1]}}:{{ports[https][0]}}/path/to/page.html";
Bạn cũng có thể bật một số tính năng trong chuỗi truy vấn.
baz.html?pipe=sub|header(X-Key,val)|trickle(d1)
cho phép thay thế, thêm X-Key: val
vào tiêu đề phản hồi và trì hoãn 1 giây trước khi phản hồi. Tìm kiếm "ống"
trên web-platform-tests.org để biết thêm thông tin.
WPT cũng có thể kiểm thử các hành vi chưa có trong thông số kỹ thuật; chỉ
đặt tên cho chương trình kiểm thử là .tentative
. Nếu bạn cần Blink API nội bộ (ví dụ:
testRunner
, internals
), hãy đặt kiểm thử vào web_tests/wpt_internal
.
Các thay đổi đối với WPT sẽ được tự động xuất sang GitHub. Bạn sẽ thấy
nhận xét của bot trong CL của bạn. Những thay đổi trên GitHub từ các nhà cung cấp khác cũng
được nhập liên tục. Để nhận lỗi tự động được gửi khi có lỗi mới
được nhập, hãy tạo tệp OWNERS
trong thư mục con trong WPT:
# TEAM: your-team@chromium.org
# COMPONENT: Blink>YourComponent
# WPT-NOTIFY: true
emails-here-will-be-cc@chromium.org
Tài nguyên khác
- Muốn tìm hiểu cách kiểm thử của bạn chạy trên các trình duyệt khác và khả năng tương tác như thế nào tính năng của bạn là gì? Sử dụng wpt.fyi.
- Bạn đang tìm kiếm thêm tài liệu về API, nguyên tắc, ví dụ, mẹo, v.v.? Truy cập vào web-platform-tests.org.