Cara Melewati Data Antar Langkah Pengujian di Apidog

Oliver Kingsley

Oliver Kingsley

6 August 2025

Cara Melewati Data Antar Langkah Pengujian di Apidog

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Saat merancang alur kerja pengujian otomatis di Apidog, Anda akan menggunakan berbagai jenis langkah pengujian—seperti permintaan API, kueri basis data, perulangan For, perulangan ForEach, Skrip, dan banyak lagi.

jenis langkah pengujian

Seringkali, data yang dihasilkan dalam satu langkah perlu digunakan di langkah selanjutnya. Ini menciptakan alur logis di mana data menggerakkan proses, dan langkah-langkah saling terhubung.

Misalnya, Anda mungkin:

Ini menimbulkan pertanyaan penting:

Bagaimana Anda dapat mereferensikan data dengan benar dari langkah-langkah sebelumnya (upstream) di langkah-langkah berikutnya (downstream)?

Dua Mekanisme untuk Pengiriman Data di Apidog

Dalam pengujian otomatis Apidog, ada dua metode utama untuk mengirimkan data antar langkah pengujian yang berbeda:

1. Mengambil Data Pra-Langkah melalui "Nilai Dinamis"

Anda dapat langsung mereferensikan keluaran dari langkah sebelumnya (upstream) di langkah berikutnya (downstream) dengan menggunakan fitur "Nilai Dinamis". Ini memungkinkan Anda mengambil data dengan cepat tanpa menyimpannya.

Mengambil Data Pra-Langkah melalui "Nilai Dinamis" dalam pengujian otomatis Apidog

2. Menyimpan Variabel dan Menggunakannya Kembali

Anda dapat mengekstrak data penting dari langkah upstream dan menyimpannya sebagai variabel. Variabel-variabel ini kemudian dapat digunakan kembali di langkah apa pun yang mengikutinya.

Menguasai dua metode pengiriman data ini adalah kunci untuk membangun alur kerja otomatis yang efisien dan digerakkan oleh data di Apidog.

Artikel ini menjelaskan cara menangani data dalam berbagai jenis langkah pengujian dari dua sudut pandang: cara mengekstrak data dan cara menggunakannya. Dengan memahami keduanya, Anda akan dapat membangun alur kerja pengujian yang lebih fleksibel dan terhubung dengan lebih baik.

Mengekstrak dan Menggunakan Data Respons Titik Akhir

Memahami Data Respons Titik Akhir

Dalam pengujian otomatis, permintaan API biasanya mengembalikan respons JSON terstruktur, yang seringkali berfungsi sebagai masukan untuk langkah-langkah pengujian berikutnya.

Tidak seperti jenis langkah lainnya, respons titik akhir cenderung lebih kompleks — seringkali menyertakan objek dan array bersarang.

Cara Mengekstrak Data dari Respons Titik Akhir

Ada dua cara utama untuk mengekstrak dan mengirimkan data respons titik akhir antar langkah pengujian:

Metode Satu: Referensi Nilai Dinamis

Gunakan "Nilai Dinamis" untuk langsung mereferensikan data dari langkah-langkah sebelumnya:

Metode Dua: Ekstrak Data sebagai Variabel

Anda juga dapat menggunakan fitur "Ekstrak Variabel" di post processor titik akhir untuk mengekstrak bidang tertentu dari respons sebagai variabel.

Misalnya, untuk mengekstrak id produk dalam respons:

Di langkah-langkah selanjutnya, cukup referensikan menggunakan {{products_id}}.

Cara Menggunakan Data yang Diekstrak dari Respons Titik Akhir

Setelah Anda mengekstrak data dari respons API—baik menggunakan "Nilai Dinamis" atau "Variabel yang Diekstrak"—Anda dapat menggunakan data tersebut di langkah-langkah downstream dengan beberapa cara:

1. Gunakan data dalam permintaan titik akhir

Gunakan data yang diekstrak dalam Permintaan API

2. Gunakan data dalam operasi basis data

