Menulis Pengujian Pemantauan Sintetis untuk layanan Anda menggunakan Gemini

1. Pengantar

Dalam codelab ini, kita akan melihat cara memanfaatkan fitur Bantu Menulis guna menulis Pengujian Pemantauan Sintetis untuk layanan yang ada.

Yang akan Anda lakukan ...

  • Anda akan men-deploy API ke Google Cloud Run, yang akan berfungsi sebagai dasar untuk layanan yang akan kita uji.
  • Kemudian, Anda akan menulis Monitor Sintetis, yang merupakan fitur Cloud Monitoring.
  • Anda akan menggunakan fitur Bantu Menulis untuk menulis Monitor Sintetis.

Yang akan Anda pelajari ...

  • Apa itu Pemantauan Sintetis.
  • Cara menggunakan fitur Bantu Tulis dari Gemini di Pemantauan Sintetis, untuk menulis kasus pengujian yang akan memvalidasi fungsi layanan inti.

Yang Anda butuhkan ...

  • Browser web Chrome
  • Akun Gmail
  • Project Cloud dengan penagihan diaktifkan
  • Gemini Code Assist diaktifkan untuk Project Cloud Anda

Lab ini ditujukan bagi developer dari semua level, termasuk para pemula. Meskipun aplikasi contoh menggunakan bahasa Python, Anda tidak harus familier dengan pemrograman Python untuk memahami maksudnya.

2. Penyiapan

Sekarang kami akan mengaktifkan Gemini untuk Cloud di Project Google Cloud. Ikuti langkah-langkah berikut:

  1. Buka https://console.cloud.google.com dan pastikan Anda telah memilih Project Google Cloud yang akan digunakan untuk lab ini. Klik ikon Buka Gemini yang Anda lihat di kanan atas.

28f084ec1e159938.pngS

  1. Jendela percakapan Gemini untuk Cloud akan terbuka di sisi kanan konsol. Klik tombol Enable seperti yang ditunjukkan di bawah ini. Jika tombol Enable tidak ada dan yang terlihat adalah antarmuka Chat, Anda mungkin telah mengaktifkan Gemini untuk Cloud untuk project tersebut dan Anda dapat langsung melanjutkan ke langkah berikutnya.

e8df9adc4ea43a37.png

  1. Setelah diaktifkan, Anda dapat menguji Gemini untuk Cloud dengan mengajukan satu atau dua kueri. Beberapa contoh kueri ditampilkan, tetapi Anda dapat mencoba kueri berikut What is Synthetic Monitoring?

9859ea86a8310cb.pngS

Gemini untuk Cloud akan merespons dengan menjawab pertanyaan Anda. Lihat daftar Dokumentasi referensi yang telah disediakan tentang cara menulis Monitor Sintetis di Google Cloud.

Anda dapat mengklik ikon f68286b2b2ea5c0a.png di pojok kanan atas untuk menutup jendela percakapan Gemini untuk Cloud.

3. Men-deploy contoh Inventory API di Google Cloud Run

Sebelum menulis dengan pengujian, kita memerlukan API contoh yang dapat diuji. Untuk ini, kita akan menulis API inventaris sederhana yang akan di-deploy di Google Cloud Run.

Kita akan menggunakan Cloud Shell IDE, lingkungan pengembangan berbasis Code OSS yang terkelola sepenuhnya. Lingkungan ini dilengkapi dengan Ekstensi IDE Cloud Code yang membuat bekerja dengan layanan Google Cloud menjadi efisien. Ikuti langkah-langkah berikut:

  1. Buka ide.cloud.google.com. Mungkin perlu waktu beberapa saat sampai IDE muncul, jadi harap bersabar.
  2. Klik tombol Cloud Code - Sign in di status bar bawah seperti yang ditunjukkan. Otorisasi plugin seperti yang ditunjukkan. Jika Anda melihat "Cloud Code - no project" di status bar, pilih opsi tersebut, lalu pilih Project Google Cloud tertentu dari daftar project yang akan dikerjakan.

