1. บทนำ
ในโค้ดแล็บนี้ เราจะดูการใช้ฟีเจอร์ช่วยฉันเขียนเพื่อสร้างการทดสอบการตรวจสอบสังเคราะห์สำหรับบริการที่มีอยู่
สิ่งที่คุณต้องทำ...
- คุณจะทําให้ API ใช้งานได้ใน Google Cloud Run ซึ่งจะทําหน้าที่เป็นพื้นฐานสําหรับบริการที่เราจะทดสอบ
- จากนั้นคุณจะเขียนการตรวจสอบสังเคราะห์ ซึ่งเป็นฟีเจอร์ของ Cloud Monitoring
- คุณจะใช้ฟีเจอร์ช่วยฉันเขียนเพื่อเขียนการตรวจสอบสังเคราะห์
สิ่งที่คุณจะได้เรียนรู้...
- การตรวจสอบสังเคราะห์คืออะไร
- วิธีใช้ฟีเจอร์ช่วยฉันเขียนของ Gemini ในการตรวจสอบสังเคราะห์เพื่อเขียนกรณีทดสอบที่จะตรวจสอบการทำงานของบริการหลัก
สิ่งที่คุณต้องมี...
- เว็บเบราว์เซอร์ Chrome
- บัญชี Gmail
- โปรเจ็กต์ Cloud ที่เปิดใช้การเรียกเก็บเงิน
- เปิดใช้ Gemini Code Assist สำหรับโปรเจ็กต์ Cloud
แล็บนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ทุกระดับ รวมถึงผู้เริ่มต้น แม้ว่าแอปพลิเคชันตัวอย่างจะอยู่ในภาษา Python แต่คุณไม่จำเป็นต้องคุ้นเคยกับการเขียนโปรแกรม Python เพื่อทำความเข้าใจสิ่งที่เกิดขึ้น
2. ตั้งค่า
ตอนนี้เราจะเปิดใช้ Gemini สำหรับ Cloud ในโปรเจ็กต์ Google Cloud ทำตามขั้นตอนด้านล่าง
- ไปที่ https://console.cloud.google.com และตรวจสอบว่าคุณได้เลือกโปรเจ็กต์ Google Cloud ที่วางแผนจะใช้ในแล็บนี้ คลิกไอคอนเปิด Gemini ที่คุณเห็นที่ด้านขวาบน

- หน้าต่างแชท Gemini สำหรับ Cloud จะเปิดขึ้นทางด้านขวาของคอนโซล คลิกปุ่มเปิดใช้ตามที่แสดงด้านล่าง หากไม่เห็นปุ่มเปิดใช้ แต่เห็นอินเทอร์เฟซของ Chat แสดงว่าคุณอาจเปิดใช้ Gemini สำหรับ Cloud สำหรับโปรเจ็กต์แล้ว และสามารถไปที่ขั้นตอนถัดไปได้โดยตรง

- เมื่อเปิดใช้แล้ว คุณสามารถทดลองใช้ Gemini สำหรับ Cloud ได้โดยการถามคำค้นหา 1-2 รายการ ระบบจะแสดงตัวอย่างคำค้นหา 2-3 รายการ แต่คุณลองใช้คำค้นหา
What is Synthetic Monitoring?ได้

