วิธีตั้งค่าและใช้งาน WireMock บน Docker สร้าง Mock API เพื่อการทดสอบอัตโนมัติ

ที่มาภาพ: Unknown Source

วิธีตั้งค่าและใช้งาน WireMock บน Docker สร้าง Mock API เพื่อการทดสอบอัตโนมัติ

⚡ สรุป 30 วิ

WireMock เป็นเครื่องมือที่ช่วยสร้าง *Mock API* เพื่อจำลองพฤติกรรมของบริการจริงในขั้นตอนทดสอบอัตโนมัติ การใช้งานบน Docker ทำให้การตั้งค่าเป็นแบบ *portable* และสามารถทำงานร่วมกับ CI/CD pipeline ได้อย่าง…

Overview — Overview

WireMock เป็นเครื่องมือที่ช่วยสร้าง *Mock API* เพื่อจำลองพฤติกรรมของบริการจริงในขั้นตอนทดสอบอัตโนมัติ การใช้งานบน Docker ทำให้การตั้งค่าเป็นแบบ *portable* และสามารถทำงานร่วมกับ CI/CD pipeline ได้อย่างราบรื่น

  • ลดความซับซ้อน ของสภาพแวดล้อมทดสอบ
  • เร่งเวลา ในการสร้างและปรับเปลี่ยน stub ต่าง ๆ
  • สามารถจำลองสถานการณ์ *edge case* ได้โดยไม่ต้องพึ่งบริการจริง

Prerequisites — Prerequisites

ก่อนเริ่มใช้งาน WireMock บน Docker จำเป็นต้องมีเครื่องมือพื้นฐานต่อไปนี้

  • Docker Engine เวอร์ชัน 20 ขึ้นไป
  • Docker Compose (ถ้าต้องการจัดการหลายคอนเทนเนอร์)
  • ความเข้าใจเบื้องต้นเกี่ยวกับ *REST API* และ HTTP status code
  • แก้ไขไฟล์ JSON/YAML สำหรับกำหนด stub

How It Works — How It Works

WireMock ทำงานเป็น *HTTP server* ที่รับคำขอแล้วตอบกลับตาม *stub mapping* ที่เรากำหนดไว้ การทำงานบน Docker เพียงดึงภาพ (image) ที่เตรียมไว้จาก Docker Hub แล้วรันคอนเทนเนอร์ จะได้เซิร์ฟเวอร์พร้อมใช้งานทันที

คุณลักษณะStandalone JarDocker Image
การติดตั้งดาวน์โหลดไฟล์ JAR + Java Runtime`docker pull wiremock/wiremock`
ความยืดหยุ่นของสภาพแวดล้อมต้องจัดการ Java และพอร์ตเองแยกจากระบบโฮสต์, กำหนดพอร์ตได้ง่าย
การรวมใน CI/CDต้องเขียนสคริปต์เพิ่มใช้ `docker-compose` หรือคำสั่ง `docker run` เพียงบรรทัดเดียว

Step-by-Step Setup — Step‑By‑Step

  • **ขั้นตอนที่ 1: ดึงภาพ WireMock อย่างเป็นทางการ

```bash docker pull wiremock/wiremock:latest ```

  • **ขั้นตอนที่ 2: สร้างโฟลเดอร์สำหรับเก็บ stub และไฟล์คอนฟิก
  • `mocks/mappings/` เก็บไฟล์ JSON ที่กำหนด request‑response mapping
  • `mocks/__files/` เก็บ payload หรือไฟล์ static อื่น ๆ
  • **ขั้นตอนที่ 3: เขียน stub ตัวอย่าง (ไฟล์ `mocks/mappings/user-get.json`)

```json { "request": { "methodGET", "urlPathPattern/api/users/([0-9]+)" }, "response": { "status": 200, "bodyFileNameuser-${1}.json", "headers": { "Content-Typeapplication/json" } } } ```

  • **ขั้นตอนที่ 4: สร้างไฟล์ response ตัวอย่างใน `mocks/__files/user-123.json`

```json { "id": 123, "nameสมชาย ใจดี", "[email protected]" } ```

  • **ขั้นตอนที่ 5: รันคอนเทนเนอร์พร้อม mount โฟลเดอร์ stub

```bash docker run -d --name wiremock \ -p 8080:8080 \ -v $(pwd)/mocks:/home/wiremock \ wiremock/wiremock:latest \ --verbose ```

  • **ขั้นตอนที่ 6: ตรวจสอบว่า Mock API ทำงานแล้วโดยเปิด `http://localhost:8080/__admin/mappings` ในเบราว์เซอร์

Using Mock API in Tests — Using In Tests

เมื่อติดตั้ง WireMock แล้ว สามารถเรียกใช้ endpoint เหล่านั้นจากชุดทดสอบอัตโนมัติได้ทันที เช่น ใช้ JUnit หรือ TestNG ร่วมกับ HTTP client library

  • กำหนด Base URL ของ test เป็น `http://localhost:8080`
  • ทำการ POST หรือ GET ไปยัง endpoint ที่กำหนดใน stub
  • ตรวจสอบ response body, status code และ header ตามที่คาดหวัง
  • หากต้องการจำลองสถานการณ์ error ให้เพิ่ม stub ที่ตอบกลับด้วย 4xx/5xx

Tips & Common Pitfalls — Tips

**Tip: ใช้ `--record-mappings` พร้อมกับ `--proxy-all` เพื่อตรวจจับและบันทึก request‑response จากบริการจริงเป็นฐานข้อมูล stub เริ่มต้น