6f5ce865fc7a3ef5.pngS

  1. Klik tombol Gemini di pojok kanan bawah seperti yang ditunjukkan dan pilih untuk terakhir kalinya project Google Cloud yang benar. Jika Anda diminta untuk mengaktifkan Cloud AI Companion API, harap lakukan dan lanjutkan.
  2. Setelah memilih project Google Cloud, pastikan Anda dapat melihatnya di pesan status Cloud Code di status bar dan Code Assist juga telah diaktifkan di sebelah kanan status bar seperti yang ditunjukkan di bawah:

709e6c8248ac7d88.pngS

  1. Klik nama project Google Cloud di status bar di bawah.

f151759c156c124e.png

  1. Daftar opsi akan muncul. Klik Aplikasi Baru dari daftar di bawah.

91ea9836f38b7f74.pngS

  1. Pilih aplikasi Cloud Run.
  2. Pilih template aplikasi Python (Flask): Cloud Run.
  3. Simpan aplikasi baru di lokasi pilihan Anda.
  4. Sebagai konfirmasi, notifikasi akan muncul dan memberi tahu bahwa aplikasi Anda telah dibuat, lalu aplikasi Anda akan dimuat di jendela baru yang terbuka seperti yang ditunjukkan di bawah. File README.md dibuka. Untuk saat ini, Anda dapat menutup tampilan tersebut.

ed250f23b0e4fee8.png

  1. Dari Explorer, buka file app.py dan ganti dengan konten yang ditampilkan di bawah:
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. Saatnya men-deploy API inventaris ke Cloud Run. Kita perlu meluncurkan sesi Terminal baru dari Cloud Shell IDE melalui ikon menu di kiri atas. Klik ikon menu, lalu Terminal → New Terminal seperti yang ditunjukkan di bawah:

289173c68f1addb5.pngS

  1. Dalam sesi Terminal, berikan perintah berikut:
gcloud run deploy --source .
  1. Perintah di atas akan menanyakan tentang region yang akan di-deploy, pilih us-central1. Aplikasi akan meminta untuk mengizinkan unauthenticated invocations. Berikan izin dengan mengucapkan y.
  2. Setelah berhasil di-deploy, layanan akan memberikan URL Layanan. Catat masalahnya.

4. Menguji Inventory API

Sekarang Anda dapat menguji Inventory API, dengan meluncurkan browser dan membuka endpoint berikut:

SERVICE_URL/inventory

Tindakan ini akan menampilkan 3 item inventaris sesuai dengan sampel data di layanan. Contoh respons diberikan di bawah ini:

[
  {
    "id": 1,
    "name": "Item 1",
    "quantity": 10
  },
  {
    "id": 2,
    "name": "Item 2",
    "quantity": 20
  },
  {
    "id": 3,
    "name": "Item 3",
    "quantity": 30
  }
]

Sekarang kami dapat mengambil item inventaris tertentu melalui URL di bawah. Tindakan ini akan menampilkan item inventaris yang memiliki nilai id 1.

SERVICE_URL/inventory/1

Responsnya akan terlihat seperti ini:

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

Terakhir, kita dapat mencoba mengambil item inventaris yang tidak ada.

SERVICE_URL/inventory/200

Anda akan menerima pesan error karena tidak ada item inventaris dengan nilai id 200. Responsnya akan terlihat seperti berikut:

{
  "error": "Item not found"
}

Kini kami siap untuk menulis Pengujian Pemantauan Sintetis di Cloud Monitoring dengan bantuan Gemini.

5. Pemantauan Sintetis di Google Cloud

Seperti dalam status dokumentasi, Monitor sintetik memungkinkan Anda menentukan hal yang akan diuji dan urutan pengujian. Misalnya, Anda dapat menguji halaman login aplikasi, proses checkout toko e-commerce Anda, atau panggilan API yang dilakukan aplikasi Anda ke layanan pihak ketiga.

Saat membuat monitor sintetis, Anda men-deploy Cloud Function generasi ke-2 yang dibangun di Cloud Run. Fungsi Anda harus ditulis dalam Node.js dan mengandalkan framework SDK Sintetis open source. Cloud Monitoring mendistribusikan dan mengelola framework ini.

Cloud Monitoring mendukung jenis monitor sintetis berikut:

  • Monitor sintetis kustom atau berbasis Mocha memungkinkan Anda men-deploy Cloud Function satu tujuan yang dapat dikonfigurasi sepenuhnya.
  • Pemeriksa link rusak memungkinkan Anda menentukan opsi, seperti URI asal, jumlah link yang diuji, dan jumlah percobaan ulang, sebelum men-deploy Cloud Function yang telah dikonfigurasi sebelumnya.

