Cara Menambahkan Percabangan If/Else dan Kontrol Aliran ke Skenario Tes API di Apidog

Tambahkan percabangan bersyarat if/else dan kontrol alur ke skenario pengujian API di Apidog sehingga eksekusi bercabang berdasarkan respons sebelumnya, ditambah otomatisasi CLI.

Ashley Innocent

Ashley Innocent

15 July 2026

Cara Menambahkan Percabangan If/Else dan Kontrol Aliran ke Skenario Tes API di Apidog

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Sebagian besar tes API berjalan lurus. Panggil login, panggil checkout, panggil endpoint tanda terima, verifikasi sepanjang jalan. Itu berfungsi dengan baik sampai suatu langkah dapat gagal dengan cara yang bergantung pada langkah berikutnya. Jika login mengembalikan 401, menjalankan permintaan checkout tidak ada gunanya. Lebih buruk lagi, hal itu menyembunyikan kegagalan yang sebenarnya di balik kegagalan kedua yang menyesatkan. Yang Anda inginkan adalah tes yang membaca respons login, memutuskan apakah akan melanjutkan, dan melaporkan kebenaran tentang di mana masalahnya.

Keputusan tersebut adalah logika kondisional, dan Anda membangunnya dengan kontrol alur. Panduan ini menunjukkan kepada Anda cara menambahkan percabangan if/else ke skenario tes API di Apidog sehingga suatu eksekusi dapat bercabang berdasarkan respons sebelumnya. Anda akan membangun skenario nyata: login, periksa kode status, dan lanjutkan ke checkout hanya jika login benar-benar berhasil. Jika Anda baru mengenal skenario Apidog, panduan tentang cara menulis skenario tes dengan Apidog mencakup dasar-dasar linear yang dibangun oleh artikel ini. Untuk definisi pola percabangan itu sendiri, panduan MDN tentang pernyataan kondisional adalah pengantar yang bagus. Anda dapat mengunduh Apidog dan mengikuti secara gratis.

tombol

Apa itu kontrol alur, dan apa yang bukan kontrol alur

Di Apidog, tes otomatis berada di modul Tes. Unit kerja Anda adalah Skenario Tes, yang digambarkan dalam dokumen sebagai analog dengan Koleksi di Postman. Di dalam skenario, Anda menyusun Langkah-Langkah Tes: setiap langkah adalah permintaan individual atau elemen kontrol alur seperti percabangan, loop, atau penundaan.

Kontrol alur di Apidog. Sebuah skenario tes menunjukkan langkah-langkah yang berurutan, dengan satu langkah yang diperbesar menunjukkan pengaturan permintaan, pasca-pemroses, dan pra-pemroses.

Kontrol alur adalah kumpulan elemen kontrol alur. Ini memungkinkan skenario melakukan lebih dari sekadar menjalankan permintaan secara berurutan. Dokumentasi Apidog tentang kontrol alur dan percabangan kondisional adalah referensi di balik setiap label yang digunakan di sini. Yang menjadi fokus artikel ini adalah Percabangan Kondisional, yang merupakan nama Apidog untuk if/else. Sebuah percabangan membaca nilai yang Anda berikan, menguji nilai tersebut terhadap suatu kondisi, dan menjalankan satu set langkah ketika kondisi terpenuhi dan set langkah lain ketika tidak.

Satu klarifikasi di awal, karena keduanya sering disalahpahami. Percabangan bukanlah pengulangan (looping). Sebuah percabangan memutuskan sekali apakah suatu blok langkah akan berjalan. Sebuah loop menjalankan suatu blok berkali-kali. Apidog memiliki fitur terpisah untuk iterasi, yang disebut For Loops dan ForEach Loops, dan fitur ini termasuk dalam masalah yang berbeda: mengulang permintaan yang sama di seluruh rentang atau di seluruh item dalam sebuah array. Jika Anda perlu menelusuri array ID pesanan, itu adalah loop ForEach, yang dibahas dalam tutorial loop ForEach, bukan percabangan. Panduan ini tetap membahas if/else.

Dokumen Apidog tidak mencantumkan batasan gratis-versus-berbayar pada kontrol alur, percabangan kondisional, loop, atau penerusan data antar langkah. Juga tidak ada perbedaan cloud-versus-self-hosted yang dicatat untuk fitur-fitur ini. Jika Anda dapat membangun skenario, Anda dapat menambahkan percabangan padanya.

Bangun skenario yang bercabang berdasarkan respons login

Inilah tujuannya. Pengguna login. Jika endpoint login mengembalikan 200, skenario dilanjutkan untuk membuat checkout. Jika mengembalikan yang lain, skenario berhenti dan melaporkan kegagalan alih-alih berpura-pura checkout berhasil.