Gemini สำหรับ Cloud จะตอบคำถามของคุณ ดูรายการเอกสารประกอบอ้างอิงที่ระบุวิธีเขียนการตรวจสอบสังเคราะห์ใน Google Cloud
คุณคลิกไอคอน
ที่มุมขวาบนเพื่อปิดหน้าต่างแชท Gemini สำหรับ Cloud ได้
3. ติดตั้งใช้งาน Inventory API ตัวอย่างใน Google Cloud Run
ก่อนที่จะเริ่มเขียนการทดสอบ เราจะต้องมีตัวอย่าง API ที่ใช้ทดสอบได้ ในส่วนนี้ เราจะเขียน Inventory API อย่างง่ายเพื่อนำไปใช้ใน Google Cloud Run
เราจะใช้ Cloud Shell IDE ซึ่งเป็นสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ที่มีการจัดการครบวงจรซึ่งอิงตาม Code OSS สภาพแวดล้อมมาพร้อมกับส่วนขยาย Cloud Code IDE ที่ช่วยให้การทำงานกับบริการของ Google Cloud มีประสิทธิภาพ ทำตามขั้นตอนด้านล่าง
- ไปที่ ide.cloud.google.com IDE อาจใช้เวลาสักครู่จึงจะปรากฏขึ้น โปรดรอสักครู่
- คลิกปุ่ม Cloud Code - ลงชื่อเข้าใช้ ในแถบสถานะด้านล่างตามที่แสดง ให้สิทธิ์ปลั๊กอินตามวิธีการ หากเห็น "Cloud Code - ไม่มีโปรเจ็กต์" ในแถบสถานะ ให้เลือกข้อความดังกล่าว แล้วเลือกโปรเจ็กต์ Google Cloud ที่ต้องการจากรายการโปรเจ็กต์ที่คุณวางแผนจะใช้

- คลิกปุ่ม Gemini ที่มุมขวาล่างตามที่แสดง แล้วเลือกโปรเจ็กต์ Google Cloud ที่ถูกต้องอีกครั้ง หากระบบขอให้เปิดใช้ Cloud AI Companion API โปรดดำเนินการและดำเนินการต่อ
- เมื่อเลือกโปรเจ็กต์ Google Cloud แล้ว ให้ตรวจสอบว่าคุณเห็นโปรเจ็กต์นั้นในข้อความสถานะของ Cloud Code ในแถบสถานะ และคุณได้เปิดใช้ Code Assist ทางด้านขวาในแถบสถานะตามที่แสดงด้านล่าง

- คลิกชื่อโปรเจ็กต์ Google Cloud ในแถบสถานะด้านล่าง

- รายการตัวเลือกจะปรากฏขึ้น คลิกแอปพลิเคชันใหม่จากรายการด้านล่าง

- เลือกแอปพลิเคชัน Cloud Run
- เลือกเทมเพลตแอปพลิเคชัน Python (Flask): Cloud Run
- บันทึกแอปพลิเคชันใหม่ในตำแหน่งที่ต้องการ
- การแจ้งเตือนจะยืนยันว่าระบบได้สร้างแอปพลิเคชันของคุณแล้ว และหน้าต่างใหม่จะเปิดขึ้นพร้อมกับแอปพลิเคชันของคุณที่โหลดแล้วตามที่แสดงด้านล่าง ระบบจะเปิดไฟล์
README.mdคุณปิดมุมมองนั้นได้เลย

- จาก Explorer ให้ไปที่ไฟล์
app.pyแล้วแทนที่ด้วยเนื้อหาที่แสดงด้านล่าง
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)
- ได้เวลาทําให้ Inventory API ใช้งานได้กับ Cloud Run แล้ว เราจะต้องเปิดเซสชันเทอร์มินัลใหม่จาก Cloud Shell IDE ผ่านไอคอนเมนูที่ด้านซ้ายบน คลิกไอคอนเมนู แล้วคลิก Terminal → New Terminal ตามที่แสดงด้านล่าง