Cloud Monitoring melakukan banyak tugas berat saat menjalankan monitor sintetis ini. Yang bertanggung jawab untuk:

  • Eksekusi berkala Cloud Function Anda.
  • Mengumpulkan dan menyimpan hasil dari setiap eksekusi:
  • Informasi keberhasilan dan kegagalan, seperti pesan error, jenis error, dan baris kode
  • Waktu eksekusi
  • Log
  • Metrik

Kami akan menggunakan bantuan Gemini dan khususnya fitur Help Me Write yang akan memberi kami kode awal untuk pengujian, sehingga kami dapat menggunakannya untuk melakukan pengujian dan juga membuat fitur tambahan selain kode tersebut. Mari kita lanjutkan.

6. Menulis Monitor Sintetis untuk Kasus Pengujian Inventory API

Sekarang kita akan membuka Konsol Cloud untuk menulis Monitor Sintetis.

Buka halaman Pemantauan Sintetis di Konsol Cloud. Ini akan memunculkan laman seperti yang ditunjukkan di bawah ini:

96bfce88f55442f3.pngS

Klik link CREATE SYNTHETIC MONITOR pada halaman di atas. Ini akan memunculkan formulir konfigurasi seperti yang ditunjukkan di bawah ini:

af4dde3e9e0a5a16.png

Kami telah memberikan nama s1, tetapi Anda dapat memilih nama lain. Perhatikan tombol HELP ME CODE pada layar di atas. Klik tombol tersebut.

Tindakan ini akan memunculkan pop-up yang mengharuskan Anda memberikan perintah yang menjelaskan kasus pengujian yang ingin Anda jalankan untuk memastikan bahwa Inventory API berfungsi dengan baik.

a13e78db15b37dd3.png

Di kotak edit perintah, gunakan perintah seperti yang diberikan di bawah:

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". 

Perhatikan bahwa kami telah menyediakan 3 kasus pengujian dan Anda harus mengganti nilai SERVICE_URL dengan nama Layanan Cloud Run sebenarnya untuk layanan Anda.

Setelah Anda mengklik BUAT, Gemini akan membuat kode Test Suite dan file package.json juga seperti yang ditunjukkan di bawah. Kode yang dibuat untuk Anda mungkin berbeda dengan yang Anda lihat di bawah. Lihat kode dan file dependensi dalam file package.json.

d19340c357f620bd.png

Klik INSERT INTO CLOUD FUNCTION. Tindakan ini akan memunculkan formulir pembuatan Cloud Function dengan nilai yang diperlukan yang telah Anda isi.

d70e50624a09149a.png

Klik APPLY FUNCTION lalu tombol CREATE. Kami tidak memilih konfigurasi Saluran Notifikasi apa pun dalam contoh ini, tetapi Anda bebas memilihnya.

Ini akan memulai proses pembuatan Google Cloud Function di latar belakang. Tindakan ini memerlukan waktu beberapa menit, harap bersabar.

1b07702ea5ac5bdb.pngS

Setelah Cloud Function berhasil di-deploy, Cloud Monitoring akan memulai tugas untuk memanggil Monitor Sintetis untuk Anda.

Di awal, Anda akan melihat bahwa tidak ada pemanggilan, seperti yang ditunjukkan di bawah ini:

dac473269a289a3b.png

Setelah ada operasi tertentu, Anda akan dapat melihat berbagai eksekusinya. Layar di bawah menunjukkan bahwa pengujian berhasil:

dc2d7dd98277fbcc.png

Jika Anda mengklik nama Monitor Sintetis (misalnya, s1), berbagai eksekusi akan ditampilkan seperti yang ditunjukkan di bawah ini:

8369a02b413d12cc.pngS

7. Selamat!

Selamat! Anda telah berhasil men-deploy contoh API ke Google Cloud Run dan menulis pengujian Pemantauan Sintetis untuk memvalidasi fungsi layanan. Selama prosesnya, Anda menggunakan Gemini untuk membantu membuat kode untuk Test Suite.

8. Dokumen referensi