Langkah 1: buat skenario tes

Buka Apidog dan masuk ke modul Tes. Klik + di samping bilah pencarian untuk membuat Skenario Tes baru, pilih direktori tempat skenario tersebut harus berada, dan atur prioritas untuk menyelesaikan pembuatan. Sekarang Anda memiliki skenario kosong yang siap untuk langkah-langkah.

Langkah 2: tambahkan permintaan login sebagai langkah pertama

Tambahkan Langkah Tes pertama Anda. Apidog memberi Anda beberapa cara untuk memasukkan permintaan: impor dari spesifikasi endpoint yang sudah ada, impor dari kasus endpoint yang tersimpan, tambahkan permintaan khusus secara langsung, atau tambahkan dari string cURL. Untuk memulai dengan cepat, tambahkan permintaan khusus. Atur ke POST dan arahkan ke endpoint otentikasi Anda dengan badan JSON:

POST https://api.your-store.com/v1/login
Content-Type: application/json

{
  "email": "dana@example.com",
  "password": "correct-horse-battery-staple"
}

Jalankan langkah ini sekali saja untuk memastikan ia mengembalikan apa yang Anda harapkan. Login yang berhasil mengembalikan 200 dan token di badan, seperti:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "userId": "usr_10482"
}

Langkah 3: masuk mode orkestrasi

Klik langkah apa pun untuk masuk ke mode orkestrasi. Panel kiri menunjukkan alur keseluruhan skenario; panel kanan menunjukkan detail dari langkah mana pun yang Anda pilih. Tampilan terpisah ini adalah tempat Anda mengatur percabangan. Jika Anda perlu menyusun ulang langkah-langkah, seret ikon pada langkah tersebut untuk memindahkannya.

Langkah 4: tambahkan percabangan kondisional

Klik tombol Add Step. Ini adalah cara utama untuk menyisipkan elemen kontrol alur apa pun. Dari menu, pilih Conditional Branching. Itu akan membuat pernyataan If, sebuah percabangan kosong yang menunggu kondisi dan beberapa langkah untuk dijalankan.

Sekarang bangun kondisinya. Anda perlu memasukkan kode status respons login ke dalam percabangan. Apidog membangun kondisi dari seperangkat operator penilaian yang tetap. Daftar lengkapnya adalah: Equals (Sama Dengan), Does not equal (Tidak Sama Dengan), Exists (Ada), Does not exist (Tidak Ada), Less than (Kurang dari), Less than or equal (Kurang dari atau sama dengan), Greater than (Lebih besar dari), Greater than or equal (Lebih besar dari atau sama dengan), Matches with Regex (Cocok dengan Regex), Contains (Mengandung), Does not contain (Tidak mengandung), Is empty (Kosong), Is not Empty (Tidak Kosong), In List (Dalam Daftar), dan Not in List (Tidak Dalam Daftar).

Untuk percabangan ini, Anda ingin kode status login sama dengan 200. Jadi kondisinya berbunyi: status respons login Equals 200.

Langkah 5: referensikan respons sebelumnya dalam kondisi

Untuk memasukkan hasil login ke bidang kondisi, Anda memiliki dua metode.

Metode pertama tidak memerlukan pengaturan. Klik bidang nilai kondisi dan klik ikon tongkat sihir, lalu pilih Retrieve pre-step data. Apidog memungkinkan Anda menunjuk langsung ke langkah login sebelumnya dan menarik nilai dari responsnya. Di balik layar, ini menggunakan referensi pra-langkah dengan sintaks {{$.<step id>.response.body.<field path>}}. Jika Anda ingin token dari badan login alih-alih status, misalnya, Anda akan mereferensikan {{$.1.response.body.token}}, di mana 1 adalah ID langkah login.

Referensi data pra-langkah di Apidog. Dialog

Dua hal yang perlu diketahui tentang Retrieve pre-step data. Ini hanya berfungsi di modul Tes, bukan di modul API. Dan itu hanya diselesaikan saat Anda menjalankan seluruh skenario, bukan saat Anda menjalankan satu langkah secara terpisah. Jika referensi pra-langkah terlihat kosong selama eksekusi tunggal, itu wajar; jalankan skenario lengkap dan itu akan terisi.

Metode kedua menggunakan variabel bernama dan berfungsi di modul Tes maupun API. Dalam permintaan login, buka pra-pemrosesnya dan tambahkan tindakan Extract Variable. Ekstrak bidang yang Anda pedulikan dengan ekspresi JSONPath, misalnya $.token, dan Apidog akan menyimpannya dengan suatu nama. Anda kemudian mereferensikannya di mana saja nanti sebagai {{token}}. Ini adalah pendekatan yang lebih portabel ketika Anda ingin nilai yang sama tersedia di seluruh modul atau di beberapa percabangan. Mekanisme yang lebih dalam untuk memindahkan nilai antar langkah dibahas dalam panduan tentang cara meneruskan data antar langkah tes.

