สร้างสคริปต์ทดสอบ API อัตโนมัติจาก Swagger

Ashley Goolam

Ashley Goolam

10 September 2025

สร้างสคริปต์ทดสอบ API อัตโนมัติจาก Swagger

หากคุณเคยพบว่าตัวเองกำลังจ้องมองไฟล์ Swagger ขนาดใหญ่ และสงสัยว่าจะเขียนสคริปต์ทดสอบด้วยตนเองสำหรับทุกๆ API endpoint ได้อย่างไร คุณไม่ได้อยู่คนเดียว ในโลกของการพัฒนา API, Swagger (ปัจจุบันเป็นที่รู้จักกันทั่วไปในชื่อ OpenAPI) ได้กลายเป็นมาตรฐานทองคำสำหรับการจัดทำเอกสารและออกแบบ API แต่ความมหัศจรรย์ที่แท้จริงจะเกิดขึ้นเมื่อคุณทำให้การสร้างสคริปต์ทดสอบจากเอกสารเหล่านั้นเป็นไปโดยอัตโนมัติ วันนี้ เราจะเจาะลึกถึงวิธีการสร้างสคริปต์ทดสอบ API โดยอัตโนมัติจากเอกสาร Swagger ผมจะพาคุณไปดูเหตุผล วิธีการ และเครื่องมือที่ดีที่สุดที่จะช่วยให้ชีวิตของคุณง่ายขึ้น เมื่อจบบทความนี้ คุณจะมีความพร้อมในการปรับปรุงเวิร์กโฟลว์การทดสอบ API ของคุณให้คล่องตัวขึ้น และมั่นใจได้ว่าข้อมูลจำเพาะ OpenAPI ของคุณได้รับการทดสอบอย่างสมบุกสมบัน 💡ต้องการเครื่องมือทดสอบ API ที่ยอดเยี่ยมที่สร้าง เอกสาร API ที่สวยงาม หรือไม่? ต้องการแพลตฟอร์มแบบครบวงจร All-in-One สำหรับทีมพัฒนาของคุณเพื่อให้ทำงานร่วมกันด้วย ประสิทธิภาพสูงสุด หรือไม่? Apidog ตอบสนองทุกความต้องการของคุณ และ แทนที่ Postman ได้ในราคาที่เข้าถึงได้มากกว่ามาก! ปุ่มดาวน์โหลดแอป (รูปภาพ: Apidog) มาเริ่มต้นด้วยพื้นฐานกันก่อน Swagger และ OpenAPI คืออะไรกันแน่? Swagger เป็นชื่อเดิมของสิ่งที่พัฒนามาเป็น OpenAPI Specification (หรือเรียกสั้นๆ ว่า OpenAPI) เป็นรูปแบบที่เครื่องอ่านได้—โดยปกติอยู่ในรูปแบบ JSON หรือ YAML—ที่อธิบายโครงสร้างของ API ของคุณ รวมถึง endpoint, พารามิเตอร์, request/response bodies และอื่นๆ ลองนึกภาพว่าเป็นพิมพ์เขียวสำหรับ API ของคุณ เมื่อคุณมีเอกสาร OpenAPI ที่แข็งแกร่ง มันจะกลายเป็นขุมทรัพย์สำหรับการทำงานอัตโนมัติ ทำไมต้องทำให้การสร้างสคริปต์ทดสอบเป็นไปโดยอัตโนมัติ? การทดสอบด้วยตนเองนั้นใช้เวลานาน มีข้อผิดพลาดง่าย และไม่สามารถปรับขนาดได้เมื่อ API ของคุณเติบโตขึ้น ระบบอัตโนมัติช่วยให้มั่นใจถึงความสอดคล้อง ตรวจจับข้อผิดพลาดได้ตั้งแต่เนิ่นๆ และรวมเข้ากับ CI/CD pipelines ได้อย่างราบรื่น นอกจากนี้ ด้วยการเพิ่มขึ้นของ microservices และ API ที่ซับซ้อน การทำให้การทดสอบของคุณสอดคล้องกับข้อมูลจำเพาะ Swagger/OpenAPI จึงเป็นสิ่งสำคัญสำหรับความน่าเชื่อถือ ทีนี้ ลองจินตนาการดู: คุณนำเข้าไฟล์ Swagger ของคุณ และปุ๊บ—สคริปต์ทดสอบก็โผล่ออกมา พร้อมที่จะตรวจสอบ endpoint, schema และ response ฟังดูเหมือนความฝันใช่ไหม? นั่นคือสิ่งที่เครื่องมือสำหรับการสร้างการทดสอบ API โดยอัตโนมัติจากเอกสาร Swagger ทำ ในบทความนี้ เราจะสำรวจแนวทางที่ใช้ Python โดยใช้ OpenAPI Generator และ openapi-core รวมถึงเครื่องมืออันทรงพลังอื่นๆ อีกมากมาย ผมจะแบ่งปันสคริปต์ที่พร้อมใช้งานเพื่อให้คุณเริ่มต้นได้ด้วย และไม่ต้องกังวล เราจะตัดสิ่งที่ไม่จำเป็นเกี่ยวกับเครื่องมือเก่าๆ ออกไป และมุ่งเน้นไปที่ทางเลือกใหม่ๆ เช่น Apidog ซึ่งเป็นแพลตฟอร์มแบบครบวงจรที่ยอดเยี่ยมสำหรับการออกแบบ, ทดสอบ API และอื่นๆ อีกมากมาย (รูปภาพ: วิธีการสร้างเอกสาร API โดยใช้ Apidog)

