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.

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:
- Mengambil token pengguna di langkah sebelumnya, atau menjalankan kueri basis data untuk mendapatkan catatan tertentu
- Kemudian menggunakan hasil tersebut dalam permintaan titik akhir di langkah berikutnya.
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.

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:
- Di bidang masukan mana pun dari langkah downstream, klik ikon tongkat ajaib.
- Pilih "Ambil Data Pra-Langkah"
- Apidog akan secara otomatis menyisipkan ekspresi yang benar — tidak perlu menuliskannya secara manual.

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:
- Atur nama variabel sebagai
products_id - Gunakan JSONPath:
$.products[0].id

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
- Melalui Nilai Dinamis: Sama seperti sebelumnya, klik ikon tongkat ajaib di bidang masukan, pilih "Ambil Data Pra-Langkah", dan Apidog akan menyisipkan ekspresi yang benar secara otomatis.
- Melalui Variabel yang Diekstrak: Jika Anda sebelumnya menyimpan nilai sebagai variabel (misalnya,
products_id), cukup gunakan{{products_id}}sebagai parameter dalam permintaan API.

2. Gunakan data dalam operasi basis data
Anda dapat menggunakan respons API sebagai masukan dalam kueri basis data. Kedua metode berfungsi:
- Metode Nilai Dinamis
SELECT * FROM products WHERE id = '{{$.1.response.body.products[0].id}}'
Gunakan nilai dinamis untuk mereferensikan data respons API langsung dalam kueri SQL:

- Metode Variabel yang Diekstrak: Jika Anda telah mengekstrak ID produk sebagai variabel bernama
products_id, gunakan:
SELECT * FROM products WHERE id = '{{products_id}}'3. Gunakan data dalam For Loop
Untuk mengulang langkah-langkah berdasarkan panjang array dari respons API:
- Gunakan nilai dinamis untuk mendapatkan panjang array, misalnya:
{{$.1.response.body.products.length}}Ini mengatur jumlah iterasi perulangan.

4. Gunakan data dalam ForEach Loops
Jika Anda ingin mengulang setiap item dalam array yang dikembalikan oleh titik akhir:
- Metode Nilai Dinamis: Langsung ekstrak seluruh array, misalnya
{{$.1.response.body.products}}

- Metode Ekstrak Variabel: Dengan asumsi seluruh array telah diekstrak sebagai variabel
products, maka langsung sisipkan{{products}}dalam perulangan.

5. Gunakan data dalam skrip
Untuk menggunakan data dari langkah-langkah sebelumnya di dalam skrip, gunakan metode pm.variables.get(). Berikut caranya:
- Metode Nilai Dinamis: Baca data langsung dari langkah sebelumnya:
const products = pm.variables.get("$.1.response.body.products")
- Metode Ekstrak Variabel: Jika Anda menyimpan array atau nilai sebagai variabel, gunakan skrip berikut untuk mendapatkan data:
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"){{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:

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:
- Nama variabel:
products_id - JSONPath:
$[0].id(untuk mengekstrak ID item pertama). Jika Anda ingin mengekstrak seluruh set hasil, gunakan:$. - Langkah-langkah downstream mereferensikan variabel melalui
{{ }}, misalnya:{{products_id}}

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:

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:
- Nama variabel:
products - JSONPath:
$

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

- Angka
9mengacu pada ID langkahFor loops. - Setiap langkah memiliki ID unik.
- Indeks dimulai dari 0 untuk perulangan pertama, 1 untuk yang kedua, dan seterusnya.
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");
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:
- Elemen perulangan saat ini: Berisi data lengkap elemen array yang sedang diproses. Misalnya:
{{$.4.element}}. Jika array berisi objek, Anda dapat langsung mengakses propertinya, seperti:{{$.4.element.id}},{{$.4.element.title}}, dll.

- Indeks perulangan saat ini: Mewakili jumlah iterasi saat ini (mulai dari 0), mis.,
{{$.4.index}}.

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}}.

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:
- Langkah titik akhir dan basis data menghasilkan data terkait bisnis.
- Langkah perulangan mengontrol alur logika.
- Langkah skrip digunakan untuk memproses dan mengubah data.
Dengan menggabungkan referensi nilai dinamis dengan ekstraksi variabel, Anda dapat merancang proses pengujian berbasis data yang fleksibel dan kuat.
Praktik Terbaik untuk Pengiriman Data:
- Gunakan referensi nilai dinamis untuk data sederhana yang hanya digunakan sekali atau sesekali.
- Gunakan ekstraksi variabel untuk data yang perlu digunakan kembali di beberapa langkah atau ditangani dalam skrip.
Memilih metode yang tepat berdasarkan kompleksitas data dan frekuensi penggunaan akan membuat alur kerja Anda lebih mudah dipelihara dan efisien.