- ในเซสชันเทอร์มินัล ให้ป้อนคำสั่งต่อไปนี้
gcloud run deploy --source .
- คำสั่งข้างต้นจะถามเกี่ยวกับ
regionที่จะติดตั้งใช้งาน โปรดเลือกus-central1โดยจะขออนุญาตให้unauthenticated invocationsโปรดอนุญาตโดยพูดว่าy - เมื่อติดตั้งใช้งานบริการเรียบร้อยแล้ว ระบบจะแสดง URL ของบริการ จดบันทึกไว้
4. ทดสอบ Inventory API
ตอนนี้คุณทดสอบ Inventory API ได้แล้วโดยเปิดเบราว์เซอร์และไปที่ปลายทางต่อไปนี้
SERVICE_URL/inventory
ซึ่งควรแสดงสินค้าคงคลัง 3 รายการตามข้อมูลตัวอย่างในบริการ ตัวอย่างการตอบกลับแสดงอยู่ด้านล่าง
[
{
"id": 1,
"name": "Item 1",
"quantity": 10
},
{
"id": 2,
"name": "Item 2",
"quantity": 20
},
{
"id": 3,
"name": "Item 3",
"quantity": 30
}
]
ตอนนี้เราสามารถดึงข้อมูลสินค้าคงคลังที่เฉพาะเจาะจงผ่าน URL ด้านล่างได้แล้ว ซึ่งควรแสดงผลรายการสินค้าคงคลังที่มีค่า id เป็น 1
SERVICE_URL/inventory/1
การตอบกลับควรมีลักษณะดังนี้
{
"id": 1,
"name": "Item 1",
"quantity": 10
}
สุดท้าย เราสามารถลองดึงข้อมูลสินค้าคงคลังที่ไม่มีอยู่
SERVICE_URL/inventory/200
ซึ่งควรแสดงข้อความแสดงข้อผิดพลาดเนื่องจากไม่มีสินค้าคงคลังที่มีค่า id เป็น 200 การตอบกลับควรมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
{
"error": "Item not found"
}
ตอนนี้เราพร้อมที่จะเขียนการทดสอบการตรวจสอบสังเคราะห์ใน Cloud Monitoring โดยใช้ Gemini แล้ว
5. การตรวจสอบสังเคราะห์ใน Google Cloud
ดังที่เอกสารประกอบระบุไว้ มอนิเตอร์สังเคราะห์ช่วยให้คุณกำหนดสิ่งที่จะทดสอบและลำดับการทดสอบได้ ตัวอย่างเช่น คุณสามารถทดสอบหน้าเข้าสู่ระบบของแอปพลิเคชัน กระบวนการชำระเงินของร้านค้าอีคอมเมิร์ซ หรือการเรียก API ที่แอปพลิเคชันของคุณทำกับบริการของบุคคลที่สาม
เมื่อสร้างการตรวจสอบสังเคราะห์ คุณจะทําให้ Cloud Function รุ่นที่ 2 ซึ่งสร้างขึ้นใน Cloud Run ใช้งานได้ ฟังก์ชันต้องเขียนใน Node.js และใช้เฟรมเวิร์ก Synthetics SDK แบบโอเพนซอร์ส Cloud Monitoring จะเผยแพร่และจัดการเฟรมเวิร์กนี้
Cloud Monitoring รองรับการตรวจสอบสังเคราะห์ประเภทต่อไปนี้
- การตรวจสอบสังเคราะห์ที่กำหนดเองหรือที่ใช้ Mocha ช่วยให้คุณสามารถติดตั้งใช้งาน Cloud Function แบบอเนกประสงค์เดียวที่กำหนดค่าได้อย่างเต็มที่
- เครื่องมือตรวจสอบลิงก์เสียช่วยให้คุณระบุตัวเลือกต่างๆ เช่น URI ต้นทาง จำนวนลิงก์ที่ทดสอบ และจำนวนการลองใหม่ ก่อนที่จะทำให้ Cloud Function ที่กำหนดค่าไว้ล่วงหน้าใช้งานได้
Cloud Monitoring จะทำงานหนักมากขณะดำเนินการตรวจสอบสังเคราะห์เหล่านี้ โดยมีหน้าที่ดังนี้
- การเรียกใช้ Cloud Function เป็นระยะ
- การรวบรวมและจัดเก็บผลลัพธ์ของการดำเนินการแต่ละครั้ง
- ข้อมูลความสำเร็จและความล้มเหลว เช่น ข้อความแสดงข้อผิดพลาด ประเภทข้อผิดพลาด และบรรทัดของโค้ด
- เวลาดำเนินการ
- บันทึก
- เมตริก
เราจะใช้ความช่วยเหลือจาก Gemini และฟีเจอร์ Help Me Write โดยเฉพาะ ซึ่งจะให้โค้ดเริ่มต้นสำหรับการทดสอบ เพื่อให้เราใช้โค้ดนี้ในการทดสอบและสร้างฟีเจอร์เพิ่มเติมต่อยอดจากโค้ดนี้ได้ มาเริ่มกันเลย
6. การเขียนการตรวจสอบสังเคราะห์สำหรับกรณีทดสอบ Inventory API
ตอนนี้เราจะไปที่ Cloud Console เพื่อเขียนการตรวจสอบสังเคราะห์
ไปที่หน้าการตรวจสอบสังเคราะห์ใน Cloud Console ซึ่งจะแสดงหน้าเว็บดังที่แสดงด้านล่าง

