Sử dụng Lighthouse Bot để đặt ngân sách hiệu suất

Bạn đã rất nỗ lực để đạt được tốc độ nhanh chóng. Giờ đây, hãy đảm bảo bạn duy trì tốc độ nhanh bằng cách tự động kiểm thử hiệu suất bằng Lighthouse Bot.

Lighthouse chấm điểm ứng dụng của bạn trong 5 danh mục, trong đó có hiệu suất. Mặc dù bạn có thể cố gắng nhớ theo dõi các thay đổi về hiệu suất bằng DevTools hoặc Lighthouse CLI mỗi mỗi khi chỉnh sửa mã, bạn không phải làm điều đó. Các công cụ có thể giúp bạn làm những việc tẻ nhạt. Travis CI là một dịch vụ tuyệt vời tự động chạy các bài kiểm thử cho ứng dụng của bạn trên đám mây mỗi khi bạn đẩy mã mới.

Trình duyệt Lighthouse tích hợp với Travis CI và tính năng ngân sách hiệu suất của trình duyệt này đảm bảo rằng bạn sẽ không vô tình hạ cấp hiệu suất mà không nhận ra. Bạn có thể định cấu hình kho lưu trữ để kho lưu trữ không cho phép hợp nhất các yêu cầu kéo nếu điểm số Lighthouse thấp hơn ngưỡng mà bạn đã đặt (ví dụ: < 96/100).

Không kiểm tra được bot Lighthouse trên GitHub
Lighthouse Bot kiểm tra trên GitHub.

Mặc dù bạn có thể kiểm thử hiệu suất trên máy chủ cục bộ, nhưng trang web của bạn thường sẽ hoạt động khác trên máy chủ thực. Để có hình ảnh chân thực hơn, tốt nhất bạn nên triển khai trang web của bạn đến máy chủ thử nghiệm. Bạn có thể sử dụng bất kỳ dịch vụ lưu trữ nào; này sẽ dành cho tính năng lưu trữ Firebase để khám phá.

1. Thiết lập

Ứng dụng đơn giản này giúp bạn sắp xếp ba số.

Nhân bản ví dụ trên GitHub, và nhớ thêm kho lưu trữ đó làm kho lưu trữ trên tài khoản GitHub của bạn.

2. Triển khai cho Firebase

Để bắt đầu, bạn cần có tài khoản Firebase. Sau khi bạn xử lý xong vấn đề đó, tạo một dự án mới trong bảng điều khiển của Firebase bằng cách nhấp vào "Thêm dự án":

Triển khai cho Firebase

Bạn sẽ cần Giao diện dòng lệnh (CLI) của Firebase để triển khai ứng dụng. Ngay cả khi bạn đã cài đặt CLI, bạn vẫn nên thường xuyên cập nhật CLI lên phiên bản mới nhất bằng lệnh sau:

npm install -g firebase-tools

Để uỷ quyền cho Giao diện dòng lệnh (CLI) của Firebase, hãy chạy:

firebase login

Bây giờ, hãy khởi chạy dự án:

firebase init

Bảng điều khiển sẽ hỏi bạn một loạt câu hỏi trong quá trình thiết lập:

  • Khi được nhắc chọn tính năng, hãy chọn "Lưu trữ".
  • Đối với dự án Firebase mặc định, hãy chọn dự án mà bạn đã tạo trong bảng điều khiển Firebase.
  • Nhập "công khai" làm thư mục công khai của bạn.
  • Nhập "N" (không) để định cấu hình dưới dạng ứng dụng một trang.

Quá trình này sẽ tạo một tệp cấu hình firebase.json trong thư mục gốc của thư mục dự án.

Xin chúc mừng, bạn đã sẵn sàng triển khai! Chạy:

firebase deploy

Chỉ trong tích tắc, bạn sẽ có một ứng dụng đang hoạt động.

3. Đang thiết lập Travis

Bạn cần đăng ký tài khoản trên Travis, sau đó kích hoạt tính năng tích hợp GitHub Apps trong phần Cài đặt của hồ sơ.

Tích hợp Ứng dụng GitHub trên Travis CI

Sau khi bạn có tài khoản

Chuyển đến phần Cài đặt trong hồ sơ của bạn, nhấn vào nút Đồng bộ hoá tài khoản và đảm bảo rằng kho lưu trữ dự án của bạn được liệt kê trên Travis.

Để bắt đầu quá trình tích hợp liên tục, bạn cần có hai thứ:

  1. Để có một tệp .travis.yml trong thư mục gốc
  2. Để kích hoạt bản dựng bằng cách thực hiện một thao tác đẩy git cũ thông thường

Kho lưu trữ lighthouse-bot-starter đã có tệp YAML .travis.yml:

language: node_js
node_js:
  - "8.1.3"
install:
  - npm install
before_script:
  - npm install -g firebase-tools
script:
  - webpack

Tệp YAML yêu cầu Travis cài đặt tất cả các phần phụ thuộc và xây dựng ứng dụng của bạn. Bây giờ, đến lượt bạn đẩy ứng dụng mẫu vào kho lưu trữ GitHub của riêng bạn. Nếu bạn chưa chạy, hãy chạy lệnh sau:

git push origin main

Nhấp vào kho lưu trữ của bạn trong phần Cài đặt trong Travis để xem Travis của dự án bảng điều khiển. Nếu mọi thứ đều ổn, bạn sẽ thấy bản dựng chuyển từ màu vàng sang màu xanh lục trong vài phút. 🎉

4. Tự động hoá quy trình triển khai Firebase bằng Travis