ทำไม Swagger/OpenAPI จึงสมบูรณ์แบบสำหรับการทดสอบ API แบบอัตโนมัติ

ก่อนที่เราจะลงลึกถึงเครื่องมือต่างๆ มาทำความเข้าใจกันก่อนว่าทำไม Swagger และ OpenAPI จึงเหมาะอย่างยิ่งสำหรับสิ่งนี้ ข้อมูลจำเพาะ OpenAPI ไม่ใช่แค่เอกสาร—แต่สามารถนำไปใช้งานได้ มันกำหนด schema สำหรับ request และ response, เมธอด HTTP (GET, POST, PUT, ฯลฯ), ข้อกำหนดการยืนยันตัวตน และแม้แต่รหัสข้อผิดพลาด เครื่องมือสามารถแยกวิเคราะห์ข้อมูลจำเพาะนี้เพื่อสร้างข้อมูลทดสอบที่สมจริง, mock server หรือชุดทดสอบที่สมบูรณ์แบบ ตัวอย่างเช่น คุณสามารถสร้าง assertion สำหรับรหัสสถานะ, ตรวจสอบ JSON schema หรือแม้กระทั่งจำลองการทดสอบโหลดได้โดยอัตโนมัติ จากประสบการณ์ของผม การเริ่มต้นด้วยไฟล์ OpenAPI ที่กำหนดไว้อย่างดีช่วยประหยัดเวลาได้หลายชั่วโมง หาก API ของคุณสร้างขึ้นด้วยเฟรมเวิร์กเช่น Spring Boot, Express.js หรือ Flask มักจะสร้างเอกสาร Swagger โดยอัตโนมัติ จากนั้น ระบบอัตโนมัติก็จะเริ่มทำงาน และตามแนวโน้มล่าสุด API มากกว่า 80% ใช้ OpenAPI สำหรับข้อมูลจำเพาะ ทำให้การทดสอบอัตโนมัติเป็นทักษะที่จำเป็น แต่พอแล้วสำหรับทฤษฎี—มาลงมือปฏิบัติกันดีกว่า ผมจะเริ่มต้นด้วยตัวอย่าง Python ที่ลงมือทำได้จริง จากนั้นจึงจะไปยังเครื่องมืออื่นๆ ด้วยวิธีนี้ คุณสามารถเลือกสิ่งที่เหมาะสมที่สุดกับ stack ของคุณได้

ลงมือปฏิบัติ: การสร้างสคริปต์ทดสอบ API ด้วย Python และเครื่องมือ OpenAPI

หากคุณเป็นแฟน Python (และใครจะไม่ใช่ล่ะ?) มาสร้างอะไรที่ปรับแต่งเองกันเถอะ เราจะใช้ไลบรารีอย่าง openapi-core สำหรับการตรวจสอบ และ pytest สำหรับการรันการทดสอบ ความสวยงามคือคุณสามารถสร้างฟังก์ชันทดสอบแบบไดนามิกตามข้อมูลจำเพาะ Swagger/OpenAPI ของคุณได้ ไม่ต้องเขียน boilerplate อีกต่อไป! ก่อนอื่น ติดตั้ง dependencies: pip install openapi-core pytest requests pyyaml นำไฟล์ Swagger ของคุณ (เช่น swagger.yaml) และวางไว้ในไดเรกทอรีโปรเจกต์ของคุณ สคริปต์ด้านล่างนี้จะโหลดข้อมูลจำเพาะ, วนซ้ำผ่าน path และ operation, และสร้างฟังก์ชัน pytest ที่เรียกใช้ API endpoint ของคุณ, ส่ง request, และตรวจสอบ response เทียบกับ OpenAPI schema นี่คือโค้ด—คัดลอกและวางลงในไฟล์เช่น generate_api_tests.py:

import os
import subprocess
import yaml
import pytest
import requests
from openapi_core import create_spec
from openapi_core.validation.request.validators import RequestValidator
from openapi_core.validation.response.validators import ResponseValidator

# Load Swagger/OpenAPI spec
def load_openapi_spec(spec_path):
    with open(spec_path, 'r') as spec_file:
        spec_dict = yaml.safe_load(spec_file)
    return create_spec(spec_dict)

# Generate test cases dynamically
def generate_tests(spec_path):
    spec = load_openapi_spec(spec_path)
    tests = []

    for path, path_item in spec.paths.items():
        for method, operation in path_item.operations.items():
            test_name = f"test_{method.upper()}_{path.replace('/', '_')}"
            tests.append({
                'name': test_name,
                'method': method.upper(),
                'path': path,
                'operation': operation
            })
    return tests

# Pytest test function generator
def create_test_function(test_case):
    def test_func():
        base_url = "http://localhost:8080"  # Replace with your API base URL
        url = f"{base_url}{test_case['path']}"
        response = requests.request(method=test_case['method'], url=url)
        
        # Validate response against OpenAPI spec
        spec = load_openapi_spec("swagger.yaml")  # Path to your Swagger file
        response_validator = ResponseValidator(spec)
        result = response_validator.validate(response=response)
        result.raise_for_errors()
        
        assert response.status_code in [200, 201], f"Expected 200/201, got {response.status_code}"
    
    test_func.__name__ = test_case['name']
    return test_func

# Dynamically add tests to pytest
def pytest_generate_tests(metafunc):
    spec_path = "swagger.yaml"  # Path to your Swagger file
    tests = generate_tests(spec_path)
    for test_case in tests:
        test_func = create_test_function(test_case)
        setattr(metafunc.cls, test_case['name'], test_func)

# Example test class
class TestAPI:
    pass

เริ่มต้นใช้งาน: อัปเดต base_url เป็นที่อยู่ API ของคุณ (เช่น เซิร์ฟเวอร์ในเครื่องหรือสภาพแวดล้อม staging) รัน pytest generate_api_tests.py -v และดูว่ามันสร้างและรันการทดสอบสำหรับแต่ละ endpoint อย่างไร สคริปต์นี้จัดการการตรวจสอบพื้นฐาน แต่คุณสามารถขยายเพื่อรองรับ query params, auth tokens หรือ custom assertions ได้ นี่เป็นรากฐานที่ดีสำหรับการทดสอบ API ที่ขับเคลื่อนด้วย Swagger/OpenAPI—ปรับขนาดได้และสอดคล้องกับข้อมูลจำเพาะ สำหรับการสร้างที่ซับซ้อนยิ่งขึ้น ลองดู OpenAPI Generator เป็นเครื่องมือ CLI ที่สามารถสร้างโครงสร้างการทดสอบใน Python, Java หรือแม้แต่ JavaScript ได้ ติดตั้งผ่าน npm install @openapitools/openapi-generator-cli -g จากนั้นรัน openapi-generator generate -i swagger.yaml -g python-pytest -o ./tests ปัง—ไฟล์ pytest พร้อมใช้! เริ่มต้น: ดาวน์โหลดข้อมูลจำเพาะของคุณ, รันคำสั่ง, ปรับแต่งโค้ดที่สร้างขึ้น, และรวมเข้ากับ repo ของคุณ (รูปภาพ: openapi generator) อีกทางเลือกที่แข็งแกร่งคือ Dredd ซึ่งเป็นเครื่องมือทดสอบ API โดยเฉพาะ มีน้ำหนักเบาและเน้นการทดสอบสัญญา (contract testing) กับข้อมูลจำเพาะ OpenAPI ของคุณ เริ่มต้นด้วยการติดตั้ง npm install -g dredd จากนั้น dredd init ในโฟลเดอร์โปรเจกต์ของคุณ ชี้ไปที่ไฟล์ Swagger ของคุณในการตั้งค่า และรัน dredd มันมี hooks ที่ช่วยให้คุณปรับแต่ง hooks สำหรับการตั้งค่าข้อมูลได้ เหมาะอย่างยิ่งสำหรับการตรวจสอบ API ที่รวดเร็วและอิงตามข้อมูลจำเพาะ (รูปภาพ: dredd)

แทนที่การทำงานที่น่าเบื่อด้วยตนเอง: ขอแนะนำ Apidog สำหรับการทดสอบ API แบบอัตโนมัติ

ตอนนี้ มาพูดถึง Apidog แพลตฟอร์มที่หลากหลายซึ่งเหมือนมีดพับ Swiss Army สำหรับงาน API มันรวมการออกแบบ, การจัดทำเอกสาร และการทดสอบไว้ในที่เดียว ทำให้เป็นทางเลือกที่ยอดเยี่ยมแทนที่เครื่องมือที่ยุ่งยาก Apidog โดดเด่นในการสร้างสคริปต์ทดสอบจากข้อมูลจำเพาะ Swagger/OpenAPI โดยการนำเข้าไฟล์ของคุณและสร้างสถานการณ์ทดสอบโดยอัตโนมัติ จะเริ่มต้นใช้งาน Apidog ได้อย่างไร? ไปที่ apidog.com และดาวน์โหลดแอปพลิเคชันเดสก์ท็อป (มีให้สำหรับ Windows, Mac, Linux) หรือใช้เวอร์ชันเว็บ สร้างโปรเจกต์ใหม่, นำเข้าไฟล์ Swagger/OpenAPI ของคุณผ่านปุ่ม "Import" (รองรับ JSON/YAML โดยตรง) เมื่อนำเข้าแล้ว ให้สลับไปที่โมดูล "Tests", คลิก "+" เพื่อสร้าง scenario ใหม่, และเลือก endpoint จากข้อมูลจำเพาะของคุณ (รูปภาพ: apidog tests) Apidog สร้าง request โดยอัตโนมัติพร้อมข้อมูลตัวอย่างจาก schema และ assertion พื้นฐาน เช่น รหัสสถานะ รันพวกมันใน runner ในตัว หรือส่งออกเป็นสคริปต์สำหรับเฟรมเวิร์กเช่น pytest หรือ Jest ใช้งานง่ายสำหรับทีม มีคุณสมบัติการทำงานร่วมกัน และตั้งแต่ปี 2025 เป็นต้นไป รองรับการปรับแต่งการทดสอบที่ช่วยด้วย AI หากคุณเบื่อกับการเปลี่ยนเครื่องมือ Apidog จะช่วยปรับปรุงวงจรชีวิต API ทั้งหมดของคุณให้คล่องตัวขึ้น ปุ่มดาวน์โหลดแอป

เครื่องมือยอดนิยมสำหรับการสร้างการทดสอบ API โดยอัตโนมัติจาก Swagger/OpenAPI

นอกเหนือจากสคริปต์ที่กำหนดเองและ Apidog แล้ว ยังมีเครื่องมือที่ยอดเยี่ยมบางอย่างที่ปรับแต่งมาเพื่อสิ่งนี้โดยเฉพาะ มาทำความเข้าใจแต่ละเครื่องมือ พร้อมวิธีการเริ่มต้นใช้งานอย่างรวดเร็ว สิ่งเหล่านี้ได้รับการปรับให้เหมาะสมสำหรับการค้นหาที่เป็นมิตรกับ SEO เช่น "เครื่องมือสร้างการทดสอบ Swagger API ที่ดีที่สุด" หรือ "เครื่องมือทดสอบอัตโนมัติ OpenAPI"

