DEV Community

Cover image for Cara Migrasi dari ReadyAPI ke Apidog dengan Mudah
Walse
Walse

Posted on • Originally published at apidog.com

Cara Migrasi dari ReadyAPI ke Apidog dengan Mudah

TL;DR

Migrasi dari ReadyAPI ke Apidog cukup mudah untuk rangkaian pengujian yang banyak menggunakan REST. Ekspor proyek ReadyAPI Anda, konversi apa yang bisa melalui impor OpenAPI, dan buat ulang skrip Groovy secara manual di JavaScript. Kasus uji SOAP memerlukan pekerjaan manual paling banyak. Rencanakan migrasi bertahap untuk menjaga cakupan pengujian tetap berkelanjutan.

Coba Apidog hari ini

💡 Apidog adalah platform pengembangan API lengkap gratis yang mengimpor spesifikasi OpenAPI dan koleksi Postman serta menjalankan pipeline pengujian dengan skrip JavaScript. Coba Apidog gratis, tidak diperlukan kartu kredit.

Pendahuluan

Memigrasikan infrastruktur pengujian API adalah salah satu tugas yang terdengar mudah sampai Anda memulainya. Proyek ReadyAPI dapat berisi kasus uji yang terakumulasi selama bertahun-tahun, skrip Groovy kustom, file data, lingkungan, dan struktur rangkaian uji yang kompleks. Memasukkan semua itu ke Apidog memerlukan pemahaman tentang apa yang ditransfer secara otomatis, apa yang memerlukan konversi manual, dan apa yang mungkin Anda putuskan untuk ditinggalkan.

Panduan ini akan memandu Anda melalui proses migrasi langkah demi langkah. Ini mencakup mengekspor proyek ReadyAPI Anda, menganalisis apa yang Anda miliki, mengimpor ke Apidog, menangani konversi Groovy ke JavaScript, menyiapkan CI/CD, dan mengelola periode transisi ketika kedua alat berjalan secara paralel.


Langkah 1: Audit Proyek ReadyAPI Anda

Sebelum mulai migrasi, lakukan audit pada proyek ReadyAPI Anda untuk memperkirakan effort dan risiko:

  • Jumlah test suite, test case, dan test step: Hitung di panel Navigator.
  • Persentase REST vs SOAP: REST lebih mudah dimigrasikan, SOAP butuh effort manual.
  • Banyaknya skrip Groovy: Identifikasi jumlah test case dengan Groovy Script.
  • Penggunaan DataSource: Apidog mendukung data-driven, tapi pengaturannya berbeda.
  • Properties/Property Transfer: Di Apidog diganti dengan variabel/environment variable.
  • Load Testing: LoadUI Pro tidak bisa dimigrasikan otomatis, gunakan k6 atau tool lain untuk load test.

Buat spreadsheet sederhana berisi nama kasus uji, tipe (REST/SOAP), ada Groovy (ya/tidak), dan tingkat kompleksitas. Ini akan mempermudah tracking progres migrasi.


Langkah 2: Ekspor Proyek ReadyAPI Anda

  1. Buka ReadyAPI dan proyek Anda.
  2. Pilih File > Save As untuk menyimpan sebagai file XML mandiri.
  3. Simpan semua file data eksternal (CSV, Excel, XML) yang direferensikan pengujian.
  4. Catat konfigurasi environment di bagian Environments.

File XML tersebut akan berisi seluruh struktur pengujian Anda.


Langkah 3: Ekstrak Definisi API Anda

Migrasi endpoint REST sebaiknya lewat spesifikasi OpenAPI.

  • Ekspor dari ReadyAPI: Klik kanan service REST, pilih ekspor/buat OpenAPI/Swagger.
  • Gunakan OpenAPI backend: Jika backend Anda sudah expose /openapi.json, download file-nya.
  • Manual: Jika tidak ada, catat endpoint, body, header, response secara manual dari test step di ReadyAPI.

Langkah 4: Impor ke Apidog

  1. Buka Apidog dan buat proyek baru.
  2. Pilih menu API > Impor, pilih format (OpenAPI 3.0, Swagger 2.0, dll).
  3. Upload file spesifikasi atau masukkan URL.
  4. Apidog otomatis generate seluruh endpoint, parameter, body, dan schema response.

