DEV Community

Cover image for วิธีใช้ Apidog CLI ใน GitHub Copilot
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

วิธีใช้ Apidog CLI ใน GitHub Copilot

โหมด Agent ของ GitHub Copilot สามารถแก้ไขไฟล์ รันคำสั่งเทอร์มินัล อ่านเอาต์พุต และวนซ้ำแก้ปัญหาได้ แต่การทดสอบ API ที่อยู่หลัง GUI จะไม่ถูกเรียกใช้จนกว่าจะมีคนคลิกเอง บทความนี้จะแสดงวิธีนำ Apidog CLI เข้าไปอยู่ในวงจรแก้ไข-ทดสอบ-แก้ไขของ Copilot ด้วยไฟล์คอนฟิกเพียงไฟล์เดียว

ลองใช้ Apidog วันนี้

Apidog CLI คือแพ็กเกจ npm ชื่อ apidog-cli สำหรับรัน Scenario การทดสอบที่สร้างไว้ใน Apidog จากเทอร์มินัลโดยตรง เมื่อ Copilot รู้คำสั่ง apidog run แล้ว มันจะรัน API test เหมือนกับ unit test: รันคำสั่ง ตรวจสอบ exit code และแก้โค้ดต่อเมื่อผลทดสอบล้มเหลว

ก่อนเริ่ม ให้ติดตั้งและยืนยันสิทธิ์ CLI ให้เรียบร้อยก่อน โดยทำตาม วิธีติดตั้ง Apidog CLI ด้วย AI coding agent บทความนี้สมมติว่าคำสั่งต่อไปนี้ทำงานได้แล้ว:

apidog --version
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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 รองรับ
Enter fullscreen mode Exit fullscreen mode

แทนที่ค่า -t และ -e ด้วย Scenario ID และ Environment ID ของคุณ

การบันทึกคำสั่งไว้ในไฟล์นี้สำคัญกว่าการพิมพ์ในแชต เพราะไฟล์จะถูกใช้งานซ้ำโดย:

  • นักพัฒนาทุกคนในรีโพ
  • ทุก Copilot Agent session
  • pull request ที่สร้างโดย Copilot coding agent

หากต้องการใช้กฎเฉพาะบางพาธ GitHub รองรับไฟล์ในรูปแบบ:

.github/instructions/NAME.instructions.md
Enter fullscreen mode Exit fullscreen mode

แต่สำหรับกรณีทั่วไป copilot-instructions.md ไฟล์เดียวก็เพียงพอ

ขั้นตอนที่ 2: คัดลอกคำสั่งจาก Apidog

ไม่ต้องประกอบคำสั่ง apidog run เอง ให้ใช้คำสั่งที่ Apidog สร้างให้

  1. เปิด Scenario การทดสอบใน Apidog
  2. ไปที่แท็บ CI/CD
  3. คัดลอกคำสั่งที่แสดง

ตัวอย่าง:

apidog run -t 812345 -e 671234 -r cli
Enter fullscreen mode Exit fullscreen mode

คำสั่งนี้มีข้อมูลสำคัญครบแล้ว:

  • -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:

  1. เปิด Copilot Chat
  2. เปลี่ยนโหมดเป็น Agent
  3. แก้ไข API หรือส่งคำสั่งตรงไปยัง Copilot

ตัวอย่าง prompt:

รันสถานการณ์การทดสอบ Apidog API และบอกผลลัพธ์ให้ฉันทราบ
Enter fullscreen mode Exit fullscreen mode

Copilot จะอ่านคำสั่งจาก .github/copilot-instructions.md แล้วเสนอให้รัน:

apidog run -t 812345 -e 671234 -r cli
Enter fullscreen mode Exit fullscreen mode

ตรวจสอบคำสั่งก่อนอนุมัติทุกครั้ง จากนั้น 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 รันการทดสอบซ้ำ
Enter fullscreen mode Exit fullscreen mode

หากต้องการรายงาน HTML สำหรับเปิดในเบราว์เซอร์หรือแชร์กับทีม ให้เพิ่ม reporter html:

apidog run -t 812345 -e 671234 -r cli,html
Enter fullscreen mode Exit fullscreen mode

Apidog จะเขียนรายงาน HTML ไปยัง:

./apidog-reports
Enter fullscreen mode Exit fullscreen mode

ควรเก็บ 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 ที่ล้มเหลว
→ แก้ไขโค้ด
→ รันซ้ำ
Enter fullscreen mode Exit fullscreen mode

ด้วยวิธีนี้ API test จะทำหน้าที่เหมือน quality gate ในวงจรเดียวกับ unit test

คุณยังคงออกแบบ Scenario แบบ visual ใน Apidog ขณะที่ Copilot มีหน้าที่รันคำสั่งและตีความผลลัพธ์

อ่านแนวทางเพิ่มเติมได้ที่:

ตรวจสอบว่า Copilot รัน CLI จริง

