โหมด Agent ของ GitHub Copilot สามารถแก้ไขไฟล์ รันคำสั่งเทอร์มินัล อ่านเอาต์พุต และวนซ้ำแก้ปัญหาได้ แต่การทดสอบ API ที่อยู่หลัง GUI จะไม่ถูกเรียกใช้จนกว่าจะมีคนคลิกเอง บทความนี้จะแสดงวิธีนำ Apidog CLI เข้าไปอยู่ในวงจรแก้ไข-ทดสอบ-แก้ไขของ Copilot ด้วยไฟล์คอนฟิกเพียงไฟล์เดียว
Apidog CLI คือแพ็กเกจ npm ชื่อ apidog-cli สำหรับรัน Scenario การทดสอบที่สร้างไว้ใน Apidog จากเทอร์มินัลโดยตรง เมื่อ Copilot รู้คำสั่ง apidog run แล้ว มันจะรัน API test เหมือนกับ unit test: รันคำสั่ง ตรวจสอบ exit code และแก้โค้ดต่อเมื่อผลทดสอบล้มเหลว
ก่อนเริ่ม ให้ติดตั้งและยืนยันสิทธิ์ CLI ให้เรียบร้อยก่อน โดยทำตาม วิธีติดตั้ง Apidog CLI ด้วย AI coding agent บทความนี้สมมติว่าคำสั่งต่อไปนี้ทำงานได้แล้ว:
apidog --version
Copilot ตัวไหนที่ใช้ในบทความนี้
บทความนี้เน้น Agent mode ใน VS Code ซึ่งสามารถ:
- แก้ไขหลายไฟล์
- รันคำสั่งในเทอร์มินัล
- อ่านผลลัพธ์
- วนซ้ำแก้ไขจนงานเสร็จ
เปิด Copilot Chat ใน VS Code แล้วเลือกโหมด Agent ก่อนเริ่มทำงาน
แนวคิดเดียวกันยังใช้ได้กับ Copilot coding agent ที่ทำงานผ่าน GitHub Actions เพราะทั้งสองแบบอ่านไฟล์คำสั่งของรีโพเดียวกัน สำหรับภาพรวมเพิ่มเติม ดู GitHub Copilot’s new coding agent
ขั้นตอนที่ 1: เพิ่มกฎ Apidog ในไฟล์คำสั่งของ Copilot
สร้างไฟล์นี้ที่ root ของรีโพ:
.github/copilot-instructions.md
Copilot จะโหลดไฟล์นี้อัตโนมัติสำหรับ Agent mode, Copilot Chat, code review และ coding agent ตาม เอกสาร GitHub เรื่อง repository custom instructions
เพิ่มคำสั่งสำหรับการทดสอบ API ดังนี้:
## การทดสอบ API ด้วย Apidog CLI
เมื่อมีการเปลี่ยนแปลงปลายทาง API ให้รัน Apidog CLI
ก่อนสรุปว่างานเสร็จสมบูรณ์:
apidog run -t 812345 -e 671234 -r cli
- `apidog run` จะคืน exit code `0` เมื่อทุก assertion ผ่าน
และคืนค่าอื่นเมื่อมีการทดสอบล้มเหลว
- หาก exit code ไม่ใช่ `0` ให้ถือว่าการทดสอบล้มเหลว
แม้ว่าข้อความสรุปจะดูเหมือนสำเร็จก็ตาม
- เครื่องนี้ยืนยันสิทธิ์ผ่าน `apidog login` แล้ว
ห้ามเพิ่ม `--access-token` และห้ามใส่ token ลงในไฟล์นี้
- หากพบข้อผิดพลาด `unknown option` ให้รัน `apidog run --help`
และใช้เฉพาะ flag ที่ CLI รองรับ
แทนที่ค่า -t และ -e ด้วย Scenario ID และ Environment ID ของคุณ
การบันทึกคำสั่งไว้ในไฟล์นี้สำคัญกว่าการพิมพ์ในแชต เพราะไฟล์จะถูกใช้งานซ้ำโดย:
- นักพัฒนาทุกคนในรีโพ
- ทุก Copilot Agent session
- pull request ที่สร้างโดย Copilot coding agent
หากต้องการใช้กฎเฉพาะบางพาธ GitHub รองรับไฟล์ในรูปแบบ:
.github/instructions/NAME.instructions.md
แต่สำหรับกรณีทั่วไป copilot-instructions.md ไฟล์เดียวก็เพียงพอ
ขั้นตอนที่ 2: คัดลอกคำสั่งจาก Apidog
ไม่ต้องประกอบคำสั่ง apidog run เอง ให้ใช้คำสั่งที่ Apidog สร้างให้
- เปิด Scenario การทดสอบใน Apidog
- ไปที่แท็บ CI/CD
- คัดลอกคำสั่งที่แสดง
ตัวอย่าง:
apidog run -t 812345 -e 671234 -r cli
คำสั่งนี้มีข้อมูลสำคัญครบแล้ว:
-
-tคือ Scenario ID -
-eคือ Environment ID -
-r cliคือ reporter สำหรับพิมพ์ผลลัพธ์ในเทอร์มินัล
นำคำสั่งนี้ไปวางใน .github/copilot-instructions.md โดยใช้ค่า ID จากแท็บ CI/CD เป็นแหล่งข้อมูลที่ถูกต้องเสมอ
ดู flag และ reporter เพิ่มเติมได้ที่ เอกสารอ้างอิงคำสั่ง apidog run
ขั้นตอนที่ 3: ให้ Copilot Agent รันการทดสอบ
ใน VS Code:
- เปิด Copilot Chat
- เปลี่ยนโหมดเป็น Agent
- แก้ไข API หรือส่งคำสั่งตรงไปยัง Copilot
ตัวอย่าง prompt:
รันสถานการณ์การทดสอบ Apidog API และบอกผลลัพธ์ให้ฉันทราบ
Copilot จะอ่านคำสั่งจาก .github/copilot-instructions.md แล้วเสนอให้รัน:
apidog run -t 812345 -e 671234 -r cli
ตรวจสอบคำสั่งก่อนอนุมัติทุกครั้ง จากนั้น Copilot จะอ่านผลที่ reporter แสดงในเทอร์มินัล เช่น:
- request ที่ถูกส่ง
- assertion ที่ตรวจสอบ
- status code ที่ได้รับ
- assertion ที่ล้มเหลว
- exit code ของคำสั่ง
สำหรับ Scenario แบบ read-only ที่รันกับ staging คุณสามารถอนุญาตคำสั่งใน workspace ได้ เพื่อไม่ต้องยืนยันซ้ำทุกครั้ง
ขั้นตอนที่ 4: ให้ Copilot อ่านรายงานและแก้ไขจากผลทดสอบ
เมื่อการทดสอบล้มเหลว -r cli จะให้ข้อมูลที่ Copilot อ่านได้ทันทีในเทอร์มินัล เช่น:
- status code ไม่ตรงตามที่คาด
- ฟิลด์ใน response หายไป
- ค่า response ไม่ตรง assertion
- schema ไม่ตรงกับสเปก
ตัวอย่าง workflow:
1. Copilot แก้ไข API handler
2. Copilot รัน apidog run
3. CLI คืน exit code ที่ไม่ใช่ 0
4. Copilot อ่าน assertion ที่ล้มเหลว
5. Copilot แก้โค้ด
6. Copilot รันการทดสอบซ้ำ
หากต้องการรายงาน HTML สำหรับเปิดในเบราว์เซอร์หรือแชร์กับทีม ให้เพิ่ม reporter html:
apidog run -t 812345 -e 671234 -r cli,html
Apidog จะเขียนรายงาน HTML ไปยัง:
./apidog-reports
ควรเก็บ cli ไว้เสมอ เพื่อให้ Copilot ยังอ่านผลลัพธ์แบบ inline และตัดสินใจขั้นตอนถัดไปได้
สำหรับ reporter อื่น ๆ เช่น JUnit ดูได้จาก:
ทำให้ API test เป็นส่วนหนึ่งของวงจร Agent
เป้าหมายไม่ใช่แค่สั่ง Copilot ให้รัน test เป็นครั้งคราว แต่คือการกำหนดให้มันรัน test เองเมื่อมีการเปลี่ยนแปลง API
ตัวอย่าง: Copilot กำลังแก้ไข handler สำหรับสร้าง payment response
เมื่อมีคำสั่งอยู่ใน .github/copilot-instructions.md วงจรจะเป็นดังนี้:
แก้ไข payment handler
→ รัน Apidog Scenario กับ staging
→ ตรวจสอบ exit code
→ ถ้า exit code = 0 ให้ทำงานต่อ
→ ถ้า exit code != 0 ให้อ่าน assertion ที่ล้มเหลว
→ แก้ไขโค้ด
→ รันซ้ำ
ด้วยวิธีนี้ API test จะทำหน้าที่เหมือน quality gate ในวงจรเดียวกับ unit test
คุณยังคงออกแบบ Scenario แบบ visual ใน Apidog ขณะที่ Copilot มีหน้าที่รันคำสั่งและตีความผลลัพธ์
อ่านแนวทางเพิ่มเติมได้ที่:
ตรวจสอบว่า Copilot รัน CLI จริง
อย่าเชื่อเฉพาะข้อความสรุปของ Agent ให้ตรวจสอบ 3 จุดนี้
1. ดูว่าคำสั่งถูกเรียกใช้จริง
ในเทอร์มินัล ต้องเห็นบรรทัดลักษณะนี้:
apidog run -t 812345 -e 671234 -r cli
และต้องมีผลลัพธ์ตามมาด้วย
หาก Copilot บอกว่ารันทดสอบแล้ว แต่ไม่มีคำสั่งหรือ raw output แสดงอยู่ ให้สั่งมันใหม่:
รัน Apidog Scenario อีกครั้ง และแสดง raw terminal output ทั้งหมด
2. ตรวจสอบ exit code
ถาม Copilot โดยตรงได้:
รหัสออกของคำสั่ง apidog run นั้นคืออะไร?
กฎสำคัญคือ:
exit code 0 = ทุก assertion ผ่าน
exit code ไม่ใช่ 0 = มีการทดสอบล้มเหลว
หาก Copilot รายงานว่า “ผ่าน” แต่ exit code ไม่ใช่ 0 ให้เชื่อ exit code
3. ตรวจสอบ Scenario และ Environment ID
หากพบข้อผิดพลาดคล้ายนี้:
scenario not found
ให้ตรวจสอบค่าเหล่านี้:
-t <scenario-id>
-e <environment-id>
เทียบกับคำสั่งที่ Apidog สร้างไว้ในแท็บ CI/CD และอัปเดต .github/copilot-instructions.md ให้ตรงกัน
ทางเลือก: เชื่อมต่อ Apidog MCP Server
Apidog CLI เหมาะสำหรับการ รันการทดสอบ ส่วน Apidog MCP Server ช่วยให้ Copilot อ่าน API specification ได้ระหว่างเขียนโค้ด
สำหรับ VS Code Agent mode ให้กำหนด MCP server ในไฟล์:
.vscode/mcp.json
อ้างอิง เอกสาร GitHub เรื่องการขยาย Copilot Chat ด้วย MCP
Apidog MCP server ทำให้ Copilot เข้าถึงสเปกและ schema ของ API ได้ ขณะที่ CLI ทำหน้าที่รัน test
สรุปการแบ่งความรับผิดชอบ:
Apidog MCP Server → ให้ context จาก API specification
Apidog CLI → รัน Scenario และคืนผลการทดสอบ
Copilot Agent → แก้โค้ด อ่านผล และวนซ้ำ
หากใช้ Copilot coding agent บน GitHub Actions การกำหนดค่า MCP จะอยู่ใน repository settings ภายใต้ Copilot และ secret ควรเก็บเป็น Actions secrets ที่มี prefix:
COPILOT_MCP_
ปัญหาที่พบบ่อย
Copilot ไม่อ่านไฟล์คำสั่ง
ตรวจสอบว่าไฟล์อยู่ตำแหน่งและชื่อถูกต้อง:
.github/copilot-instructions.md
ตรวจสอบเพิ่มเติม:
- โฟลเดอร์
.githubอยู่ที่ root ของรีโพ - ชื่อไฟล์ตรงตัวพิมพ์
- เปิดใช้งาน custom instructions ใน VS Code แล้ว
Copilot เพิ่ม --access-token
หากเครื่องยืนยันสิทธิ์ด้วย apidog login แล้ว ไม่ควรใส่ token ในคำสั่งหรือ commit ลงในรีโพ
กำชับในไฟล์คำสั่งให้ชัดเจน:
ห้ามใช้ `--access-token` และห้ามใส่ token ในไฟล์คำสั่ง
อ่านรายละเอียดเพิ่มเติมได้ที่ การยืนยันสิทธิ์ Apidog CLI
Copilot สร้าง flag ที่ไม่มีจริง
หากพบ:
unknown option
ให้สั่ง Copilot รัน:
apidog run --help
แล้วใช้ flag ที่ CLI เวอร์ชันที่ติดตั้งรองรับเท่านั้น
Copilot รายงานผ่าน แต่การรันล้มเหลว
ให้ยึด exit code เป็นเกณฑ์เสมอ:
0 = ผ่าน
ไม่ใช่ 0 = ล้มเหลว
อย่าใช้ข้อความสรุปของ Agent แทนผลลัพธ์จริงจาก CLI
สรุป
ตั้งค่าเพียงครั้งเดียว:
- ติดตั้ง
apidog-cli - ยืนยันสิทธิ์ด้วย
apidog login - คัดลอกคำสั่งจากแท็บ CI/CD ของ Apidog
- เพิ่มคำสั่งลงใน
.github/copilot-instructions.md - ให้ Copilot Agent รันและอ่านผลการทดสอบทุกครั้งที่แก้ API
เมื่อ API test อยู่ในคำสั่งของรีโพ Copilot จะสามารถใช้ Scenario เดียวกันในวงจรแก้ไข-ทดสอบ-แก้ไขได้อย่างต่อเนื่อง ปัญหาที่ endpoint จะถูกตรวจพบระหว่างที่ Agent กำลังทำงาน ไม่ใช่หลังจากส่งงานแล้ว
เริ่มต้นได้จาก คู่มือการติดตั้ง Apidog CLI จากนั้นสร้าง Scenario หนึ่งรายการ คัดลอก apidog run ไปไว้ใน .github/copilot-instructions.md และให้ Copilot ใช้มันกับการเปลี่ยนแปลง API ครั้งถัดไป
หากต้องการรันคำสั่งเดียวกันใน CI/CD โดยไม่ต้องใช้ Copilot ดู Apidog CLI ใน GitHub Actions
Top comments (0)