>

**Warning: อย่าลืมเปิดพอร์ตที่คอนเทนเนอร์ใช้ (`-p 8080:8080`) หากพอร์ตชนกับแอปอื่นในเครื่อง จะทำให้ WireMock ไม่สามารถรับคำขอได้
  • เก็บไฟล์ stub ในระบบ version control เพื่อให้ทีมงานทุกคนเข้าถึงเวอร์ชันเดียวกัน
  • ปิดการบันทึก verbose (`--verbose`) ใน production‑like CI/CD pipeline เพื่อลด noise ใน log

Summary — Summary

  • ดึงภาพ WireMock จาก Docker Hub แล้ว mount โฟลเดอร์ stub เพื่อให้คอนเทนเนอร์อ่านไฟล์ได้ทันที
  • สร้าง *request mapping* และ *response payload* ในรูป JSON ภายใต้ `mappings` และ `__files` ตามโครงสร้างที่ WireMock กำหนด
  • รันคอนเทนเนอร์ด้วยพอร์ตที่เปิดเผย (`-p 8080:8080`) แล้วใช้ endpoint เหล่านั้นในชุดทดสอบอัตโนมัติได้เลย
  • ใช้ tip การบันทึก mapping จาก proxy เพื่อเร่งการสร้าง stub ใหม่ และตรวจสอบให้แน่ใจว่าไม่มีพอร์ตชนกันหรือ log มากเกินไป

ด้วยขั้นตอนสั้น ๆ นี้ คุณก็พร้อมใช้ WireMock บน Docker เป็น *mock server* ที่เสถียรสำหรับทุกกรณีทดสอบอัตโนมัติของโครงการคุณแล้ว.

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
วิธีตั้งค่าและใช้งาน WireMock บน Docker สร้าง Mock API เพื่อการทดสอบอัตโนมัติ
ผู้เขียน
กองบรรณาธิการ Thai Tech News
แหล่ง
บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
วันที่เผยแพร่
10 สิงหาคม 2569 เวลา 10:50

Related

บทความที่เกี่ยวข้อง

วิธีใช้ Cloudflare R2 ร่วมกับ Supabase Edge Functions เพื่อจัดเก็บไฟล์แบบปลอดภัยบน EdgeGrowth
10 สิงหาคม 2569 เวลา 11:30

วิธีใช้ Cloudflare R2 ร่วมกับ Supabase Edge Functions เพื่อจัดเก็บไฟล์แบบปลอดภัยบน Edge

การจัดเก็บไฟล์บน Edge ช่วยลด latency และเพิ่มความปลอดภัยให้กับแอปพลิเคชันของคุณ Supabase Edge Functions เป็นจุดเชื่อมต่อระหว่างฟรอนท์เอนด์และบริการคลาวด์ Cloudflare R2 ให้พื้นที่จัดเก็บแบบไม่มีค่า egr…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ10 นาที
วิธีตั้งค่า Cloudflare Workers‑KV เพื่อจัดเก็บข้อมูลแบบ Edge อย่างปลอดภัยGrowth
9 สิงหาคม 2569 เวลา 20:30

วิธีตั้งค่า Cloudflare Workers‑KV เพื่อจัดเก็บข้อมูลแบบ Edge อย่างปลอดภัย

Cloudflare Workers‑KV เป็นฐานข้อมูลแบบ key‑value ที่ทำงานบนเครือข่าย Edge ของ Cloudflare ทำให้ข้อมูลสามารถเข้าถึงได้จากจุดใกล้ผู้ใช้ที่สุด ลด latency อย่างมีประสิทธิภาพ การตั้งค่า KV ให้ปลอดภัยเป็นขั้…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
วิธีตั้งค่าและใช้งาน Elastic SIEM ร่วมกับ Machine Learning เพื่อตรวจจับภัยคุกคามแบบเรียลไทม์บน LinuxGrowth
9 สิงหาคม 2569 เวลา 19:00

วิธีตั้งค่าและใช้งาน Elastic SIEM ร่วมกับ Machine Learning เพื่อตรวจจับภัยคุกคามแบบเรียลไทม์บน Linux

Elastic SIEM เป็นส่วนหนึ่งของ Elastic Stack ที่ช่วยรวบรวม วิเคราะห์ และแสดงผลข้อมูลล็อกจากหลายแหล่งบน Linux พร้อมความสามารถ Machine Learning (ML) ในการตรวจจับพฤติกรรมที่ผิดปกติแบบเรียลไทม์ บทความนี้จะ…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
วิธีติดตั้งและกำหนดค่า Trivy สแกนคอนเทนเนอร์อิมเมจใน GitHub Actions อย่างปลอดภัยGrowth
9 สิงหาคม 2569 เวลา 11:30

วิธีติดตั้งและกำหนดค่า Trivy สแกนคอนเทนเนอร์อิมเมจใน GitHub Actions อย่างปลอดภัย

การสแกนคอนเทนเนอร์อิมเมจในขั้นตอน CI/CD ช่วยให้เจอช่องโหว่ก่อนที่ซอฟต์แวร์จะไหลเข้าสู่ production Trivy เป็นเครื่องมือสแกนแบบโอเพ่นซอร์สที่ทำงานเร็วและรองรับหลายรูปแบบของ image registry. ในบทความนี้เร…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ6 นาที
คัดลอกลิงก์แล้ว!