อย่าเชื่อเฉพาะข้อความสรุปของ Agent ให้ตรวจสอบ 3 จุดนี้

1. ดูว่าคำสั่งถูกเรียกใช้จริง

ในเทอร์มินัล ต้องเห็นบรรทัดลักษณะนี้:

apidog run -t 812345 -e 671234 -r cli
Enter fullscreen mode Exit fullscreen mode

และต้องมีผลลัพธ์ตามมาด้วย

หาก Copilot บอกว่ารันทดสอบแล้ว แต่ไม่มีคำสั่งหรือ raw output แสดงอยู่ ให้สั่งมันใหม่:

รัน Apidog Scenario อีกครั้ง และแสดง raw terminal output ทั้งหมด
Enter fullscreen mode Exit fullscreen mode

2. ตรวจสอบ exit code

ถาม Copilot โดยตรงได้:

รหัสออกของคำสั่ง apidog run นั้นคืออะไร?
Enter fullscreen mode Exit fullscreen mode

กฎสำคัญคือ:

exit code 0      = ทุก assertion ผ่าน
exit code ไม่ใช่ 0 = มีการทดสอบล้มเหลว
Enter fullscreen mode Exit fullscreen mode

หาก Copilot รายงานว่า “ผ่าน” แต่ exit code ไม่ใช่ 0 ให้เชื่อ exit code

3. ตรวจสอบ Scenario และ Environment ID

หากพบข้อผิดพลาดคล้ายนี้:

scenario not found
Enter fullscreen mode Exit fullscreen mode

ให้ตรวจสอบค่าเหล่านี้:

-t <scenario-id>
-e <environment-id>
Enter fullscreen mode Exit fullscreen mode

เทียบกับคำสั่งที่ 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
Enter fullscreen mode Exit fullscreen mode

อ้างอิง เอกสาร GitHub เรื่องการขยาย Copilot Chat ด้วย MCP

Apidog MCP server ทำให้ Copilot เข้าถึงสเปกและ schema ของ API ได้ ขณะที่ CLI ทำหน้าที่รัน test

สรุปการแบ่งความรับผิดชอบ:

Apidog MCP Server → ให้ context จาก API specification
Apidog CLI        → รัน Scenario และคืนผลการทดสอบ
Copilot Agent     → แก้โค้ด อ่านผล และวนซ้ำ
Enter fullscreen mode Exit fullscreen mode

หากใช้ Copilot coding agent บน GitHub Actions การกำหนดค่า MCP จะอยู่ใน repository settings ภายใต้ Copilot และ secret ควรเก็บเป็น Actions secrets ที่มี prefix:

COPILOT_MCP_
Enter fullscreen mode Exit fullscreen mode

ปัญหาที่พบบ่อย

Copilot ไม่อ่านไฟล์คำสั่ง

ตรวจสอบว่าไฟล์อยู่ตำแหน่งและชื่อถูกต้อง:

.github/copilot-instructions.md
Enter fullscreen mode Exit fullscreen mode

ตรวจสอบเพิ่มเติม:

  • โฟลเดอร์ .github อยู่ที่ root ของรีโพ
  • ชื่อไฟล์ตรงตัวพิมพ์
  • เปิดใช้งาน custom instructions ใน VS Code แล้ว

Copilot เพิ่ม --access-token

หากเครื่องยืนยันสิทธิ์ด้วย apidog login แล้ว ไม่ควรใส่ token ในคำสั่งหรือ commit ลงในรีโพ

กำชับในไฟล์คำสั่งให้ชัดเจน:

ห้ามใช้ `--access-token` และห้ามใส่ token ในไฟล์คำสั่ง
Enter fullscreen mode Exit fullscreen mode

อ่านรายละเอียดเพิ่มเติมได้ที่ การยืนยันสิทธิ์ Apidog CLI

Copilot สร้าง flag ที่ไม่มีจริง

หากพบ:

unknown option
Enter fullscreen mode Exit fullscreen mode

ให้สั่ง Copilot รัน:

apidog run --help
Enter fullscreen mode Exit fullscreen mode

แล้วใช้ flag ที่ CLI เวอร์ชันที่ติดตั้งรองรับเท่านั้น

Copilot รายงานผ่าน แต่การรันล้มเหลว

ให้ยึด exit code เป็นเกณฑ์เสมอ:

0       = ผ่าน
ไม่ใช่ 0 = ล้มเหลว
Enter fullscreen mode Exit fullscreen mode

อย่าใช้ข้อความสรุปของ Agent แทนผลลัพธ์จริงจาก CLI

สรุป

ตั้งค่าเพียงครั้งเดียว:

  1. ติดตั้ง apidog-cli
  2. ยืนยันสิทธิ์ด้วย apidog login
  3. คัดลอกคำสั่งจากแท็บ CI/CD ของ Apidog
  4. เพิ่มคำสั่งลงใน .github/copilot-instructions.md
  5. ให้ 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)