คลิกลิงก์สร้างการตรวจสอบแบบสังเคราะห์ในหน้าด้านบน ซึ่งจะแสดงแบบฟอร์มการกำหนดค่าดังที่แสดงด้านล่าง

เราได้ตั้งชื่อว่า s1 แต่คุณจะเลือกชื่ออื่นก็ได้ คุณจะเห็นปุ่มช่วยฉันเขียนโค้ดในหน้าจอด้านบน ให้คลิกปุ่มดังกล่าว
ซึ่งจะแสดงป๊อปอัปที่คุณจะต้องระบุพรอมต์ที่อธิบายกรณีทดสอบที่คุณต้องการเรียกใช้เพื่อให้มั่นใจว่า Inventory API ทำงานได้ดี

ในช่องแก้ไขพรอมต์ ให้ใช้พรอมต์เช่นเดียวกับที่ระบุไว้ด้านล่าง
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".
โปรดทราบว่าเราได้ระบุกรณีทดสอบ 3 กรณี และคุณควรแทนที่ค่า SERVICE_URL ด้วยชื่อบริการ Cloud Run จริงสำหรับบริการของคุณ
เมื่อคลิกสร้างแล้ว Gemini จะสร้างโค้ด Test Suite และไฟล์ package.json ตามที่แสดงด้านล่าง โค้ดที่สร้างให้คุณอาจแตกต่างจากโค้ดที่คุณเห็นด้านล่าง ดูโค้ดและไฟล์การอ้างอิงในไฟล์ package.json

คลิก INSERT INTO CLOUD FUNCTION ซึ่งจะแสดงแบบฟอร์มการสร้าง Cloud Function พร้อมค่าที่จำเป็นที่ป้อนให้คุณ

คลิกใช้ฟังก์ชัน แล้วคลิกปุ่มสร้าง ในตัวอย่างนี้ เราไม่ได้เลือกการกำหนดค่าช่องทางการแจ้งเตือน แต่คุณเลือกได้
ซึ่งจะเริ่มกระบวนการสร้างฟังก์ชัน Google Cloud ในเบื้องหลัง การดำเนินการนี้อาจใช้เวลาสักครู่ โปรดรอ

เมื่อติดตั้งใช้งาน Cloud Function เรียบร้อยแล้ว Cloud Monitoring จะเริ่มเรียกใช้การตรวจสอบสังเคราะห์ให้คุณ
ในตอนแรก คุณจะเห็นว่าไม่มีการเรียกใช้ ดังที่แสดงด้านล่าง

เมื่อมีการเรียกใช้ที่เฉพาะเจาะจง คุณจะดูการดำเนินการต่างๆ ได้ หน้าจอด้านล่างแสดงว่าการทดสอบผ่าน

หากคลิกชื่อการตรวจสอบสังเคราะห์ (เช่น s1) ระบบจะแสดงการดำเนินการต่างๆ ดังที่แสดงด้านล่าง

7. ยินดีด้วย
ขอแสดงความยินดี คุณได้ติดตั้งใช้งาน API ตัวอย่างใน Google Cloud Run และเขียนการทดสอบการตรวจสอบสังเคราะห์เพื่อตรวจสอบฟังก์ชันการทำงานของบริการเรียบร้อยแล้ว ในระหว่างกระบวนการนี้ คุณได้ใช้ Gemini เพื่อช่วยสร้างโค้ดสำหรับชุดทดสอบ