1. เครื่องมือ Swagger & ReadyAPI (เดิมชื่อ SmartBear)

ReadyAPI เป็นเครื่องมือที่ทรงพลังสำหรับการทดสอบ API ที่ครอบคลุม คุณสามารถนำเข้าคำจำกัดความ OpenAPI ของคุณโดยตรงไปยัง Swagger หรือ ReadyAPI เพื่อสร้างการทดสอบฟังก์ชัน, ความปลอดภัย และการทดสอบโหลดได้โดยอัตโนมัติ มันจัดการการตรวจสอบ schema, assertion, การฉีดข้อมูล และแม้กระทั่งการสร้างการทดสอบโหลดด้วยคลิกเดียว เริ่มต้นใช้งาน: ไปที่ https://swagger.io/solutions/api-testing/ และดาวน์โหลด ReadyAPI (มีให้ทดลองใช้ฟรี) นำเข้าไฟล์ Swagger ของคุณผ่านวิซาร์ด "Import", เลือก "Generate Test Suite" และเลือกประเภทการทดสอบ (เช่น functional สำหรับการตรวจสอบ endpoint) ปรับแต่ง assertion ใน visual editor จากนั้นรันหรือกำหนดเวลาการทดสอบ เป็นระดับองค์กร เหมาะอย่างยิ่งสำหรับ API testing pipeline ที่แข็งแกร่ง (รูปภาพ: ready api)

2. ส่วนขยาย VS Code: API Test Builder

หากคุณติดอยู่กับ VS Code ส่วนขยายนี้คือตัวเปลี่ยนเกม API Test Builder สร้างสคริปต์ทดสอบ boilerplate สำหรับ Playwright หรือ Cypress โดยตรงจากไฟล์ Swagger/OpenAPI รองรับ OpenAPI 3.0 และ Swagger 2.0 โดยสร้างไดเรกทอรีที่มีโครงสร้างพร้อม sample request, basic response assertion (เช่น รหัสสถานะ HTTP) และการจัดระเบียบตามแท็ก เริ่มต้นใช้งาน: ติดตั้งจาก https://marketplace.visualstudio.com/items?itemName=mlourenco.api-test-builder เปิดไฟล์ JSON/YAML ของคุณใน VS Code, คลิกขวา, และเลือก "Swagger to Cypress" หรือ "Swagger to Playwright" มันสร้างไฟล์โดยอัตโนมัติ—ตรวจสอบ, เพิ่มตรรกะที่กำหนดเอง, และรันผ่าน CLI ของเฟรมเวิร์กของคุณ รวดเร็วสุดๆ สำหรับนักพัฒนา frontend ที่ต้องการรวมการทดสอบ API (รูปภาพ: api test builder)

3. Codespell.ai สำหรับการสร้างสคริปต์อัตโนมัติ

Codespell.ai ยกระดับ AI ไปอีกขั้นสำหรับการสร้างการทดสอบ อัปโหลดข้อมูลจำเพาะ Swagger ของคุณ แล้วมันจะสร้างสคริปต์ทดสอบที่สมบูรณ์แบบโดยอัตโนมัติซึ่งสอดคล้องกับเฟรมเวิร์กของคุณ ตรวจสอบและปรับแต่งก่อนการรัน พร้อมการรวม CI/CD ที่ราบรื่น เริ่มต้น: ไปที่ https://www.codespell.ai/blog/generating-automated-tests-from-swagger-specs-and-excel-inputs ลงทะเบียน (tier ฟรี), อัปโหลดไฟล์ OpenAPI ของคุณ, เลือกภาษา/เฟรมเวิร์กของคุณ (เช่น Python, Java), และกดสร้าง แก้ไขผลลัพธ์ใน editor ของพวกเขา จากนั้นส่งออกหรือรันโดยตรง ฉลาดด้วย AI จัดการกรณีพิเศษเช่น negative test และเหมาะสำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์ที่ต้องการลองใช้ API automation (รูปภาพ: codespell ai)