Ở Bước 2, bạn đã đăng nhập vào tài khoản Firebase và triển khai ứng dụng từ dòng lệnh bằng firebase deploy. Để Travis triển khai ứng dụng của bạn lên Firebase, bạn phải cho phép ứng dụng đó. Bạn làm như thế nào? Bằng mã thông báo Firebase. 🗝️🔥

Uỷ quyền cho Firebase

Để tạo mã thông báo, hãy chạy lệnh sau:

firebase login:ci

Thao tác này sẽ mở một thẻ mới trong cửa sổ trình duyệt để Firebase có thể xác minh bạn. Sau đó, quay lại bảng điều khiển và bạn sẽ thấy mã thông báo mới được tạo. Sao chép mã đó rồi quay lại Travis.

Trong trang tổng quan Travis của dự án, hãy chuyển đến Tuỳ chọn khác > Cài đặt > Biến môi trường.

Dán mã thông báo vào trường giá trị, đặt tên cho biến FIREBASE_TOKEN rồi thêm biến đó.

Thêm quá trình triển khai vào chế độ thiết lập Travis

Bạn cần các dòng sau để yêu cầu Travis triển khai ứng dụng sau mỗi lần tạo bản dựng thành công. Thêm các dòng này vào cuối tệp .travis.yml. 🔚

after_success:
  - firebase deploy --token $FIREBASE_TOKEN --non-interactive

Đẩy thay đổi này sang GitHub và chờ lần triển khai tự động đầu tiên. Khi xem nhật ký Travis, bạn sẽ thấy ngay rằng ✔️ Đã triển khai xong!

Giờ đây, bất cứ khi nào bạn thực hiện thay đổi đối với ứng dụng, các thay đổi đó sẽ tự động được triển khai trên Firebase.

5. Đang thiết lập Lighthouse Bot

Friendly Lighthouse Bot sẽ cập nhật cho bạn về điểm số Lighthouse của ứng dụng. Ứng dụng chỉ cần lời mời vào kho lưu trữ của bạn.

Trên GitHub, hãy chuyển đến phần cài đặt của dự án và thêm "lighthousebot" làm cộng tác viên (Cài đặt>Cộng tác viên):

Trạng thái cộng tác viên của bot Lighthouse

Việc phê duyệt các yêu cầu này là một quy trình thủ công nên không phải lúc nào chúng cũng xảy ra ngay lập tức. Trước khi bắt đầu thử nghiệm, hãy đảm bảo Lighthousebot đã phê duyệt trạng thái cộng tác viên. Trong thời gian chờ đợi, bạn cũng cần thêm một khoá khác vào biến môi trường của dự án trên Travis. Để lại email của bạn tại đây, bạn sẽ nhận được khoá Bot Lighthouse trong hộp thư đến. 📬

Trên Travis, hãy thêm khoá này làm biến môi trường rồi đặt tên là LIGHTHOUSE_API_KEY:

Thêm Trình kiểm tra Lighthouse vào dự án

Tiếp theo, hãy thêm Lighthouse Bot vào dự án của bạn bằng cách chạy:

npm i --save-dev https://github.com/ebidel/lighthousebot

Và thêm bit này vào package.json:

"scripts": {
  "lh": "lighthousebot"
}

Thêm Trình thu thập dữ liệu Lighthouse vào cấu hình Travis

Đối với thủ thuật cuối cùng, hãy kiểm thử hiệu suất của ứng dụng sau mỗi lần kéo của bạn!

Trong .travis.yml, hãy thêm một bước khác vào after_Success:

after_success:
  - firebase deploy --token $FIREBASE_TOKEN --non-interactive
  - npm run lh -- https://staging.example.com

Thao tác này sẽ chạy quy trình kiểm tra Lighthouse trên URL đã cho, vì vậy hãy thay thế https://staging.example.com có URL của ứng dụng của bạn (đó là your-app-123.firebaseapp.com).

Đặt tiêu chuẩn cao và điều chỉnh thiết lập để bạn không chấp nhận bất kỳ thay đổi nào ứng dụng có điểm hiệu suất dưới 95:

- npm run lh -- --perf=95 https://staging.example.com

Thực hiện một yêu cầu kéo để kích hoạt bài kiểm tra Bot Lighthouse trên Travis

Lighthouse Bot sẽ chỉ kiểm thử các yêu cầu kéo, vì vậy nếu bạn đẩy đến nhánh chính bây giờ, bạn sẽ chỉ nhận được thông báo "This script can only be run on Travis PR" (Chỉ có thể chạy tập lệnh này trên các yêu cầu PR của Travis" trong Nhật ký Travis.

Cách kích hoạt bài kiểm tra Bot Lighthouse:

  1. Kiểm tra một nhánh mới
  2. Đẩy sang GitHub
  3. Tạo yêu cầu lấy dữ liệu

Hãy kiên nhẫn chờ đợi trên trang yêu cầu thay đổi đó và chờ Bot Lighthouse hát! 🎤

Điểm số vượt qua Lighthouse

Đậu quy trình kiểm tra trên GitHub

Điểm hiệu suất rất tốt, ứng dụng thấp hơn ngân sách và bước kiểm tra đã thành công!

Các tuỳ chọn khác của Lighthouse

Bạn có nhớ cách Lighthouse kiểm tra 5 danh mục khác nhau không? Bạn có thể áp dụng điểm cho bất kỳ trang web nào có cờ của Bot Lighthouse:

--perf  # performance
--pwa   # progressive web app score
--a11y  # accessibility score
--bp    # best practices score
--seo   # SEO score

Ví dụ:

npm run lh -- --perf=93 --seo=100 https://staging.example.com

PR sẽ không thành công nếu điểm hiệu suất giảm xuống dưới 93 hoặc điểm SEO giảm xuống dưới 100.

Bạn cũng có thể chọn không nhận bình luận của Bot Lighthouse bằng --no-comment .