Bạn có thể sử dụng Firebase Test Lab khi phát triển ứng dụng bằng bất kỳ hệ thống tích hợp liên tục (CI) nào. Hệ thống tích hợp liên tục cho phép bạn tự động xây dựng và kiểm thử ứng dụng mỗi lần kiểm tra bản cập nhật cho mã nguồn của ứng dụng.
Sử dụng Firebase Test Lab với Jenkins CI
Phần này mô tả cách sử dụng Test Lab với Jenkins CI.
Yêu cầu
Trước khi có thể sử dụng Firebase Test Lab với Jenkins, bạn cần hoàn tất các bước sau:
Thiết lập gcloud. Làm theo hướng dẫn trong phần Sử dụng Firebase Test Lab từ Dòng lệnh gcloud để tạo dự án Firebase và định cấu hình môi trường SDK Google Cloud cục bộ.
Tạo và uỷ quyền cho tài khoản dịch vụ. Tài khoản dịch vụ không phải chịu các bước kiểm tra nội dung rác hoặc lời nhắc hình ảnh xác thực, nếu không thì có thể chặn bản dựng CI của bạn. Tạo tài khoản dịch vụ có vai trò Người chỉnh sửa trong bảng điều khiển Google Cloud rồi kích hoạt tài khoản đó (xem tài liệu gcloud auth activate-service-account để tìm hiểu cách thực hiện).
Bật các API bắt buộc. Sau khi đăng nhập bằng tài khoản dịch vụ: Trên trang Thư viện API Google Developers Console, hãy bật Google Cloud Testing API và Cloud Tool Results API. Để bật các API này, hãy nhập tên API vào hộp tìm kiếm ở đầu bảng điều khiển, sau đó nhấp vào Enable API (Bật API) trên trang tổng quan của API đó.
Cài đặt và thiết lập Jenkins
Bạn có thể cài đặt và thiết lập Jenkins CI trên Linux hoặc Windows. Một số thông tin chi tiết trong hướng dẫn này chỉ dành riêng cho việc cài đặt và chạy Jenkins CI trên Linux, bao gồm cả việc sử dụng dấu gạch chéo (/) trong đường dẫn tệp.
Để tải và cài đặt Jenkins trên máy tính chạy Linux hoặc Windows, hãy làm theo hướng dẫn trong phần Cài đặt Jenkins. Sau khi cài đặt Jenkins, hãy làm theo hướng dẫn trong phần Bắt đầu và truy cập Jenkins để hoàn tất quá trình thiết lập và truy cập vào trang tổng quan của Jenkins.
Định cấu hình chế độ cài đặt bảo mật chung
Jenkins không có tính năng xác thực người dùng và kiểm soát quyền truy cập khi được cài đặt lần đầu. Trước khi sử dụng Jenkins với Firebase Test Lab, hãy định cấu hình chế độ cài đặt bảo mật chung để thực thi quyền kiểm soát truy cập và xác thực người dùng.
Cách định cấu hình chế độ cài đặt bảo mật chung
- Chuyển đến trang tổng quan Jenkins trên máy chủ của bạn. Để thực hiện việc này, hãy duyệt đến http://<servername>:8080, trong đó <servername> là tên của máy tính mà bạn đã cài đặt Jenkins.
- Trên trang tổng quan của Jenkins, hãy nhấp vào Manage Jenkins (Quản lý Jenkins), rồi nhấp vào Configure Global Security (Định cấu hình bảo mật chung).
- Trên trang Configure Global Security (Định cấu hình bảo mật chung), hãy nhấp vào Enable security (Bật bảo mật), rồi nhấp vào Save (Lưu).
Để biết thêm thông tin về cách định cấu hình chế độ cài đặt bảo mật cho Jenkins, hãy xem bài viết Bảo mật nhanh chóng và đơn giản, Thiết lập bảo mật tiêu chuẩn, và Bảo mật Jenkins.
Tạo dự án Jenkins
Tiếp theo, hãy tạo một dự án để chạy kiểm thử tích hợp liên tục cho ứng dụng của bạn bằng Firebase Test Lab.
Cách tạo dự án Jenkins
- Chuyển đến trang tổng quan Jenkins trên máy chủ của bạn. Để thực hiện việc này, hãy duyệt đến http://<servername>:8080, trong đó <servername> là tên của máy tính mà bạn đã cài đặt Jenkins.
- Trên trang tổng quan của Jenkins, hãy nhấp vào New Item (Mục mới).
- Nhập tên cho dự án của bạn vào trường Tên mục:
- Chọn Freestyle project (Dự án tự do) để tạo một dự án sử dụng một cấu hình bản dựng duy nhất.
- Chọn Build multi-configuration project (Xây dựng dự án nhiều cấu hình) để tạo một dự án chạy trên nhiều cấu hình bản dựng khác nhau. Nếu bạn dự định tạo ứng dụng bằng nhiều cấu hình bản dựng (nhiều ngôn ngữ, nhiều cấp độ API Android, v.v.), thì dự án nhiều cấu hình là lựa chọn phù hợp nhất.
- Nhấp vào Lưu.
Sau khi dự án được tạo, trình duyệt web sẽ hiển thị trang chính cho dự án của bạn.
Thêm các bước kiểm soát bản sửa đổi và bản dựng Gradle
Phần này mô tả cách tích hợp Jenkins với các hệ thống kiểm soát bản sửa đổi như GitHub, cũng như cách thêm các bước bản dựng Gradle để tạo gói APK từ mã nguồn.
Tích hợp với GitHub và các hệ thống kiểm soát bản sửa đổi khác
Nếu sử dụng GitHub hoặc một hệ thống kiểm soát bản sửa đổi khác để quản lý mã nguồn cho ứng dụng, bạn có thể định cấu hình Jenkins để chạy các bản dựng tự động và chạy kiểm thử mỗi khi các bản cập nhật cho ứng dụng được kiểm tra. Bạn cũng có thể định cấu hình Jenkins để chạy các bản dựng theo định kỳ.
Để tìm hiểu về cách định cấu hình bản dựng trong Jenkins, hãy xem bài viết Định cấu hình bản dựng tự động.
Thêm các bước bản dựng Gradle để tạo lại gói APK
Nếu sử dụng hệ thống kiểm soát bản sửa đổi để quản lý mã nguồn cho ứng dụng, bạn cần thêm một bước bản dựng Gradle để tạo tệp nhị phân APK mới mỗi khi Jenkins tải mã nguồn xuống từ hệ thống kiểm soát bản sửa đổi.
Thêm một bước xây dựng để chạy các lệnh sau trong thư mục chính cho ứng dụng của bạn:
./gradlew :app:assembleDebug ./gradlew :app:assembleDebugAndroidTest
Thêm một bước xây dựng để sử dụng(các) gói APK do Gradle tạo khi kiểm thử bằng Test Lab. Bạn có thể dùng đường dẫn này làm <local_server_path> trong ví dụ về tập lệnh shell được cung cấp bên dưới, trong đó <AppFolder> là thư mục dự án Android Studio cho ứng dụng của bạn:
<AppFolder>/app/build/outputs/apk
Thêm các bước tạo bản dựng Test Lab vào Jenkins
Giờ đây, bạn đã sẵn sàng thêm một bước xây dựng vào Jenkins để chạy Test Lab bằng dòng lệnh gcloud.
Cách thêm bước bản dựng gcloud
- Trên trang chính của dự án, hãy nhấp vào Configure (Định cấu hình).
Trên trang project configuration (cấu hình dự án), hãy di chuyển xuống phần Build (Bản dựng), rồi chọn Execute shell (Thực thi shell) trong trình đơn Add build step (Thêm bước tạo bản dựng).
Trong cửa sổ Jenkins Execute shell command (Lệnh shell thực thi Jenkins), hãy nhập nội dung sau, thay thế <local_server_path> bằng đường dẫn đến ứng dụng mẫu trên máy chủ, <app_apk> bằng APK của ứng dụng và <app_test_apk> bằng APK kiểm thử của ứng dụng:
gcloud firebase test android run --app <local_server_path>/<app_apk>.apk --test <local_server_path>/<app_test_apk>.apk
Phân tích kết quả kiểm thử
Sau khi Test Lab hoàn tất việc kiểm thử ứng dụng, bạn có thể xem kết quả kiểm thử trong bảng điều khiển Firebase hoặc trong một bộ chứa Google Cloud Storage trong dự án của bạn. Bạn cũng có thể thêm lệnh gsutil vào lệnh shell nêu trên để sao chép dữ liệu kết quả kiểm thử vào máy tính cục bộ.
Để tìm hiểu thêm, hãy xem bài viết Phân tích kết quả của Firebase Test Lab.
Tích hợp liên tục với các hệ thống CI khác
Để tìm hiểu cách sử dụng Firebase Test Lab với các hệ thống CI khác, hãy xem tài liệu của các hệ thống đó: