DEV Community

Cover image for วิธี ย้าย จาก ReadyAPI ไป Apidog
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

วิธี ย้าย จาก ReadyAPI ไป Apidog

สรุปสั้นๆ (TL;DR)

การย้ายจาก ReadyAPI ไป Apidog ค่อนข้างตรงไปตรงมาสำหรับชุดทดสอบ REST ส่งออกโปรเจกต์ ReadyAPI, แปลงผ่าน OpenAPI, และสร้างสคริปต์ Groovy ใหม่ด้วยตนเองใน JavaScript กรณีทดสอบ SOAP ต้องแปลงมือเกือบทั้งหมด วางแผนการย้ายแบบเป็นขั้นตอนเพื่อครอบคลุมการทดสอบอย่างต่อเนื่อง

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

💡 Apidog คือแพลตฟอร์ม API แบบครบวงจรฟรี รองรับการนำเข้า OpenAPI, คอลเลกชัน Postman และรันไปป์ไลน์การทดสอบด้วย JavaScript ลองใช้ฟรีโดยไม่ต้องใช้บัตรเครดิต

บทนำ

การย้ายโครงสร้างพื้นฐานทดสอบ API ไม่ง่ายอย่างที่คิด โปรเจกต์ ReadyAPI มักมีกรณีทดสอบสะสมหลายปี, สคริปต์ Groovy, ไฟล์ข้อมูล, สภาพแวดล้อม และชุดทดสอบซับซ้อน การย้ายไป Apidog ต้องรู้ว่าอะไรถ่ายโอนได้อัตโนมัติ อะไรต้องแปลงเอง และอะไรควรตัดทิ้ง

บทความนี้แนะนำขั้นตอนย้ายข้อมูล: ตั้งแต่การส่งออกโปรเจกต์, วิเคราะห์, นำเข้า, แปลง Groovy เป็น JavaScript, ตั้งค่า CI/CD และจัดการช่วงเปลี่ยนผ่านที่ใช้เครื่องมือทั้งสอง

ขั้นตอนที่ 1: ตรวจสอบโปรเจกต์ ReadyAPI ของคุณก่อนเริ่มต้น

  1. เปิดโปรเจกต์ ReadyAPI และตรวจสอบสิ่งต่อไปนี้:
    • จำนวนชุดทดสอบ/กรณีทดสอบ/ขั้นตอน: นับจากแผง Navigator โปรเจกต์ใหญ่ใช้เวลาย้ายมากกว่า
    • REST vs SOAP: REST ย้ายได้ง่าย SOAP ต้องแปลงมือ โดยเฉพาะ WS-Security หรือการยืนยันซับซ้อน
    • สคริปต์ Groovy: ดูจำนวน Script Step ที่มี Groovy – ต้องแปลงเป็น JavaScript ทีละตัว
    • การทดสอบ data-driven: Apidog รองรับ CSV/JSON แต่โครงสร้างต่างจาก ReadyAPI
    • การใช้ Properties/Property Transfer: Apidog ใช้ตัวแปรแทน
    • การทดสอบโหลด (LoadUI Pro): Apidog ไม่รองรับ ต้องตั้งค่า k6 หรือเครื่องมืออื่นแยก

รวบรวมข้อมูลทั้งหมดในสเปรดชีต เช่น ชื่อกรณี, ประเภท (REST/SOAP), มี Groovy หรือไม่, ความซับซ้อน เพื่อประมาณเวลาย้าย

ขั้นตอนที่ 2: ส่งออกโปรเจกต์ ReadyAPI ของคุณ

  1. เปิด ReadyAPI > โปรเจกต์ของคุณ
  2. ไปที่ File > Save As เพื่อบันทึกโปรเจกต์เป็น XML
  3. สำรองไฟล์ข้อมูล (CSV, Excel, XML) ที่ใช้อ้างอิง
  4. จดการตั้งค่าสภาพแวดล้อมใน Environments

ไฟล์ XML นี้ประกอบด้วยชุดทดสอบ, กรณี, ขั้นตอน, สคริปต์ และการกำหนดค่าทั้งหมด

