Ketika menguji API di Apidog, seringkali diperlukan untuk mengekstrak nilai-nilai spesifik dari data respons API untuk pemrosesan dan penggunaan lebih lanjut (biasanya untuk membuat permintaan tambahan). Biasanya, data respons API dalam format JSON atau XML. JSON adalah format yang paling umum dan disukai karena ringkas, mudah dibaca, dan mudah diurai. Oleh karena itu, artikel ini akan fokus pada teknik untuk mengurai data JSON.
Bagian utama dari respons yang seringkali perlu diproses adalah header respons dan badan respons. Apidog menyediakan alat bawaan untuk mengekstrak baik header respons maupun konten badan respons untuk analisis. Dalam posting ini, kita akan menjelajahi teknik untuk mengekstrak data respons API di Apidog.
Mengekstrak Header Respons di Apidog
Semua respons HTTP berisi header yang menyediakan metadata tentang respons. Header respons ditampilkan dalam format daftar beserta nilainya. Anda dapat menelusuri daftar untuk memeriksanya.
Seringkali, Anda mungkin ingin mengekstrak nilai header tertentu untuk validasi. Misalnya, untuk menguji API otentikasi, Anda mungkin ingin memastikan bahwa API tersebut mengembalikan token yang valid dalam respons.
Apidog akan secara otomatis membuat variabel yang menyimpan nilai header tersebut. Anda kemudian dapat mereferensikan variabel ini dalam langkah-langkah pengujian berikutnya untuk memvalidasi nilai tersebut. Ini memberikan cara yang mudah untuk menarik header respons untuk verifikasi.
Contoh header respons dari sebuah API:

Untuk mengekstrak seluruh nilai header dengan kunci "Session-Token", Anda cukup memasukkan nama kunci di bagian "Post Action" untuk API.

Namun, bagaimana jika Anda hanya ingin mengekstrak sebagian dari nilai header Session-Token, seperti hanya nilai msToken? Dalam hal ini, Anda perlu menggunakan skrip dengan ekspresi reguler untuk melakukan ekstraksi.
Untuk mengekstrak nilai Token dari Session-Token, skrip yang diperlukan adalah:
pm.response.headers.toJSON()[2]['value'].toString().match(/msToken=([^;\s"]+)/)[1]
Dalam skrip ini, pertama-tama kita mendapatkan nilai header Session-Token lengkap menggunakan pm.response.headers. Kemudian kita menggunakan ekspresi reguler untuk mengekstrak hanya nilai msToken dari Session-Token. Ini mengembalikan array, jadi kita mengindeks ke dalam array untuk mendapatkan nilai sebenarnya.
Mengekstrak Konten Badan Respons
Selain header, badan respons berisi payload yang dikembalikan oleh API. Untuk menganalisis konten respons, Anda pertama-tama perlu mengekstrak atau mengurainya.
Jika respons adalah data JSON, Apidog dapat secara otomatis mengubahnya menjadi variabel JSON terstruktur. Untuk mengaktifkan ini:
- Di bagian "Post Processors" untuk API, pilih "Extract Variable".

2. Isi ekspresi JSONPath dan opsi lainnya.

3. Setelah mengaturnya, kirim permintaan. Apidog akan mengekstrak nilai bidang yang sesuai dari data respons berdasarkan ekspresi JSONPath yang Anda berikan. Nilai yang diekstrak akan secara otomatis disimpan dalam variabel "Environment/Global/Temporary".
Apidog akan mengurai JSON dan membuat variabel untuk data yang dapat Anda referensikan dalam langkah-langkah pengujian selanjutnya.
Untuk konten non-JSON seperti XML atau teks biasa, Anda mungkin perlu mengekstrak bagian-bagian tertentu menggunakan ekspresi reguler. Apidog mendukung pembuatan pola regex secara visual untuk mencocokkan dan mengekstrak substring atau nilai dalam respons.

Kesimpulannya
Mampu mengekstrak data respons sangat penting untuk pengujian API yang efektif. Apidog menyediakan alat bawaan yang fleksibel untuk mengekstrak baik header maupun konten badan respons. Ekstraksi JSON otomatis menangani kasus penggunaan umum sementara regex memberi Anda kendali penuh untuk respons yang kompleks.
Terapkan teknik ekstraksi data ini ke dalam pengujian API Anda untuk menyederhanakan validasi dan meningkatkan cakupan. Apidog memungkinkan Anda mengubah data respons menjadi variabel yang dapat ditindaklanjuti untuk memastikan detail penting dan mendukung langkah-langkah pengujian lanjutan. Pengujian yang lebih kuat menghasilkan API berkualitas lebih tinggi dan pengalaman pengguna yang lebih baik.