1. บทนำ
ใน Codelab นี้ เราจะมาดูการใช้ฟีเจอร์ช่วยฉันเขียนเพื่อเขียนการทดสอบการตรวจสอบสังเคราะห์สำหรับบริการที่มีอยู่ของคุณ
สิ่งที่จะต้องทำ...
- คุณจะทำให้ API ใช้งานได้ใน Google Cloud Run ซึ่งจะทำหน้าที่เป็นพื้นฐานสำหรับบริการของเราที่เราจะทดสอบ
- จากนั้นคุณจะเขียนการตรวจสอบสังเคราะห์ ซึ่งเป็นฟีเจอร์ของ Cloud Monitoring
- คุณจะใช้ฟีเจอร์ช่วยฉันเขียนเพื่อเขียนหน้าจอสังเคราะห์
สิ่งที่คุณจะได้เรียนรู้...
- การตรวจสอบสังเคราะห์คืออะไร
- วิธีใช้ฟีเจอร์ช่วยฉันเขียนของ Gemini ในการตรวจสอบสังเคราะห์เพื่อเขียนเคสทดสอบที่จะตรวจสอบฟังก์ชันการทำงานของบริการหลัก
สิ่งที่คุณต้องมี...
- เว็บเบราว์เซอร์ Chrome
- บัญชี Gmail
- โปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่เปิดใช้การเรียกเก็บเงิน
- เปิดใช้ Gemini Code Assist สำหรับโปรเจ็กต์ระบบคลาวด์ของคุณแล้ว
ห้องทดลองนี้มุ่งเป้าไปที่นักพัฒนาซอฟต์แวร์ทุกระดับ รวมถึงผู้เริ่มต้น แม้ว่าแอปพลิเคชันตัวอย่างจะเป็นภาษา Python แต่คุณไม่จําเป็นต้องทำความคุ้นเคยกับการเขียนโปรแกรม Python เพื่อทําความเข้าใจถึงสิ่งที่เกิดขึ้น
2. ตั้งค่า
ตอนนี้เราจะเปิดใช้ Gemini สำหรับ Cloud ในโปรเจ็กต์ Google Cloud โปรดทำตามขั้นตอนที่ระบุไว้ด้านล่าง
- ไปที่ https://console.cloud.google.com และตรวจสอบว่าได้เลือกโปรเจ็กต์ Google Cloud ที่คุณวางแผนจะทํางานด้วยสําหรับ Lab นี้ คลิกไอคอน "เปิด Gemini" ที่คุณเห็นที่ด้านขวาบน
- หน้าต่างแชท Gemini สำหรับ Cloud จะเปิดขึ้นทางด้านขวาของคอนโซล คลิกปุ่ม "เปิดใช้" ตามที่แสดงด้านล่าง หากไม่เห็นปุ่มเปิดใช้ แต่เห็นอินเทอร์เฟซ Chat แทน แสดงว่าคุณอาจเปิดใช้ Gemini สำหรับ Cloud สำหรับโปรเจ็กต์แล้ว และไปที่ขั้นตอนถัดไปได้โดยตรง
- เมื่อเปิดใช้แล้ว คุณจะทดสอบ Gemini สำหรับ Cloud ได้โดยถามจากคำค้นหาสัก 1-2 ข้อความ ตัวอย่างการค้นหาแสดงอยู่เล็กน้อย แต่คุณลองใช้คําค้นหาต่อไปนี้ได้
What is Synthetic Monitoring?
Gemini สำหรับ Cloud จะตอบกลับด้วยคำตอบของคำถามของคุณ ดูรายการเอกสารอ้างอิงที่มีให้เกี่ยวกับวิธีเขียนการตรวจสอบสังเคราะห์ใน Google Cloud
คุณสามารถคลิกไอคอน ที่มุมขวาบนเพื่อปิดหน้าต่างแชท Gemini สำหรับ Cloud
3. ทำให้ Inventory API ตัวอย่างใช้งานได้ใน Google Cloud Run
ก่อนเขียนข้อมูลการทดสอบ เราจำเป็นต้องมี API ตัวอย่างไว้นำไปทดสอบ โดยเราจะเขียน API พื้นที่โฆษณาอย่างง่ายที่เราจะทำให้ใช้งานได้ใน Google Cloud Run
เราจะใช้ Cloud Shell IDE ซึ่งเป็นสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่อิงตาม Code OSS ที่มีการจัดการครบวงจร สภาพแวดล้อมดังกล่าวมาพร้อมกับส่วนขยาย Cloud Code IDE ที่ช่วยให้การทำงานกับบริการ Google Cloud มีประสิทธิภาพ โปรดทำตามขั้นตอนที่ระบุไว้ด้านล่าง
- ไปที่ ide.cloud.google.com อาจใช้เวลาสักครู่กว่าที่ IDE จะปรากฏ ดังนั้นโปรดอดทนรอ
- คลิกปุ่ม Cloud Code - Sign inในแถบสถานะด้านล่างตามที่แสดง ให้สิทธิ์ปลั๊กอินตามคำแนะนำ หากเห็น "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 ผ่านไอคอนเมนูที่ด้านซ้ายบน คลิกไอคอนเมนู แล้วคลิกเทอร์มินัล → เทอร์มินัลใหม่ดังที่แสดงด้านล่าง
- ใช้คำสั่งต่อไปนี้ในเซสชันเทอร์มินัล
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 และใช้เฟรมเวิร์ก SDK สังเคราะห์แบบโอเพนซอร์ส Cloud Monitoring จะกระจายและจัดการเฟรมเวิร์กนี้
Cloud Monitoring สนับสนุนการตรวจสอบสังเคราะห์ประเภทต่อไปนี้
- จอภาพสังเคราะห์ที่กำหนดเองหรือแบบ Mocha ช่วยให้คุณใช้งาน Cloud Function ที่มีวัตถุประสงค์เดียวที่กำหนดค่าได้อย่างสมบูรณ์ได้
- เครื่องมือตรวจสอบลิงก์เสียจะช่วยให้คุณระบุตัวเลือกต่างๆ เช่น URI ต้นทาง จำนวนลิงก์ที่ทดสอบ และจำนวนการลองใหม่ ก่อนที่จะทำให้ Cloud Function ที่กำหนดค่าไว้ล่วงหน้าใช้งานได้
Cloud Monitoring มีการรับภาระงานหนักมากขณะเรียกใช้การตรวจสอบสังเคราะห์เหล่านี้ ซึ่งมีหน้าที่รับผิดชอบในเรื่องต่อไปนี้
- การดำเนินการเป็นระยะของ Cloud Function
- การรวบรวมและการจัดเก็บผลลัพธ์ของการดำเนินการแต่ละครั้ง:
- ข้อมูลความสำเร็จและความล้มเหลว เช่น ข้อความแสดงข้อผิดพลาด ประเภทข้อผิดพลาด และบรรทัดของโค้ด
- เวลาดำเนินการ
- บันทึก
- เมตริก
เราจะอาศัยความช่วยเหลือจาก Gemini โดยเฉพาะฟีเจอร์ Help Me Write
ที่จะให้โค้ดเริ่มต้นสำหรับการทดสอบแก่เรา เพื่อให้เรานำไปใช้ในการทดสอบและสร้างฟีเจอร์เพิ่มเติมได้ มาเริ่มกันเลย
6. การเขียนการตรวจสอบสังเคราะห์สำหรับกรอบการทดสอบ 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
ดังที่แสดงด้านล่าง โค้ดที่สร้างให้คุณอาจแตกต่างจากโค้ดที่คุณเห็นด้านล่าง ดูโค้ดและไฟล์ทรัพยากร Dependency ในไฟล์ package.json
คลิกแทรกฟังก์ชันระบบคลาวด์ การดำเนินการนี้จะเปิดแบบฟอร์มการสร้าง Cloud Function พร้อมค่าที่จำเป็นซึ่งป้อนข้อมูลให้คุณแล้ว
คลิกใช้ฟังก์ชัน แล้วคลิกปุ่มสร้าง เราไม่ได้เลือกการกำหนดค่าช่องทางการแจ้งเตือนใดๆ ในตัวอย่างนี้ แต่คุณสามารถเลือกได้
การดำเนินการนี้จะเริ่มต้นกระบวนการสร้าง Google Cloud Function ในเบื้องหลัง การดำเนินการนี้อาจใช้เวลาสักครู่ โปรดอดใจรอ
เมื่อทำให้ Cloud Function ใช้งานได้เรียบร้อยแล้ว Cloud Monitoring จะเริ่มงานเรียกใช้การตรวจสอบสังเคราะห์ให้คุณ
ในช่วงต้น คุณจะเห็นว่าไม่มีการเรียกใช้ ตามที่แสดงด้านล่าง
เมื่อมีการเรียกใช้ที่เฉพาะเจาะจง คุณจะเห็นการดำเนินการต่างๆ หน้าจอด้านล่างแสดงให้เห็นว่ากำลังผ่านการทดสอบ
หากคุณคลิกที่ชื่อการตรวจสอบสังเคราะห์ (เช่น s1) การดำเนินการต่างๆ จะแสดงดังต่อไปนี้
7. ยินดีด้วย
ยินดีด้วย คุณได้ทำให้ API ตัวอย่างใช้งานได้กับ Google Cloud Run และเขียนการทดสอบ Synthetic Monitoring เสร็จสมบูรณ์แล้วเพื่อตรวจสอบฟังก์ชันการทำงานของบริการ ระหว่างดำเนินการ คุณได้ใช้ Gemini เพื่อช่วยสร้างโค้ดสำหรับชุดทดสอบ