ขั้นตอนที่ 3: ดึงคำจำกัดความ API ของคุณออกมา

  • ตัวเลือก A: ส่งออก OpenAPI/Swagger จาก ReadyAPI (คลิกขวาที่บริการ REST เลือก Export/OpenAPI)
  • ตัวเลือก B: ถ้า backend มี OpenAPI อยู่แล้ว (เช่น /openapi.json) ดาวน์โหลดมาใช้
  • ตัวเลือก C: ถ้าไม่มี spec ใช้ข้อมูลจาก ReadyAPI (endpoint, request, header, response) แล้วสร้างใหม่ใน Apidog

ขั้นตอนที่ 4: นำเข้าสู่ Apidog

  1. เปิด Apidog สร้างโปรเจกต์ใหม่
  2. ไปที่ APIs > Import เลือกรูปแบบที่รองรับ (OpenAPI 3.0/Swagger 2.0)
  3. อัปโหลดไฟล์หรือวาง URL spec
  4. Apidog จะสร้างโครงสร้าง API, endpoint, parameter, request/response schema ให้อัตโนมัติ

ถ้ามีคอลเลกชัน Postman ก็ Import ได้ผ่าน File > Import > Postman

ขั้นตอนที่ 5: สร้างกรณีทดสอบใหม่สำหรับปลายทาง REST

  1. เปิดกรณีทดสอบ REST ใน ReadyAPI
  2. ระบุ request, การยืนยัน, data source ที่ใช้
  3. สร้างกรณีใน Apidog: เลือก endpoint แล้วเพิ่ม test step

ตัวอย่างการแปลง Assertion:

  • Contains (body contains string)

    pm.test('contains value', () => {
      pm.expect(pm.response.text()).to.include('expected string');
    });
    
  • Status code

    pm.test('status 200', () => {
      pm.response.to.have.status(200);
    });
    
  • JSONPath

    pm.test('field value', () => {
      pm.expect(pm.response.json().fieldName).to.equal('expected');
    });
    

กรณี GET/POST ง่ายๆ ย้ายได้ภายใน 15–30 นาทีต่อกรณี

ขั้นตอนที่ 6: แปลงสคริปต์ Groovy เป็น JavaScript

แปลงสคริปต์ Groovy ทีละตัวเป็น JavaScript ด้วยตัวเอง ตัวอย่างการแปลง:

อ่านค่าการตอบกลับ:

// Groovy (ReadyAPI)
def response = context.expand('${TestStep#Response}')
def json = new groovy.json.JsonSlurper().parseText(response)
def value = json.fieldName
Enter fullscreen mode Exit fullscreen mode
// JavaScript (Apidog)
const response = pm.response.json();
const value = response.fieldName;
Enter fullscreen mode Exit fullscreen mode

ตั้งค่าตัวแปร:

// Groovy
testRunner.testCase.setPropertyValue('myVariable', someValue)
Enter fullscreen mode Exit fullscreen mode
// JavaScript
pm.variables.set('myVariable', someValue);
Enter fullscreen mode Exit fullscreen mode

Assertion มีเงื่อนไข:

// Groovy
if (statusCode == 200) {
  assert responseBody.contains("success")
}
Enter fullscreen mode Exit fullscreen mode
// JavaScript
if (pm.response.code === 200) {
  pm.test('response contains success', () => {
    pm.expect(pm.response.text()).to.include('success');
  });
}
Enter fullscreen mode Exit fullscreen mode

จัดการวันที่:

// Groovy
def now = new Date()
def formatted = now.format('yyyy-MM-dd')
Enter fullscreen mode Exit fullscreen mode
// JavaScript
const now = new Date();
const formatted = now.toISOString().split('T')[0];
Enter fullscreen mode Exit fullscreen mode

สคริปต์ที่ซับซ้อนต้องวิเคราะห์และแปลงอย่างระมัดระวัง หลีกเลี่ยงการแปลอัตโนมัติ

ขั้นตอนที่ 7: จัดการกรณีทดสอบ SOAP

Apidog ไม่มีฟีเจอร์ SOAP โดยตรง ถ้า API เดิมรองรับ REST ด้วย ให้ย้ายไป REST ทั้งหมด

ถ้าไม่มี REST:

  • ทางเลือก 1: ใช้ ReadyAPI เฉพาะ SOAP ควบคู่กับ Apidog สำหรับ REST
  • ทางเลือก 2: ใช้ SoapUI Open Source ทดแทน ReadyAPI

อย่าเร่งย้าย SOAP โดยเฉพาะที่มี WS-Security ต้องตรวจสอบและสร้าง Assertion ใหม่อย่างละเอียด

ขั้นตอนที่ 8: ตั้งค่าสภาพแวดล้อมและตัวแปร

  1. ใน Apidog ไปที่ Settings > Environments สร้าง environment ให้ตรงกับ ReadyAPI
  2. เพิ่มตัวแปร (baseURL, token, header ฯลฯ) ให้เหมือนกัน
  3. แก้ไข test case ให้ใช้ตัวแปร Apidog แบบ {{variableName}} ใน URL/request

ขั้นตอนที่ 9: กำหนดค่า CI/CD

  1. ติดตั้ง Apidog CLI บน CI agent:

    npm install -g apidog-cli
    
  2. รัน test collection:

    apidog run "path/to/collection.json" -e "environment-id"
    
  3. ตัวอย่าง GitHub Actions:

    - name: Run API tests
      run: apidog run collection.json --environment staging
    
  4. Jenkins: เพิ่ม shell step เรียก apidog run ใน pipeline

ลบการอ้างอิง testrunner ของ ReadyAPI เมื่อ Apidog ทำงานสมบูรณ์แล้ว

ขั้นตอนที่ 10: รันเครื่องมือทั้งสองพร้อมกันในช่วงการเปลี่ยนผ่าน

อย่าปิด ReadyAPI ทันที ให้รัน ReadyAPI และ Apidog ควบคู่กันอย่างน้อย 1 release cycle

ระหว่างนี้:

  • รัน ReadyAPI เป็น test gate หลัก
  • รัน Apidog ควบคู่ เปรียบเทียบผลลัพธ์
  • ตรวจสอบ bug/ข้อแตกต่างที่เกิดใน Apidog
  • เพิ่มกรณีใหม่ใน Apidog เท่านั้น
  • เมื่อมั่นใจว่า Apidog ครอบคลุมเท่าหรือดีกว่า ให้ถอด ReadyAPI ออกจาก pipeline (แต่เก็บไว้สำรองอีก 2-3 เดือน)

คำถามที่พบบ่อย (FAQ)

Q: การย้ายใช้เวลานานแค่ไหน?

A: โปรเจกต์ REST-only และไม่มี Groovy มาก ใช้เวลา 1–3 วัน โปรเจกต์ใหญ่/ซับซ้อน 2–6 สัปดาห์

Q: ไฟล์ข้อมูลทดสอบ ReadyAPI ใช้กับ Apidog ได้ไหม?

A: CSV ใช้ได้ทันที Excel ต้องแปลงเป็น CSV ก่อน XML ต้องจัดโครงสร้างใหม่ตามการใช้งาน

Q: รัน ReadyAPI กับ Apidog ใน CI pipeline เดียวกันได้ไหม?

A: ได้ เพิ่มขั้นตอน Apidog CLI ใน pipeline ควบคู่กับ testrunner เปรียบเทียบผลระหว่างช่วงเปลี่ยนผ่าน

Q: การสร้าง environment ใหม่ใน Apidog ต้องทำมือหรือไม่?

A: ต้องสร้างเอง ไม่มีนำเข้าอัตโนมัติ เปิดหน้าต่าง ReadyAPI แล้วสร้างใน Apidog ทีละ environment

Q: กรณีทดสอบ ReadyAPI ที่ไม่มี REST เทียบเท่าจะทำอย่างไร?

A: ใช้ ReadyAPI เฉพาะ SOAP, ย้ายไป SoapUI Open Source หรือยอมรับช่องว่างการทดสอบถ้า API นั้นเก่าหรือความเสี่ยงต่ำ

Q: Apidog รองรับ assertion แบบเดียวกับ ReadyAPI หรือไม่?

A: รองรับ assertion JavaScript ที่ logic เทียบเท่า assertion ของ ReadyAPI สำหรับ REST (แต่ SOAP Fault, WS-Security ไม่รองรับ)


การย้ายจาก ReadyAPI ไป Apidog เป็นโครงการสำคัญ ควรวางแผน, ตรวจสอบ, ย้าย REST ก่อน, รันเครื่องมือทั้งสองควบคู่ แล้วจึงถอด ReadyAPI ออก เพื่อลดช่องว่างและความเสี่ยงในการทดสอบ

Top comments (0)