Anda dapat menggunakan respons API sebagai masukan dalam kueri basis data. Kedua metode berfungsi:

SELECT * FROM products WHERE id = '{{$.1.response.body.products[0].id}}'

Gunakan nilai dinamis untuk mereferensikan data respons API langsung dalam kueri SQL:

SELECT * FROM products WHERE id = '{{products_id}}'

3. Gunakan data dalam For Loop

Untuk mengulang langkah-langkah berdasarkan panjang array dari respons API:

{{$.1.response.body.products.length}}

Ini mengatur jumlah iterasi perulangan.

Gunakan data dalam For Loop

4. Gunakan data dalam ForEach Loops

Jika Anda ingin mengulang setiap item dalam array yang dikembalikan oleh titik akhir:

Gunakan data dalam ForEach Loops melalui metode nilai dinamis

5. Gunakan data dalam skrip

Untuk menggunakan data dari langkah-langkah sebelumnya di dalam skrip, gunakan metode pm.variables.get(). Berikut caranya:

const products = pm.variables.get("$.1.response.body.products")
Gunakan data yang diekstrak dalam Skrip melalui metode nilai dinamis

Dapatkan nilai variabel sementara:

const products = pm.variables.get("products") 

Dapatkan nilai variabel lingkungan:

const products = pm.environment.get("products") 

Dapatkan nilai variabel global:

const products = pm.globals.get("products")
💡
Dalam skrip, Anda tidak dapat menggunakan sintaks interpolasi seperti {{products}} secara langsung. Sebaliknya, Anda harus mengambil nilai variabel menggunakan metode yang sesuai yang disebutkan di atas.

Mengekstrak dan Menggunakan Hasil Kueri Basis Data

Memahami Data Basis Data

Ketika langkah kueri basis data dieksekusi, ia mengembalikan data terstruktur dalam bentuk array objek. Bahkan jika hanya satu catatan yang dikembalikan, itu akan tetap dibungkus dalam array. Misalnya:

hasil kueri basis data di Apidog

Tidak seperti respons titik akhir, data dari langkah basis data tidak dapat diakses langsung menggunakan variabel dinamis. Anda harus terlebih dahulu mengekstrak nilai-nilai ke dalam variabel.

Cara Mengekstrak Data dari Basis Data

Setelah menjalankan kueri SQL dalam langkah basis data, Apidog akan secara otomatis mengurai respons menjadi data terstruktur, seperti ini:

[
  {
    "id": "1000",
    "title": "Judul 1",
    "description": "Deskripsi untuk Judul 1"
  }
]

Anda kemudian dapat menggunakan JSONPath untuk mengekstrak bidang tertentu dan menyimpannya sebagai variabel.

Misalnya:

gunakan JSONPath untuk mengekstrak bidang tertentu dan menyimpannya sebagai variabel

Cara Menggunakan Data yang Diekstrak dari Basis Data

1. Gunakan data dalam permintaan titik akhir

Jika kueri basis data Anda mengembalikan ID dan Anda telah menyimpannya sebagai variabel (products_id), Anda dapat langsung menggunakannya dalam permintaan titik akhir downstream:

gunakan data yang diekstrak dari basis data dalam permintaan titik akhir

2. Gunakan data dalam ForEach Loops

Jika kueri Anda mengembalikan daftar catatan, dan Anda ingin memproses setiap catatan secara individual, Anda dapat menggunakan seluruh array sebagai sumber untuk perulangan ForEach:

Premisnya adalah Anda menyimpan seluruh array saat mengekstrak variabel dalam operasi basis data, misalnya:

3. Gunakan data dalam skrip

Untuk menggunakan variabel basis data yang diekstrak dalam skrip, gunakan metode yang sama seperti dengan variabel lainnya.

Dapatkan nilai variabel sementara:

const products = pm.variables.get("products")

Dapatkan nilai variabel lingkungan:

const products = pm.environment.get("products")

Dapatkan nilai variabel global:

const products = pm.globals.get("products")

Mengekstrak dan Menggunakan Data dari For Loops

Bagaimana For Loops Bekerja?

For loop digunakan untuk mengulang serangkaian tindakan tertentu beberapa kali. Ini berjalan berdasarkan jumlah iterasi yang ditentukan.

Anda dapat mengatur jumlah pengulangan yang tetap, atau menggunakan nilai dinamis seperti panjang array .length yang dikembalikan dari langkah sebelumnya. Misalnya: {{$.1.response.body.products.length}}:

Catatan: Tidak seperti langkah-langkah lain yang mengeluarkan data, For loop itu sendiri tidak langsung mengembalikan data. Ini hanya menyediakan nilai indeks (mulai dari 0) untuk menunjukkan berapa kali perulangan telah dieksekusi.

Cara Mengekstrak Data dari For Loops

Selama proses eksekusi, Anda dapat mengakses indeks perulangan saat ini menggunakan sintaks variabel dinamis: {{$.9.index}}

Cara Menggunakan Data yang Diekstrak dari For Loops

1. Gunakan data dalam skrip

Jika Anda ingin menggunakan informasi terkait perulangan dalam skrip pengujian Anda, Anda dapat menggunakan pm.variables.get() untuk mendapatkan indeks saat ini:

// Dapatkan indeks perulangan saat ini
const index = pm.variables.get("$.7.index");
Gunakan data perulangan for yang diekstrak dalam skrip

2. Gunakan data dengan sumber data lain

Kasus penggunaan umum untuk For loop adalah memproses data dari langkah-langkah sebelumnya—seperti mengulang array dan menangani setiap item:

// Dapatkan array dari langkah sebelumnya
const products = pm.variables.get("$.1.response.body.products");

// Dapatkan indeks perulangan saat ini
const index = pm.variables.get("$.7.index");

// Akses item saat ini dalam array menggunakan indeks
console.log(products[index]);

Ini memungkinkan Anda melakukan operasi batch pada setiap item dalam array selama setiap iterasi perulangan.

Mengekstrak dan Menggunakan Data dari ForEach Loop

Bagaimana ForEach Loop Bekerja?

Perulangan ForEach dirancang khusus untuk data array. Ini secara otomatis mengulang setiap elemen dalam array dan melakukan serangkaian operasi yang sama.

Perbedaan utama antara ForEach loop dan For loop adalah bahwa ForEach loop secara otomatis mengekstrak data lengkap elemen array saat ini di setiap iterasi, membuatnya langsung dapat diakses di langkah-langkah anaknya.

Mengakses Data dalam ForEach Loop

Dalam ForEach loop, sistem secara otomatis membuat dua variabel khusus:

Catatan: Angka 4 mengacu pada ID langkah ForEach Loop. Dalam alur kerja Anda yang sebenarnya, ganti ini dengan ID langkah yang benar dari proses Anda.

Kasus Penggunaan Umum untuk Data ForEach Loop

1. Gunakan data dalam permintaan titik akhir

Perulangan ForEach sangat cocok untuk menangani operasi data batch. Misalnya, jika Anda memiliki array item, Anda dapat secara otomatis mengirim permintaan titik akhir untuk setiap item dalam array. Selama setiap perulangan, template permintaan yang sama digunakan kembali, tetapi diisi dengan data yang berbeda, seperti {{$.4.element.id}}.

2. Gunakan data dalam operasi basis data

Anda dapat menggunakan data dari item perulangan saat ini untuk menjalankan kueri basis data atau menyisipkan beberapa baris.

Contoh: Mengkueri basis data menggunakan bidang item saat ini

SELECT * FROM products WHERE id = '{{$.4.element.id}}' 

Ekspresi {{$.4.element.id}} dapat diakses menggunakan fitur nilai dinamis.

Menyisipkan beberapa bidang dari item saat ini ke dalam tabel:

INSERT INTO products (id, title) VALUES ('{{$.4.element.id}}', '{{$.4.element.title}}') 