Untuk percabangan kode status, Retrieve pre-step data pada status langkah login adalah jalur terpendek.

Langkah 6: tambahkan percabangan else

Arahkan kursor ke blok If dan klik + Else. Itu memberi Anda jalur alternatif yang berjalan ketika kondisi salah, yang berarti login tidak mengembalikan 200.

Sekarang isi kedua sisi:

Skenario Anda sekarang terbaca seperti logika sederhana: jika login sama dengan 200, jalankan checkout; jika tidak, laporkan dan berhenti.

Langkah 7: simpan

Klik Save All untuk menyimpan skenario. Perubahan yang belum disimpan ditandai dengan indikator titik, jadi jika Anda melihat titik itu, Anda masih punya pekerjaan untuk disimpan. Jalankan skenario lengkap dan perhatikan bagaimana percabangan diselesaikan. Arahkan login ke kredensial yang valid dan blok If akan aktif. Arahkan ke kredensial yang salah dan blok Else akan aktif sebagai gantinya.

Variasi dan kontrol alur tingkat lanjut

Setelah percabangan dasar berfungsi, blok bangunan yang sama mencakup banyak hal.

Bercabang berdasarkan bidang body, bukan hanya status. Kode status adalah kasus umum, tetapi kondisi membaca nilai apa pun yang dapat Anda referensikan. Misalkan login Anda mengembalikan 200 bahkan untuk akun yang terkunci, dengan status sebenarnya di bidang status. Ambil {{$.1.response.body.status}} dan gunakan operator Equals terhadap "active", atau gunakan Contains terhadap string pesan. Daftar operator juga memberi Anda pemeriksaan rentang: Greater than pada saldo yang dikembalikan, In List untuk menguji apakah peran yang dikembalikan adalah salah satu dari beberapa nilai yang diizinkan.

Gabungkan percabangan dengan loop. Percabangan dan iterasi bersatu. Di dalam loop ForEach yang mengulang array ID produk, langkah Percabangan Kondisional dapat melewatkan produk yang tidak tersedia dan memproses sisanya. Referensi indeks loop {{$.<loop step id>.index}} dimulai dari 0, dan elemen ForEach adalah {{$.<loop step id>.element.<field path>}}. Loop adalah topik tersendiri; tutorial loop ForEach membahasnya secara menyeluruh.

Screenshot pengaturan loop ForEach di Apidog, menunjukkan blok

Hentikan loop lebih awal dengan Break If. Ketika Anda melakukan iterasi, elemen Break If condition mengakhiri loop segera setelah suatu kondisi terpenuhi. Anda dapat menyeretnya untuk mengubah posisinya dan menambahkannya lebih dari sekali dalam satu loop.

Tangani kesalahan dengan On Error. Loop memiliki elemen On Error yang terpasang di awal loop, yang tidak dapat Anda pindahkan. Opsi-opsinya menentukan apa yang terjadi ketika permintaan di dalam loop mengalami kesalahan: Ignore melanjutkan dengan permintaan berikutnya, Continue melewati sisa permintaan siklus saat ini, Break execution menghentikan loop dan melanjutkan setelahnya, dan End execution menghentikan seluruh skenario.

Tambahkan Tunggu di antara langkah-langkah. Terkadang layanan downstream membutuhkan jeda sebelum mencerminkan penulisan. Elemen Wait menambahkan penundaan yang diukur dalam milidetik, berguna antara panggilan buat dan baca yang memeriksanya.

Referensi nilai di dalam skrip. Jika percabangan membutuhkan logika yang terlalu kompleks untuk daftar operator, skrip pra-pemroses atau pasca-pemroses dapat menghitungnya. Di dalam skrip, Anda tidak dapat menggunakan sintaks {{variable}} secara langsung. Gunakan pm.variables.get("$.2.response.body.token") sebagai gantinya, cocokkan ID langkah dan jalur bidang. Untuk pola yang lebih luas dari permintaan berantai sehingga satu memberi makan yang berikutnya, lihat panduan tentang permintaan berantai dan bagian yang lebih mendalam tentang orkestrasi tes API dan penerusan data.

Catatan tentang referensi diri: skenario tidak dapat mereferensikan skenario tes asli itu sendiri. Penjagaan itu mencegah loop tak terbatas yang tidak disengaja saat Anda menyarangkan skenario.

