1. Giới thiệu
Trong lớp học lập trình này, chúng ta sẽ xem xét việc sử dụng tính năng Giúp tôi viết để tạo Bài kiểm thử giám sát tổng hợp cho các dịch vụ hiện có của bạn.
Những việc bạn sẽ làm...
- Bạn sẽ triển khai một API đến Google Cloud Run. API này sẽ đóng vai trò là cơ sở cho dịch vụ mà chúng ta sẽ kiểm thử.
- Sau đó, bạn sẽ viết một Trình giám sát tổng hợp, đây là một tính năng của Cloud Monitoring.
- Bạn sẽ dùng tính năng Giúp tôi viết để viết Synthetic Monitor.
Kiến thức bạn sẽ học được...
- Giám sát tổng hợp là gì.
- Cách sử dụng tính năng Giúp tôi viết của Gemini trong tính năng Giám sát tổng hợp để tạo các trường hợp kiểm thử nhằm xác thực chức năng dịch vụ cốt lõi.
Những thứ bạn cần...
- Trình duyệt web Chrome
- Tài khoản Gmail
- Một Dự án trên đám mây đã bật tính năng thanh toán
- Gemini Code Assist được bật cho Dự án trên đám mây
Lớp học này dành cho nhà phát triển ở mọi cấp độ, kể cả người mới bắt đầu. Mặc dù ứng dụng mẫu này sử dụng ngôn ngữ Python, nhưng bạn không cần phải quen thuộc với việc lập trình bằng Python để hiểu những gì đang diễn ra.
2. Thiết lập
Giờ đây, chúng ta sẽ bật Gemini cho Cloud trong Dự án Google Cloud. Hãy làm theo các bước dưới đây:
- Truy cập vào https://console.cloud.google.com và đảm bảo bạn đã chọn Dự án trên Google Cloud mà bạn dự định sử dụng cho phòng thí nghiệm này. Nhấp vào biểu tượng Mở Gemini ở trên cùng bên phải.

- Cửa sổ trò chuyện Gemini cho Cloud sẽ mở ra ở bên phải bảng điều khiển. Nhấp vào nút Bật như minh hoạ bên dưới. Nếu không thấy nút Bật mà thấy giao diện Chat, thì có thể bạn đã bật Gemini cho Cloud cho dự án này và có thể chuyển thẳng đến bước tiếp theo.

- Sau khi bật, bạn có thể dùng thử Gemini cho Cloud bằng cách đặt một hoặc hai câu hỏi. Một số cụm từ tìm kiếm mẫu sẽ xuất hiện, nhưng bạn có thể thử cụm từ tìm kiếm sau
What is Synthetic Monitoring?

Gemini cho Cloud sẽ trả lời câu hỏi của bạn. Hãy xem danh sách Tài liệu tham khảo được cung cấp về cách bạn có thể viết các Giám sát tổng hợp trong Google Cloud.
Bạn có thể nhấp vào biểu tượng
ở góc trên cùng bên phải để đóng cửa sổ trò chuyện Gemini cho Cloud.
3. Triển khai một API Kho hàng mẫu trên Google Cloud Run
Trước khi viết các kiểm thử, chúng ta sẽ cần một API mẫu để kiểm thử. Để làm việc này, chúng ta sẽ viết một API kho hàng đơn giản mà chúng ta sẽ triển khai trên Google Cloud Run.
Chúng ta sẽ sử dụng Cloud Shell IDE, một môi trường phát triển dựa trên Code OSS được quản lý hoàn toàn. Môi trường này đi kèm với Tiện ích IDE Cloud Code giúp bạn làm việc hiệu quả với các dịch vụ của Google Cloud. Hãy làm theo các bước dưới đây:
- Truy cập vào ide.cloud.google.com. Có thể mất một lúc thì IDE mới xuất hiện, vì vậy, vui lòng kiên nhẫn chờ đợi.
- Nhấp vào nút Cloud Code – Sign in (Cloud Code – Đăng nhập) trong thanh trạng thái dưới cùng như minh hoạ. Uỷ quyền cho trình bổ trợ theo hướng dẫn. Nếu bạn thấy "Cloud Code – no project" (Cloud Code – không có dự án) trong thanh trạng thái, hãy chọn mục đó rồi chọn Dự án cụ thể trên Google Cloud trong danh sách các dự án mà bạn dự định làm việc.

- Nhấp vào nút Gemini ở góc dưới cùng bên phải như minh hoạ rồi chọn dự án trên đám mây của Google chính xác thêm một lần nữa. Nếu được yêu cầu bật Cloud AI Companion API, vui lòng bật và tiếp tục.
- Sau khi chọn dự án Google Cloud, hãy đảm bảo rằng bạn có thể thấy dự án đó trong thông báo trạng thái Cloud Code trên thanh trạng thái và bạn cũng đã bật Trợ lý lập trình ở bên phải, trong thanh trạng thái như minh hoạ bên dưới:

- Nhấp vào tên dự án trên Google Cloud trong thanh trạng thái bên dưới.

- Một danh sách các lựa chọn sẽ xuất hiện. Nhấp vào Ứng dụng mới trong danh sách bên dưới.

- Chọn ứng dụng Cloud Run.
- Chọn mẫu ứng dụng Python (Flask): Cloud Run.
- Lưu ứng dụng mới vào vị trí bạn muốn.
- Một thông báo xác nhận rằng ứng dụng của bạn đã được tạo và một cửa sổ mới sẽ mở ra với ứng dụng của bạn được tải như minh hoạ dưới đây. Một tệp
README.mdsẽ mở ra. Bạn có thể đóng chế độ xem đó ngay bây giờ.

- Trong Trình khám phá, hãy truy cập vào tệp
app.pyrồi thay thế bằng nội dung bên dưới:
from flask import Flask, jsonify, request
app = Flask(__name__)
inventory = [
{
'id': 1,
'name': 'Item 1',
'quantity': 10
},
{
'id': 2,
'name': 'Item 2',
'quantity': 20
},
{
'id': 3,
'name': 'Item 3',
'quantity': 30
}
]
@app.route('/inventory', methods=['GET'])
def get_inventory():
return jsonify(inventory)
@app.route('/inventory/<int:id>', methods=['GET'])
def get_inventory_item(id):
for item in inventory:
if item['id'] == id:
return jsonify(item)
return jsonify({'error': 'Item not found'}), 404
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=8080)
- Đã đến lúc triển khai Inventory API lên Cloud Run. Chúng ta cần khởi chạy một phiên Terminal mới từ Cloud Shell IDE thông qua biểu tượng trình đơn ở trên cùng bên trái. Nhấp vào biểu tượng trình đơn rồi nhấp vào Terminal → New Terminal (Thiết bị đầu cuối → Thiết bị đầu cuối mới) như minh hoạ dưới đây:

- Trong phiên Terminal, hãy đưa ra lệnh sau:
gcloud run deploy --source .
- Lệnh trên sẽ hỏi về
regionđể triển khai, vui lòng chọnus-central1. Ứng dụng sẽ yêu cầu bạn cho phépunauthenticated invocations, vui lòng cho phép bằng cách nóiy. - Sau khi triển khai thành công, dịch vụ sẽ cung cấp một URL dịch vụ. Ghi chú lại.
4. Dùng thử API Kho hàng
Giờ đây, bạn có thể kiểm thử API Kho hàng bằng cách khởi chạy trình duyệt và truy cập vào các điểm cuối sau:
SERVICE_URL/inventory
Thao tác này sẽ trả về 3 mặt hàng trong kho hàng theo dữ liệu mẫu trong dịch vụ. Sau đây là phản hồi mẫu:
[
{
"id": 1,
"name": "Item 1",
"quantity": 10
},
{
"id": 2,
"name": "Item 2",
"quantity": 20
},
{
"id": 3,
"name": "Item 3",
"quantity": 30
}
]
Giờ đây, chúng ta có thể truy xuất một mặt hàng cụ thể trong kho hàng thông qua URL bên dưới. Thao tác này sẽ trả về mặt hàng trong kho có giá trị id là 1.
SERVICE_URL/inventory/1
Phản hồi sẽ có dạng tương tự như sau:
{
"id": 1,
"name": "Item 1",
"quantity": 10
}
Cuối cùng, chúng ta có thể thử truy xuất một mặt hàng không tồn tại trong kho hàng.
SERVICE_URL/inventory/200
Thao tác này sẽ trả về thông báo lỗi vì không có mặt hàng nào có giá trị id là 200. Phản hồi sẽ có dạng tương tự như sau:
{
"error": "Item not found"
}
Giờ đây, chúng ta đã sẵn sàng viết các Kiểm thử giám sát tổng hợp trong Cloud Monitoring nhờ sự trợ giúp của Gemini.
5. Tính năng Giám sát tổng hợp trong Google Cloud
Như tài liệu nêu rõ, các màn hình mô phỏng cho phép bạn xác định những gì bạn sẽ kiểm thử và một chuỗi kiểm thử. Ví dụ: bạn có thể kiểm thử trang đăng nhập của ứng dụng, quy trình thanh toán của cửa hàng thương mại điện tử hoặc các lệnh gọi API mà ứng dụng của bạn thực hiện đối với các dịch vụ bên thứ ba.
Khi tạo một màn hình tổng hợp, bạn sẽ triển khai một Cloud Function thế hệ thứ 2 được xây dựng trên Cloud Run. Hàm của bạn phải được viết bằng Node.js và dựa vào khung Synthetics SDK nguồn mở. Cloud Monitoring phân phối và quản lý khung này.
Cloud Monitoring hỗ trợ các loại màn hình ảo sau:
- Màn hình tổng hợp tuỳ chỉnh hoặc dựa trên Mocha cho phép bạn triển khai một Cloud Function có thể định cấu hình hoàn toàn cho một mục đích.
- Trình kiểm tra đường liên kết bị hỏng cho phép bạn chỉ định các lựa chọn, chẳng hạn như URI gốc, số lượng đường liên kết được kiểm thử và số lần thử lại, trước khi triển khai một Cloud Function được định cấu hình sẵn.
Cloud Monitoring đảm nhận nhiều công việc nặng nhọc trong khi thực thi các chương trình giám sát giả này. Thư viện này chịu trách nhiệm:
- Thực thi định kỳ Cloud Function.
- Thu thập và lưu trữ kết quả của mỗi lần thực thi:
- Thông tin thành công và thất bại, chẳng hạn như thông báo lỗi, loại lỗi và dòng mã
- Thời gian thực thi
- Nhật ký
- Chỉ số
Chúng ta sẽ nhờ đến sự trợ giúp của Gemini, cụ thể là tính năng Help Me Write. Tính năng này sẽ cung cấp cho chúng ta mã ban đầu cho các bài kiểm thử, nhờ đó chúng ta có thể dùng mã này để kiểm thử và xây dựng các tính năng bổ sung dựa trên đó. Chúng ta bắt đầu thôi.
6. Viết Trình giám sát tổng hợp cho các trường hợp kiểm thử API Kho hàng
Bây giờ, chúng ta sẽ chuyển đến Cloud Console để viết Synthetic Monitor.
Truy cập vào trang Giám sát tổng hợp trong Cloud Console. Thao tác này sẽ mở trang như minh hoạ dưới đây:

Nhấp vào đường liên kết TẠO THIẾT BỊ GIÁM SÁT GIẢ LẬP trong trang trên. Thao tác này sẽ mở ra một biểu mẫu cấu hình như minh hoạ dưới đây:

Chúng tôi đã cung cấp tên s1, nhưng bạn có thể chọn tên bất kỳ. Hãy lưu ý nút HELP ME CODE (GIÚP TÔI VIẾT MÃ) trong màn hình ở trên. Nhấp vào đó.
Thao tác này sẽ mở ra một cửa sổ bật lên, nơi bạn cần đưa ra câu lệnh mô tả các trường hợp kiểm thử mà bạn muốn thực thi để đảm bảo Inventory API hoạt động bình thường.

Trong hộp chỉnh sửa câu lệnh, hãy sử dụng một câu lệnh như câu lệnh bên dưới:
Help me write Node.js based synthetic test script with the assert module that performs the following tests:
1. A GET operation on SERVICE_URL/inventory. The http response code returned should be 200.
2. A GET operation on SERVICE_URL/inventory/1. The http response code returned should be 200. The response data is JSON format. It should be a single object with attributes as follows: "id" value should be 1, "name" value should be "Item 1" and "quantity" value should be 10.
3. A GET operation on SERVICE_URL/inventory/200. The https response code returned should be 404. The response data is in JSON format. It should be a single object with attributes as follows: "error" value should be "Item not found".
Xin lưu ý rằng chúng tôi đã cung cấp 3 trường hợp kiểm thử và bạn nên thay thế giá trị SERVICE_URL bằng tên Dịch vụ Cloud Run thực tế cho dịch vụ của mình.
Sau khi bạn nhấp vào TẠO, Gemini sẽ tạo mã Bộ thử nghiệm và cả tệp package.json như minh hoạ bên dưới. Mã được tạo cho bạn có thể khác với mã mà bạn thấy bên dưới. Xem mã và các tệp phụ thuộc trong tệp package.json.

Nhấp vào INSERT INTO CLOUD FUNCTION (CHÈN VÀO HÀM TRÊN ĐÁM MÂY). Thao tác này sẽ mở biểu mẫu tạo Cloud Functions với các giá trị cần thiết được điền sẵn cho bạn.

Nhấp vào APPLY FUNCTION (ÁP DỤNG HÀM) rồi nhấp vào nút CREATE (TẠO). Trong ví dụ này, chúng tôi không chọn cấu hình Kênh cảnh báo nào, nhưng bạn có thể chọn cấu hình đó.
Thao tác này sẽ bắt đầu quy trình tạo Google Cloud Function ở chế độ nền. Quá trình này có thể mất vài phút, vì vậy hãy kiên nhẫn chờ đợi.

Sau khi Cloud Function được triển khai thành công, Cloud Monitoring sẽ bắt đầu thực hiện nhiệm vụ gọi Trình giám sát giả lập cho bạn.
Lúc đầu, bạn sẽ thấy không có lệnh gọi nào, như minh hoạ dưới đây:

Sau khi có các lần chạy cụ thể, bạn sẽ có thể xem nhiều lượt thực thi. Màn hình bên dưới minh hoạ rằng các kiểm thử đang diễn ra:

Nếu bạn nhấp vào tên Synthetic Monitor (Giám sát tổng hợp) (ví dụ: s1), thì tên này sẽ cho thấy nhiều lượt thực thi như minh hoạ bên dưới:

7. Xin chúc mừng!
Chúc mừng bạn đã triển khai thành công một API mẫu cho Google Cloud Run và viết các bài kiểm thử Giám sát tổng hợp để xác thực chức năng của dịch vụ. Trong quá trình này, bạn đã sử dụng Gemini để giúp tạo mã cho Bộ thử nghiệm.