3. Gunakan data dalam skrip

Jika Anda perlu memproses lebih lanjut data dari perulangan dalam skrip kustom, Anda dapat menggunakan metode pm.variables.get() untuk mengambil nilai-nilai:

// Dapatkan elemen saat ini
const item = pm.variables.get("$.4.element");

// Dapatkan indeks saat ini
const index = pm.variables.get("$.4.index");

Mengekstrak dan Menggunakan Data dari Skrip

Bagaimana Data Skrip Bekerja

Tidak seperti langkah-langkah lain dalam alur kerja, skrip tidak secara otomatis menghasilkan keluaran yang dapat langsung digunakan di langkah-langkah berikutnya. Jika Anda ingin mengirimkan data dari skrip ke langkah-langkah selanjutnya, Anda harus menyimpannya secara manual dalam variabel.

Cara Mengekstrak Data dari Skrip

Anda dapat menyimpan nilai ke dalam berbagai jenis variabel seperti ini:

// Dapatkan data respons JSON
// 1. Dari respons titik akhir saat ini
// const currentData = pm.response.json();

// 2. Atau dapatkan dari langkah sebelumnya menggunakan nilai dinamis
const preData = pm.variables.get("$.1.response.body");

// Simpan ke variabel lingkungan
pm.environment.set('products', preData.products);
pm.environment.set('products_id', preData.products[0].id);

// Simpan ke variabel global
pm.globals.set('products', preData.products);

// Simpan ke variabel sementara (hanya berlaku selama eksekusi ini)
pm.variables.set('products', preData.products);

Setelah variabel diekstrak dan diatur, Anda dapat mereferensikannya di langkah-langkah selanjutnya menggunakan sintaks {{variableName}}.

Cara Menggunakan Data yang Diekstrak dari Skrip

1. Gunakan data dalam permintaan titik akhir

Variabel yang diatur dalam skrip dapat langsung digunakan sebagai parameter dalam permintaan titik akhir downstream. Misalnya, jika Anda menyimpan products_id dalam skrip, Anda dapat mereferensikannya dalam permintaan selanjutnya seperti ini: {{products_id}}.

Gunakan data yang diekstrak dalam Permintaan API

2. Gunakan data dalam operasi basis data

Variabel skrip juga dapat digunakan untuk membangun pernyataan SQL dinamis. Misalnya:

SELECT * FROM products WHERE id = '{{products_id}}'

3. Gunakan data dalam For Loop

Anda dapat menggunakan skrip untuk menghasilkan jumlah perulangan atau nilai-nilai perantara lainnya, menyimpannya sebagai "variabel sementara", dan meneruskannya ke langkah For Loop:

pm.variables.set("loopCount", 5); 

Kemudian, dalam pengaturan perulangan, gunakan {{loopCount}} sebagai jumlah iterasi.

4. Gunakan data dalam ForEach Loops

Anda dapat menyimpan seluruh array dalam variabel dan menggunakannya sebagai sumber data untuk ForEach Loop.

Contoh:

// Secara opsional mengambil array dari langkah sebelumnya menggunakan nilai dinamis
// const preData = pm.variables.get("$.1.response.body.products")

const preData = [{id: 1}, {id: 2}, {id: 3}];

// Simpan ke variabel lingkungan
pm.environment.set('products', preData);

Kemudian dalam ForEach Loop, atur sumber data ke {{products}}.

Kesimpulan

Untuk membangun alur kerja pengujian otomatis yang efisien, penting untuk memahami cara mengekstrak dan menggunakan data dari berbagai jenis langkah:

Dengan menggabungkan referensi nilai dinamis dengan ekstraksi variabel, Anda dapat merancang proses pengujian berbasis data yang fleksibel dan kuat.

Praktik Terbaik untuk Pengiriman Data:

Memilih metode yang tepat berdasarkan kompleksitas data dan frekuensi penggunaan akan membuat alur kerja Anda lebih mudah dipelihara dan efisien.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.