4. Katalon Studio’s AI-Powered Test Generator (Beta)

คุณสมบัติเบต้าของ Katalon Studio ใช้ AI เพื่อสร้างการทดสอบ API จากข้อมูลจำเพาะ นำเข้า OpenAPI/Swagger ของคุณ, เปิดใช้งานการสร้างอัตโนมัติ, และเลือก endpoint สำหรับกรณีที่เน้นการตรวจสอบรหัสสถานะ เริ่มต้น: ดาวน์โหลด Katalon Studio Enterprise จาก https://docs.katalon.com/katalon-studio/create-test-cases/generate-api-tests-with-ai-beta (เวอร์ชัน 9.6.0+) นำเข้าข้อมูลจำเพาะในโมดูล API, สลับ "auto-generate", เลือก endpoint, และสร้าง หมายเหตุ: เป็นเวอร์ชันเบต้า ดังนั้นระวังโค้ดที่อาจไม่ถูกต้อง—จำเป็นต้องมีการปรับแต่งด้วยตนเอง ยอดเยี่ยมสำหรับการทดสอบ API แบบ low-code ในทีม (รูปภาพ: katalon)

5. Meqa: ชุดทดสอบแบบ No-Code จากข้อมูลจำเพาะ OpenAPI

Meqa เป็นเครื่องมือ CLI/Docker สำหรับชุดทดสอบที่ไม่ยุ่งยาก มันอ่าน OpenAPI YAML ของคุณ, สร้างการทดสอบแบบ CRUD และระดับออบเจกต์, อนุมานความสัมพันธ์, และให้แผน YAML ที่สามารถแก้ไขได้ เริ่มต้น: โคลนจาก https://github.com/meqaio/swagger_meqa ติดตั้งผ่าน Docker (docker run meqa/swagger_meqa your-spec.yaml) หรือ CLI รันคำสั่งพร้อมเส้นทางข้อมูลจำเพาะของคุณ—มันจะส่งออกแผนการทดสอบ แก้ไข YAML จากนั้นรันเพื่อดูรายงาน เหมาะอย่างยิ่งสำหรับการตรวจสอบความสอดคล้องของ schema โดยไม่ต้องเขียนโค้ด (รูปภาพ: meqa)

แนวทางปฏิบัติที่ดีที่สุดสำหรับการทดสอบ API แบบอัตโนมัติด้วย Swagger/OpenAPI

โอ้โห นั่นคือชุดเครื่องมือ! แต่เพื่อให้มันใช้งานได้จริง ให้ปฏิบัติตามคำแนะนำเหล่านี้: ตรวจสอบข้อมูลจำเพาะ OpenAPI ของคุณก่อนเสมอ (ใช้เครื่องมือเช่น Apidog และ Spectral) เริ่มต้นจากเล็กๆ—ทดสอบหนึ่ง endpoint ด้วยตนเอง จากนั้นจึงทำให้เป็นอัตโนมัติ รวมเข้ากับ CI/CD (เช่น GitHub Actions กับ pytest) จัดการการยืนยันตัวตนและ mock เพื่อความสมจริง ตรวจสอบการเปลี่ยนแปลงข้อมูลจำเพาะ; เครื่องมือเหล่านี้ช่วยให้การทดสอบสอดคล้องกัน โดยสรุป การทำให้สคริปต์ทดสอบ API จากเอกสาร Swagger เป็นไปโดยอัตโนมัติจะเปลี่ยนความวุ่นวายให้เป็นการควบคุม ไม่ว่าคุณจะเขียนสคริปต์ด้วย Python, ใช้ความมหัศจรรย์แบบ all-in-one ของ Apidog, หรือใช้ประโยชน์จาก AI ใน Codespell อนาคตของการทดสอบ API คือการทำงานอัตโนมัติและขับเคลื่อนด้วยข้อมูลจำเพาะ ลองใช้สักอันวันนี้—ตัวคุณในอนาคตจะขอบคุณ! ปุ่มดาวน์โหลดแอป

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API