Pengujian API yang efektif bergantung pada ekstraksi dan manipulasi data dari respons JSON secara efisien. Postman, platform pengembangan API yang populer, memberdayakan pengguna dengan JSONPath, bahasa kueri yang kuat yang dirancang khusus untuk menavigasi struktur JSON.
Jika Anda mencari alat API untuk melanjutkan pengembangan aplikasi atau API Anda, maka Anda harus sangat mempertimbangkan untuk menggunakan Apidog - solusi terpadu untuk semua masalah API Anda.
Jika Anda ingin mempelajari lebih lanjut tentang Apidog, klik tombol di bawah ini!
Artikel ini membahas dunia Postman JSONPath, membekali Anda dengan keterampilan untuk membuka potensi penuh interaksi API Anda.
Apa itu JSONPath?
JSON (JavaScript Object Notation) adalah format data yang ada di mana-mana untuk bertukar informasi antara API dan aplikasi. Sementara sifatnya yang mudah dibaca manusia adalah nilai tambah, respons JSON yang kompleks dengan objek dan array bersarang bisa jadi menakutkan untuk dinavigasi. Di sinilah JSONPath masuk – bahasa kueri ringkas yang dirancang khusus untuk melintasi dan mengekstrak data dari struktur JSON.
Ekspresi JSONPath menyerupai peta jalan, memandu Anda melalui hierarki JSON. Begini cara kerjanya:
Elemen Root
Elemen root diwakili oleh $
, itu menandakan seluruh dokumen JSON.
Node Anak
Notasi titik (.
) atau notasi kurung ([]
) digunakan untuk mengakses node anak.
- Notasi titik lebih disukai untuk nama properti sederhana:
$.name
memilih properti "name" dari objek root. - Notasi kurung digunakan untuk mengakses properti dengan karakter khusus atau spasi:
$['full name']
menargetkan properti "full name".
Array
Kurung siku dengan indeks mengakses elemen tertentu: $.items[1]
memilih elemen kedua dalam array "items". Wildcard (*
) dapat digunakan untuk menargetkan semua elemen: $.products[*]
memilih semua elemen dalam array "products".
Filter
Filter memungkinkan Anda mempersempit hasil berdasarkan kondisi. Misalnya, $..[?(@.price > 100)]
memilih semua objek dalam struktur JSON (dilambangkan dengan ..
) di mana "price" properti lebih besar dari 100.
Bagaimana Postman Bekerja Dengan JSONPath?
Skrip Uji
Ekspresi JSONPath dapat disematkan dalam skrip uji Postman untuk mengekstrak data tertentu dari respons dan melakukan pernyataan.
- Contoh:
pm.test("Status code is 200", () => pm.response.json().statusCode === 200);
- Contoh (dengan JSONPath):
pm.test("User ID is 123", () => pm.response.jsonPath("$.id") === 123);
Koleksi
JSONPath dapat digunakan dalam variabel koleksi untuk secara dinamis menentukan parameter permintaan berdasarkan respons sebelumnya. Ini memungkinkan untuk membangun kasus uji yang dapat digunakan kembali dan berbasis data.
- Contoh: Ambil ID pengguna dari respons sebelumnya dan gunakan dalam permintaan berikutnya:
pm.collectionVariables.set("userId", pm.response.jsonPath("$.id"));
Skrip Pra-permintaan
Ekspresi JSONPath dapat digunakan dalam skrip pra-permintaan untuk memanipulasi data sebelum mengirim permintaan.
- Contoh: Modifikasi isi permintaan berdasarkan nilai tertentu dari variabel lingkungan pengujian:
pm.request.body.set("productId", pm.environment.variables.selectedProduct.id);
Contoh Kueri JSONPath
Ini adalah beberapa contoh kueri JSONPath yang dapat diimplementasikan di bagian pra-permintaan Postman.

Contoh 1 - Logika Kondisional dengan fungsi if
Bayangkan respons dengan properti "isActive" untuk pengguna. Anda ingin mengekstrak nama mereka, tetapi hanya jika mereka aktif.
$.users[*].if(@.isActive, $.name, "Inactive")
Kode ini menggunakan fungsi if
. Jika objek pengguna saat ini memiliki properti "isActive" yang diatur ke true
, ia mengekstrak nama mereka. Jika tidak, ia mengembalikan string "Inactive".
Contoh 2 - Menemukan Nilai Minimum/Maksimum
Katakanlah Anda memiliki array "orders" dengan properti "amount" untuk setiap pesanan. Anda ingin menemukan pesanan dengan jumlah minimum dan maksimum.
$..[?(@.type == "order")].amount.min() // Jumlah minimum
$..[?(@.type == "order")].amount.max() // Jumlah maksimum
Kueri ini memanfaatkan fungsi min()
dan max()
untuk mengidentifikasi nilai masing-masing dalam properti "amount" di semua pesanan.
Contoh 3 - Meratakan Array Bersarang
Postman tidak secara native mendukung array bersarang. Jika Anda memiliki respons dengan kategori produk bersarang, Anda mungkin ingin meratakannya menjadi satu daftar.
$.categories..[*] | flatten
Kode ini menggunakan operator pipeline (|
) dan fungsi flatten
. Ia melintasi semua elemen bersarang dalam struktur "categories" dan meratakannya menjadi array satu tingkat.
Contoh 4 - Bekerja dengan Tanggal dan Angka
JSONPath dapat memanipulasi tanggal dan angka. Katakanlah Anda memiliki stempel waktu "createdAt" untuk pengguna. Anda ingin memformatnya ke format tanggal tertentu.
pm.response.json().users[*].createdAt.toString(pm.timestampFormat("YYYY-MM-DD")) // Mengasumsikan fungsi format yang telah ditentukan sebelumnya
Contoh ini menggabungkan JSONPath dengan fungsi skrip Postman (pm.timestampFormat
) untuk memformat stempel waktu "createdAt" ke dalam format yang diinginkan (YYYY-MM-DD) dalam skrip pra-permintaan.
Contoh 5 - Menggabungkan JSONPath dengan Variabel Postman
Anda dapat secara dinamis mengontrol kueri JSONPath menggunakan variabel Postman. Misalkan Anda ingin memfilter pengguna berdasarkan ID pengguna yang disimpan dalam variabel.
$.users[?(@.id == pm.variables.get("selectedUserId"))]
Di sini, pm.variables.get("selectedUserId")
mengambil nilai yang disimpan dalam variabel "selectedUserId" dan menggunakannya dalam filter JSONPath untuk pemilihan pengguna dinamis.
Apidog - Siapkan Skrip Pra-prosesor dengan Cepat
Apidog adalah alat pengembangan API komprehensif yang dapat menjadi alternatif sempurna untuk Postman bagi pengembang.

Dengan alat lengkap untuk seluruh siklus hidup API, pengembang dapat membangun, menguji, mock, dan mendokumentasikan API hanya dalam Apidog!

Menyetel Skrip API Kustom Menggunakan Apidog

Apidog menyediakan pengembang dengan fitur pembuatan kode untuk skrip kustom. Anda bisa mendapatkan dan menyetel variabel lingkungan dan lokal.

Anda juga dapat mempersonalisasi bagian pasca-prosesor API Anda, menentukan Ekspresi JSONPath dan objek target.
Membuat API Baru dengan Apidog
Apidog memberdayakan pengguna dengan tingkat fleksibilitas desain yang tinggi dalam proses pembuatan API. Ini memungkinkan pengembangan API yang secara tepat selaras dengan persyaratan fungsional aplikasi Anda atau kebutuhan spesifik pengguna yang dituju.

Mulailah dengan menekan tombol New API
, seperti yang ditunjukkan pada gambar di atas.

Setelah menetapkan fungsionalitas inti API Anda, sekarang penting untuk dengan cermat mendefinisikan karakteristik operasionalnya. Bagian ini menguraikan pertimbangan utama yang terlibat dalam proses ini:
- Metode HTTP: Pemilihan metode HTTP yang sesuai (GET, POST, PUT, DELETE) sangat penting. Metode-metode ini mengatur bagaimana pengguna berinteraksi dengan dan memanipulasi informasi dalam API Anda.
- Endpoint API: Alamat web unik (endpoint) harus dipilih untuk berfungsi sebagai titik akses bagi pengguna untuk menemukan dan berinteraksi dengan API Anda.
- Parameter Input: Perlu untuk secara jelas menentukan elemen data apa pun yang dapat dimasukkan pengguna ke dalam alamat API untuk mengambil respons tertentu.
- Fungsionalitas: Penjelasan yang jelas diperlukan untuk merinci tindakan dan hasil yang tepat yang difasilitasi oleh API Anda.
Untuk memastikan Anda membangun API yang efektif, pertimbangkan untuk meninjau artikel bermanfaat ini tentang praktik terbaik URL REST API.

Kesimpulan
Integrasi Postman dengan JSONPath membuka alat yang kuat dan serbaguna untuk menavigasi dan memanipulasi data dalam respons JSON. Dengan menguasai ekspresi JSONPath, Anda dapat secara efisien mengekstrak nilai tertentu, memfilter hasil berdasarkan kondisi, dan bahkan melakukan transformasi data yang kompleks. Ini memberdayakan Anda untuk menyederhanakan alur kerja pengujian API, mendapatkan wawasan lebih dalam dari respons, dan membangun kasus uji yang kuat yang memastikan fungsionalitas dan keandalan API Anda.
Selain itu, integrasi JSONPath yang mulus dengan kemampuan skrip Postman membuka pintu untuk kasus penggunaan yang lebih canggih. Anda dapat secara dinamis mengontrol kueri menggunakan variabel, memanfaatkan fungsi untuk manipulasi data yang canggih, dan menggabungkan JSONPath dengan skrip pra-permintaan atau skrip uji untuk mengotomatiskan tugas-tugas kompleks. Dengan merangkul kekuatan JSONPath di Postman, Anda meningkatkan proses pengembangan API Anda ke tingkat efisiensi dan efektivitas yang sama sekali baru.