Otomatiskan alur kerja dengan Apidog CLI

Skenario yang baru saja Anda bangun tidak hanya harus berjalan di dalam aplikasi. Apidog menyediakan command-line runner yang menjalankan skenario tersimpan tanpa antarmuka, yang persis seperti yang Anda inginkan di CI. Instal dan masuk:

npm install -g apidog-cli
apidog login --with-token <YOUR_ACCESS_TOKEN>

Kemudian jalankan skenario percabangan Anda berdasarkan ID, arahkan ke lingkungan, dan pilih pelapor:

apidog run --access-token $APIDOG_ACCESS_TOKEN -t <scenario_id> -e <env_id> -r cli

Di sini -t adalah ID skenario tes, -e adalah ID lingkungan, dan -r adalah pelapor. Gunakan cli untuk output konsol, atau html dan junit untuk artefak yang dapat dipublikasikan oleh pipeline Anda; pisahkan dengan koma seperti -r html,cli untuk menghasilkan beberapa sekaligus. Percabangan diselesaikan dengan cara yang sama seperti di aplikasi: runner membaca respons login, mengambil jalur If atau Else, dan kode keluar mencerminkan hasilnya sehingga login yang gagal akan menggagalkan build. Pengaturan lengkap ada di panduan instalasi Apidog CLI, dan cara menghubungkannya ke pipeline dibahas dalam panduan Apidog CLI GitHub Actions. Jika Anda lebih suka menjalankan skenario yang sama pada waktu yang terjadwal daripada setiap komit, lihat cara menjadwalkan tes API di Apidog.

FAQ

Apa perbedaan antara Percabangan Kondisional dan loop di Apidog?

Percabangan Kondisional memutuskan sekali apakah suatu blok langkah berjalan, berdasarkan suatu kondisi. Sebuah loop menjalankan suatu blok berulang kali. Gunakan percabangan ketika Anda memiliki keputusan either/or, seperti melanjutkan ke checkout hanya jika login berhasil. Gunakan loop For atau ForEach ketika Anda perlu mengulang permintaan di seluruh hitungan atau array. Tutorial loop ForEach membahas iterasi secara lengkap.

Mengapa referensi Retrieve pre-step data saya kosong?

Dua penyebab umum. Pertama, Retrieve pre-step data hanya berfungsi di modul Tes, bukan modul API. Kedua, itu hanya diselesaikan saat Anda menjalankan seluruh skenario tes. Jika Anda menjalankan satu langkah secara terpisah, referensi tersebut belum memiliki apa pun untuk ditunjuk. Jalankan seluruh skenario dan nilainya akan terisi.

Bisakah saya bercabang pada bidang di dalam badan respons, tidak hanya kode status?

Ya. Referensikan bidang dengan ekspresi pra-langkah seperti {{$.1.response.body.status}} atau ekstrak ke dalam variabel bernama, lalu pilih operator seperti Equals, Contains, atau In List. Nilai apa pun yang dapat Anda referensikan dapat menjadi pendorong kondisi. Memindahkan nilai-nilai tersebut dibahas dalam cara meneruskan data antar langkah tes.

Bagaimana cara menggunakan variabel di dalam skrip alih-alih pembuat kondisi?

Skrip tidak menerima sintaks {{variable}}. Gunakan pm.variables.get("$.2.response.body.token") dalam skrip pra- atau pasca-pemroses, cocokkan ID langkah dan jalur bidang yang Anda inginkan.

Apakah percabangan memerlukan biaya tambahan, atau memerlukan versi self-hosted?

Dokumen Apidog tidak mencantumkan batasan paket untuk kontrol alur, percabangan kondisional, loop, atau penerusan data, dan tidak ada perbedaan cloud-versus-self-hosted untuk fitur-fitur ini. Jika Anda dapat membangun skenario, Anda dapat menambahkan percabangan padanya.

Kesimpulan

Tes linear memberi tahu Anda bahwa ada sesuatu yang rusak. Tes percabangan memberi tahu Anda di mana, dan berhenti membuang langkah-langkah pada jalur yang tidak dapat lagi berhasil. Tambahkan langkah Percabangan Kondisional, berikan respons sebelumnya dengan Retrieve pre-step data atau variabel yang diekstrak, sambungkan If dan + Else, dan skenario Anda sekarang membuat keputusan seperti yang dilakukan API Anda yang sebenarnya. Ketika berfungsi di aplikasi, satu perintah apidog run membawa logika yang sama ke CI. Coba Apidog gratis, tanpa kartu kredit, dan ubah tes linear Anda menjadi skenario yang berpikir.

Mengembangkan API dengan Apidog

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