Jika punya koleksi Postman, bisa juga langsung diimpor.


Langkah 5: Buat Ulang Kasus Uji untuk Endpoint REST

  1. Buka test case REST di ReadyAPI, cek permintaan, asersi, dan data source.
  2. Di Apidog, buat test case baru sesuai endpoint, tambahkan step pengujian.
  3. Migrasikan asersi:
ReadyAPI Assertion Apidog/JavaScript Assertion
Contains 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'); });

Untuk test sederhana tanpa Groovy, migrasi bisa diselesaikan dalam hitungan menit per kasus.


Langkah 6: Konversi Skrip Groovy ke JavaScript

Konversi manual perlu dilakukan untuk semua logic custom di Groovy.

Contoh konversi:

Membaca response:

// 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

Set variabel:

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

Asersi kondisional:

// 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

Format tanggal:

// 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

Untuk skrip kompleks, baca dan pahami dulu logic-nya sebelum rewrite ke JavaScript.


Langkah 7: Migrasi Kasus Uji SOAP

SOAP tidak didukung native di Apidog. Pilihan:

  • Jika ada REST API pengganti, migrasikan ke REST.
  • Kalau tidak, jalankan ReadyAPI secara paralel khusus untuk SOAP.
  • Alternatif: gunakan SoapUI Open Source (gratis) untuk SOAP functional test.

Jangan terburu-buru migrasi SOAP, terutama jika ada WS-Security atau assertion khusus.


Langkah 8: Siapkan Environment dan Variabel

  1. Di Apidog, buat environment untuk setiap environment ReadyAPI Anda (Settings > Environment).
  2. Tambahkan variabel: base URL, token, header, dsb.
  3. Pastikan referensi variabel di test case menggunakan sintaks Apidog: {{variableName}}.

Langkah 9: Integrasi CI/CD

  1. Instal Apidog CLI di agent CI Anda:

    npm install -g apidog-cli
    
  2. Jalankan koleksi test:

    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: Tambahkan langkah shell untuk menjalankan Apidog CLI.

Hapus referensi testrunner ReadyAPI setelah validasi Apidog berjalan dengan baik.


Langkah 10: Jalankan ReadyAPI & Apidog Secara Paralel

Selama transisi:

  • Jalankan pengujian ReadyAPI sebagai baseline di CI.
  • Jalankan pengujian Apidog secara paralel, bandingkan hasilnya.
  • Investigasi selisih hasil.
  • Test case baru dibuat hanya di Apidog.

Jika hasil sudah reliable, hapus ReadyAPI dari pipeline CI, tapi simpan instalasinya sebagai backup beberapa bulan.


FAQ

Berapa lama waktu migrasi?

REST-only dengan sedikit Groovy: 1–3 hari.

Proyek besar/kompleks: 2–6 minggu. Audit awal sangat menentukan.

Apakah file data uji ReadyAPI bisa dipakai di Apidog?

CSV bisa langsung dipakai. Excel harus dikonversi ke CSV. XML perlu diadaptasi manual.

Bisa jalankan ReadyAPI dan Apidog di pipeline CI yang sama?

Bisa, dan ini direkomendasikan selama transisi.

Lingkungan harus dibuat ulang manual?

Ya. Tidak ada migrasi otomatis environment ke Apidog.

Test case ReadyAPI yang hanya SOAP?

Tetap gunakan ReadyAPI (atau SoapUI Open Source) untuk SOAP, atau terima gap coverage jika layanannya sudah legacy.

Dukungan assertion di Apidog?

JavaScript assertion di Apidog bisa mengekspresikan logic yang sama untuk REST. Assertion khusus SOAP/WS-Security tidak didukung.


Migrasi dari ReadyAPI ke Apidog itu feasible asal direncanakan dengan baik: mulai dari audit, migrasi REST lebih dulu, paralel run, baru cut off. Dengan pendekatan ini, coverage test tetap terjaga dan risiko regresi bisa diminimalisir.

Top comments (0)