Viết bài kiểm tra giám sát tổng hợp cho các dịch vụ của bạn khi sử dụng Gemini

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 để viết bài Kiểm tra giám sát tổng hợp cho các dịch vụ hiện có của bạn.

Bạn sẽ thực hiện...

  • Bạn sẽ triển khai một API cho Google Cloud Run. API này sẽ đóng vai trò là cơ sở cho dịch vụ mà chúng tôi sẽ thử nghiệm.
  • Sau đó, bạn sẽ viết một Giám sát tổng hợp, một tính năng của Giám sát trên đám mây.
  • Bạn sẽ dùng tính năng Giúp tôi viết để viết màn hình tổng hợp.

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 dịch vụ Giám sát tổng hợp để soạn thảo các trường hợp thử nghiệm giúp xác thực chức năng của dịch vụ cốt lõi.

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
  • Tính năng Hỗ trợ mã Gemini đã được bật cho dự án của bạn trên Google Cloud

Phòng thí nghiệm này nhắm đến 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 bằng ngôn ngữ Python, nhưng bạn không cần phải quen thuộc với lập trình Python để hiểu điều gì đang diễn ra.

2. Thiết lập

Giờ đây, chúng tôi sẽ bật Gemini cho Cloud trong dự án của mình trên Google Cloud. Hãy làm theo các bước dưới đây:

  1. Truy cập vào https://console.cloud.google.com và đảm bảo rằng bạn đã chọn Dự án Google Cloud mà bạn định hợp tác trong phòng thí nghiệm này. Nhấp vào biểu tượng Mở Gemini mà bạn thấy ở trên cùng bên phải.

28f084ec1e159938.pngS

  1. Cửa sổ trò chuyện của 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ư hình dưới đây. Nếu bạn không thấy nút Bật mà thay vào đó thấy giao diện Chat, thì có khả năng 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.

e8df9adc4ea43a37.png

  1. Sau khi bật Gemini cho Cloud, 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 vài truy vấn mẫu sẽ được hiển thị nhưng bạn có thể thử truy vấn sau What is Synthetic Monitoring?

9859ea86a8310cb.png.

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 viết màn hình tổng hợp trong Google Cloud.

Bạn có thể nhấp vào biểu tượng f68286b2b2ea5c0a.png ở góc trên cùng bên phải để đóng cửa sổ trò chuyện của Gemini cho Cloud.

3. Triển khai API Inventory mẫu trên Google Cloud Run

Trước khi viết mã kiểm thử, chúng ta cần có một API mẫu để có thể kiểm thử. Vì vậy, chúng tôi sẽ viết một API khoảng không quảng cáo đơn giản mà chúng tôi sẽ triển khai trên Google Cloud Run.

Chúng tôi sẽ sử dụng Cloud Shell IDE, một môi trường phát triển dựa trên Code OSS (Hệ điều hành mã) được quản lý hoàn toàn. Môi trường này có Tiện ích IDE mã đám mây giúp 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:

  1. Truy cập vào ide.cloud.google.com. Có thể mất chút thời gian để IDE xuất hiện, vì vậy hãy kiên nhẫn.
  2. Nhấp vào nút Cloud Code – Đăng nhập trên thanh trạng thái ở dưới cùng như minh hoạ. Uỷ quyền trình bổ trợ theo hướng dẫn. Nếu bạn thấy dòng chữ "Cloud Code - no project" (Mã đám mây – không có dự án) trên thanh trạng thái, hãy chọn mục đó rồi chọn Dự án Google Cloud cụ thể trong danh sách các dự án mà bạn dự định hợp tác.

6f5ce865fc7a3ef5.png.

  1. Nhấp vào nút Gemini ở góc dưới cùng bên phải như minh hoạ rồi chọn một lần cuối cùng vào đúng dự án Google Cloud. Nếu bạn được yêu cầu bật Cloud AI Companion API, vui lòng bật và tiếp tục.
  2. Sau khi chọn dự án trên Google Cloud, hãy đảm bảo rằng bạn có thể thấy điều đó trong thông báo trạng thái Mã đám mây trên thanh trạng thái và bạn cũng đã bật tính năng Hỗ trợ mã ở bên phải, trên thanh trạng thái như sau:

709e6c8248ac7d88.pngS

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

f151759c156c124e.png

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

91ea9836f38b7f74.pngS

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

ed250f23b0e4fee8.png

  1. Trên Trình khám phá, hãy truy cập vào tệp app.py rồi thay thế tệp đó bằng nội dung dưới đây:
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)
  1. Đã đến lúc triển khai API khoảng không quảng cáo cho Cloud Run. Chúng ta sẽ cần chạy một phiên thiết bị đầu cuối 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 (Nhà ga mới) như minh hoạ dưới đây:

289173c68f1addb5.pngS

  1. Trong phiên hoạt động Terminal, hãy dùng lệnh sau:
gcloud run deploy --source .
  1. Lệnh ở trên sẽ hỏi về region để triển khai, vui lòng chọn us-central1. Hộp thoại này sẽ yêu cầu cho phép unauthenticated invocations, vui lòng cho phép bằng cách nói y.
  2. Sau khi triển khai thành công, dịch vụ sẽ cung cấp URL Dịch vụ. Ghi chú lại nhé.

4. Kiểm thử API Inventory

Bây giờ, bạn có thể dùng thử API Inventory (API Khoảng không quảng cáo) bằng cách chạy trình duyệt và nhấn vào các điểm cuối sau:

SERVICE_URL/inventory

Thao tác này sẽ trả về cho bạn 3 mặt hàng tồn kho theo dữ liệu mẫu trong dịch vụ. Dưới đây là câu trả lờ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ề cho bạn mặt hàng trong kho có giá trị id là 1.

SERVICE_URL/inventory/1

Câu trả lời phải tương tự như:

{
  "id": 1,
  "name": "Item 1",
  "quantity": 10
}

Cuối cùng, chúng ta có thể thử truy xuấ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ề cho bạn một thông báo lỗi vì không có mặt hàng nào trong kho hàng có giá trị id bằng 200. Phản hồi phải tương tự như sau:

{
  "error": "Item not found"
}

Giờ đây, chúng tôi đã sẵn sàng viết các bài kiểm tra giám sát tổng hợp trong giải pháp Giám sát trên đám mây với sự trợ giúp của Gemini.

5. Giám sát tổng hợp trong Google Cloud

Như đã nêu trong tài liệu này, màn hình tổng hợp cho phép bạn xác định nội dung bạn sẽ kiểm thử và trình tự kiểm thử. Ví dụ: bạn có thể kiểm tra 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 lệnh gọi API mà ứng dụng thực hiện cho dịch vụ của bên thứ ba.

Khi tạo màn hình tổng hợp, bạn sẽ triển khai Chức năng đám mây thế hệ 2 được xây dựng dựa trên Cloud Run. Hàm của bạn phải được viết bằng Node.js và dựa trên khung SDK tổng hợp nguồn mở. Giải pháp Giám sát trên đám mây phân phối và quản lý khung này.

Giải pháp Giám sát trên đám mây hỗ trợ các loại màn hình tổng hợp sau đây:

Giải pháp Giám sát trên đám mây đảm nhận nhiều công việc khó khăn khi thực thi các màn hình tổng hợp này. Ứng dụng này chịu trách nhiệm:

  • Triển khai định kỳ Hàm đám mây.
  • Thu thập và lưu trữ kết quả của mỗi lần thực thi:
  • Thông tin về trạng thái thành công và không thành công, 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 tôi sẽ sử dụng sự trợ giúp của Gemini, đặc biệt là tính năng Help Me Write. Tính năng này sẽ cung cấp cho chúng tôi mã ban đầu cho các cuộc thử nghiệm. Nhờ vậy, chúng tôi có thể sử dụng tính năng này cho việc thử nghiệm và phát triển thêm các tính năng khác. Chúng ta bắt đầu nào!

6. Viết thư viện Giám sát tổng hợp cho các trường hợp kiểm thử API Inventory

Bây giờ, chúng ta sẽ chuyển đến Cloud Console để viết màn hình tổng hợp.

Truy cập vào trang Giám sát tổng hợp trong Cloud Console. Thao tác này sẽ mở ra trang như sau:

96bfce88f55442f3.pngS

Nhấp vào đường liên kết TẠO MÀN HÌNH TỔNG HỢP ở trang ở trên. Thao tác này sẽ mở ra một biểu mẫu cấu hình như dưới đây:

af4dde3e9e0a5a16.png

Chúng tôi đã cung cấp tên s1, nhưng bạn có thể chọn bất kỳ tên nào khác. Lưu ý nút GIÚP TÔI MÃ trong màn hình ở trên. Hãy nhấp vào đó.

Thao tác này sẽ mở ra một cửa sổ bật lên, tại đây bạn sẽ cần đưa ra lời nhắc mô tả các trường hợp kiểm thử mà bạn muốn thực thi để đảm bảo rằng Inventory API (API Khoảng không quảng cáo) đang hoạt động tốt.

a13e78db15b37dd3.png

Trong hộp chỉnh sửa câu lệnh, hãy sử dụng câu lệnh như câu lệnh được cung cấp dưới đây:

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 thực tế của Dịch vụ Cloud Run dành 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à tệp package.json như minh hoạ dưới đây. Mã được tạo cho bạn có thể khác với mã mà bạn thấy bên dưới. Xem xét mã và các tệp phụ thuộc trong tệp package.json.

d19340c357f620bd.png

Nhấp vào INSERT INTO CLOUD FUNCTION (Thêm các chức năng đám mây). Thao tác này sẽ mở biểu mẫu tạo Hàm đám mây với các giá trị cần thiết được điền sẵn cho bạn.

d70e50624a09149a.png

Nhấp vào ÁP DỤNG CHỨC NĂNG rồi nhấp vào nút TẠO. Chúng tôi không chọn bất kỳ cấu hình Kênh cảnh báo nào trong ví dụ này nhưng bạn có thể thoải mái lựa chọn cấu hình đó.

Thao tác này sẽ bắt đầu quá trình tạo Hàm Google Cloud ở 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.

1b07702ea5ac5bdb.png.

Sau khi triển khai thành công Chức năng đám mây, giải pháp Giám sát trên đám mây sẽ bắt đầu quy trình gọi Giám sát tổng hợp cho bạn.

Ở phần đầu, bạn sẽ thấy không có lệnh gọi nào như minh hoạ dưới đây:

dac473269a289a3b.png

Sau khi có các lần chạy cụ thể, bạn sẽ có thể thấy các quá trình thực thi khác nhau. Màn hình dưới đây minh hoạ các bài kiểm thử đang thành công:

dc2d7dd98277fbcc.png

Nếu nhấp vào tên Synthetic Monitor (ví dụ: s1), bạn sẽ thấy các phương thức thực thi như sau:

8369a02b413d12cc.pngS

7. Xin chúc mừng!

Xin 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 mã 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 để hỗ trợ việc tạo mã cho Bộ thử nghiệm.

8. Tài liệu tham khảo