DEV Community

Cover image for Perbedaan Antara Postman dan JMeter
Walse
Walse

Posted on • Originally published at apidog.com

Perbedaan Antara Postman dan JMeter

Orang sering membandingkan Postman dan JMeter seolah-olah keduanya bersaing langsung. Itu kurang tepat. Postman digunakan untuk memeriksa apakah API mengembalikan data yang benar. JMeter digunakan untuk memeriksa apakah API tetap stabil saat menerima lalu lintas tinggi. Postman menjawab: “Apakah endpoint ini benar?” JMeter menjawab: “Apakah endpoint ini tetap berjalan saat 2.000 pengguna mengaksesnya bersamaan?”

Coba Apidog hari ini

Kesalahan umum terjadi ketika tim hanya menjalankan koleksi Postman, melihat semua tes hijau, lalu menganggap API siap produksi. Padahal, mereka belum mengukur latensi, throughput, atau error rate di bawah konkurensi. Sebaliknya, menjalankan load test JMeter tidak otomatis menangkap field JSON yang salah format. Artikel ini membedakan keduanya secara praktis agar Anda tahu kapan memakai alat yang tepat.

Untuk apa Postman dibangun

Postman adalah klien API dan platform kolaborasi untuk pengujian fungsional. Anda membuat request, mengelompokkannya ke dalam collection, memakai environment variable, lalu menulis test script JavaScript untuk memvalidasi response.

Gunakan Postman untuk memeriksa:

  • status code
  • response body
  • header
  • struktur JSON
  • kontrak API
  • regresi fungsional

Contoh test script Postman:

pm.test("Status is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Response has a user id", function () {
    const body = pm.response.json();
    pm.expect(body).to.have.property("id");
    pm.expect(body.id).to.be.a("number");
});
Enter fullscreen mode Exit fullscreen mode

Ini adalah pengujian berbasis asersi untuk satu request. Postman menjalankan request, mengevaluasi asersi, lalu menampilkan hasil lulus atau gagal.

Collection Runner dapat mengulang collection dengan data berbeda, dan Postman CLI atau Newman dapat menjalankannya di CI/CD pipeline. Namun orientasinya tetap sama: memastikan API mengikuti kontrak yang diharapkan. Jika Anda ingin memperdalam pola pemeriksaan seperti ini, lihat panduan tentang asersi API.

Postman paling berguna saat development dan integrasi:

  1. Developer membuat endpoint baru.
  2. Request diuji secara manual.
  3. Test script ditambahkan.
  4. Collection dijalankan sebagai regresi.
  5. Pipeline menggagalkan build jika ada asersi rusak.

Yang tidak dilakukan Postman secara utama adalah mengukur kapasitas sistem di bawah beban besar.

Untuk apa JMeter dibangun

Apache JMeter adalah alat untuk load testing dan performance testing. Anda membuat Thread Group, yaitu kumpulan pengguna virtual, lalu mengatur:

  • jumlah thread atau pengguna virtual
  • ramp-up period
  • jumlah loop
  • sampler request
  • timer
  • assertion
  • listener atau report

JMeter kemudian mengirim request secara bersamaan dan mencatat metrik seperti:

  • latency
  • throughput
  • error rate
  • percentile response time
  • jumlah request per detik

Pertanyaan yang dijawab JMeter bersifat kuantitatif:

  • Berapa p95 latency saat 500 pengguna aktif?
  • Pada request rate berapa error rate melewati 1%?
  • Apakah koneksi database menjadi bottleneck pada 300 session bersamaan?
  • Apakah autoscaling berjalan saat traffic meningkat?

Angka seperti ini tidak bisa diperoleh dari alat yang hanya mengirim satu request pada satu waktu.

JMeter juga tidak terbatas pada HTTP. Ia dapat digunakan untuk JDBC, JMS, FTP, SMTP, TCP, dan protokol lain. Ini berguna ketika Anda menguji beban sebuah sistem, bukan hanya satu REST endpoint.

Konsekuensinya, setup JMeter lebih kompleks. Anda perlu memahami Thread Group, sampler, listener, timer, assertion, dan praktik menjalankan tes dalam mode non-GUI untuk hasil yang lebih akurat. Jika Anda baru mulai, baca juga gambaran umum pengujian kinerja.

Perbandingan Postman dan JMeter

Aspek Postman JMeter
Tujuan utama Pengujian API fungsional dan integrasi Pengujian beban, stres, dan kinerja
Pertanyaan inti Apakah response benar? Apakah API bertahan di bawah beban?
Model konkurensi Satu request pada satu waktu; Runner mengulang secara berurutan Banyak pengguna virtual secara paralel
Protokol HTTP, HTTPS, GraphQL, WebSocket, gRPC HTTP, JDBC, JMS, FTP, SMTP, TCP, dan lainnya
Scripting JavaScript test script Groovy, BeanShell, Java sampler
Output Asersi lulus/gagal per request Percentile latency, throughput, error rate
Kurva pembelajaran Lebih ramah pemula Lebih curam, cocok untuk performance engineer
Tahap terbaik Development, integrasi, regresi Validasi kapasitas dan stres pra-rilis
Pelaporan Test result, laporan Postman CLI HTML dashboard, aggregate graph

Perbedaan terbesar ada pada model konkurensi. Collection Runner Postman dapat melakukan iterasi, tetapi tidak dirancang untuk mensimulasikan ratusan atau ribuan pengguna yang membanjiri endpoint secara bersamaan. JMeter memang dibangun untuk skenario tersebut.

Kapan menggunakan Postman

Gunakan Postman ketika pertanyaan utamanya adalah kebenaran fungsional.

Contoh skenario:

  • Anda membuat endpoint baru dan ingin memvalidasi request/response.
  • Anda ingin memastikan status code sesuai.
  • Anda ingin memeriksa struktur JSON.
  • Anda ingin menjalankan regression test di setiap pull request.
  • Anda ingin melakukan pengujian kontrak.
  • Tim non-developer perlu mencoba API tanpa menulis kode.

Contoh alur CI sederhana:

postman collection run api-tests.json
Enter fullscreen mode Exit fullscreen mode

Atau dengan Newman:

newman run api-tests.json -e staging.postman_environment.json
Enter fullscreen mode Exit fullscreen mode

Jika salah satu assertion gagal, pipeline dapat dibuat gagal. Ini bagus untuk regresi fungsional, tetapi bukan load testing.

Postman juga berguna untuk pekerjaan API sehari-hari:

  • menyimpan contoh response
  • mendokumentasikan endpoint
  • membuat mock service
  • berbagi workspace
  • menyamakan request antar anggota tim

Intinya: Postman adalah alat pendamping development dan regresi fungsional.

Membaca hasil JMeter

JMeter menghasilkan angka. Anda perlu tahu angka mana yang penting.

Jangan hanya melihat average response time. Rata-rata sering menipu karena beberapa request cepat dapat menutupi request lambat.

Fokus pada percentile:

  • p90
  • p95
  • p99

Contoh:

p95 latency = 1.8s
Enter fullscreen mode Exit fullscreen mode

Artinya 95% request selesai dalam 1,8 detik atau kurang, tetapi 5% request lebih lambat dari itu. Jika 5% pengguna mengalami response lambat, itu tetap masalah nyata meskipun average terlihat baik.

Metrik penting lain:

  1. Throughput

    Jumlah request yang berhasil diproses per detik.

  2. Error rate

    Persentase request yang gagal.

  3. Concurrency level

    Jumlah pengguna virtual aktif saat metrik tersebut diukur.

Contoh interpretasi:

Users: 1,000
p95 latency: 400 ms
Error rate: 0.2%
Throughput: 2,500 req/s
Enter fullscreen mode Exit fullscreen mode

Ini bisa dianggap sehat jika sesuai target sistem Anda.

Namun:

Users: 1,000
p95 latency: 300 ms
Error rate: 6%
Throughput: 2,700 req/s
Enter fullscreen mode Exit fullscreen mode

Ini bukan hasil bagus. Response cepat tidak berarti sukses jika banyak request gagal.

Kapan menggunakan JMeter

Gunakan JMeter ketika pertanyaan utamanya adalah skala dan kapasitas.

Contoh skenario:

  • mengukur batas maksimum API sebelum rilis
  • menemukan titik ketika response time mulai naik
  • menguji autoscaling
  • melakukan soak test selama beberapa jam
  • menemukan memory leak
  • menemukan connection exhaustion
  • menjalankan spike test untuk lonjakan traffic mendadak

Contoh kasus:

Target:
- 1,000 pengguna bersamaan
- p95 latency < 400 ms
- error rate < 1%
Enter fullscreen mode Exit fullscreen mode

Jika hasil JMeter menunjukkan:

1,000 users: p95 380 ms, error 0.5%
1,500 users: p95 2.1 s, error 3%
Enter fullscreen mode Exit fullscreen mode

Maka Anda menemukan batas praktis sistem berada di antara 1.000 dan 1.500 pengguna bersamaan. Angka ini berguna untuk perencanaan kapasitas dan keputusan infrastruktur.

Postman tidak dirancang untuk menghasilkan data seperti itu. Untuk alur kerja lebih lengkap, lihat tutorial pengujian kinerja API.

Keduanya saling melengkapi, bukan saingan

Strategi pengujian API yang matang menggunakan dua tahap:

  1. Functional testing

    • berjalan lebih awal
    • berjalan sering
    • idealnya di setiap commit
    • menangkap regresi perilaku
  2. Load/performance testing

    • berjalan lebih jarang
    • biasanya sebelum rilis
    • setelah perubahan infrastruktur besar
    • menangkap regresi kapasitas

Postman memastikan API benar. JMeter memastikan API tetap benar dan responsif di bawah beban.

Contoh konkret:

Sebuah tim merilis endpoint pencarian. Pengujian Postman memastikan:

  • hasil pencarian benar
  • pagination bekerja
  • query salah format ditolak
  • response schema sesuai

Semua test hijau, lalu endpoint dirilis.

Dua minggu kemudian, kampanye marketing meningkatkan traffic 10x. Search latency naik menjadi 8 detik karena query memicu full table scan tanpa index. Postman tidak akan menangkap ini karena ia mengirim request ke sistem yang relatif idle. Load test JMeter dengan konkurensi realistis bisa mengungkap bottleneck tersebut sebelum rilis.

Kebalikannya juga bisa terjadi. Tim menjalankan JMeter dan mengoptimalkan API agar mampu menangani 5.000 pengguna. Namun endpoint mengembalikan harga yang salah karena bug caching. Load test tidak memeriksa isi response secara mendalam, sehingga bug lolos.

Kecepatan tanpa kebenaran hanya menghasilkan jawaban salah dengan cepat. Anda membutuhkan kedua perspektif.

Di mana Apidog cocok

Jika memelihara dua alat terpisah terasa berat, Apidog menggabungkan desain API, debugging, pengujian fungsional otomatis, dan mock server dalam satu platform.

Dengan Apidog, Anda dapat:

  • merancang schema API
  • mengirim request
  • membuat test scenario
  • menambahkan assertion visual
  • merangkai beberapa step menjadi automated suite
  • menjalankan API case tersimpan dengan pengguna virtual yang dapat dikonfigurasi untuk pengujian kinerja

Pendekatan satu platform mengurangi overhead ekspor, sinkronisasi, dan perpindahan konteks antara alat berbeda. Anda dapat mengunduh Apidog dan mencoba fitur pengujiannya secara gratis. Jika ingin membandingkan opsi lain, lihat rangkuman alternatif Postman terbaik untuk pengujian API.

Pertanyaan yang sering diajukan

Bisakah Postman melakukan pengujian beban?

Tidak secara signifikan. Collection Runner mengulang collection secara berurutan, dan Postman memiliki fitur pengujian kinerja dasar di aplikasi desktop. Namun untuk konkurensi realistis, kontrol ramp-up, dan percentile latency yang detail, gunakan alat yang memang dirancang untuk load testing seperti JMeter, k6, Gatling, atau modul pengujian kinerja Apidog.

Bisakah JMeter melakukan pengujian API fungsional?

Bisa. JMeter memiliki Response Assertion untuk memeriksa status code dan isi response. Namun GUI JMeter kurang nyaman untuk suite fungsional dengan banyak assertion. Kekuatan utama JMeter tetap pada konkurensi dan pengukuran performa. Banyak tim menyimpan pengujian fungsional di Postman atau Apidog, lalu memakai JMeter untuk load test.

Apakah JMeter lebih sulit dipelajari daripada Postman?

Ya. Postman lebih mudah digunakan untuk mengirim request dan menulis assertion dasar. JMeter memperkenalkan konsep seperti Thread Group, sampler, timer, listener, ramp-up, dan mode non-GUI. Jika Anda belum pernah melakukan performance testing, kurva belajarnya lebih curam.

Apakah saya membutuhkan kedua alat?

Anda membutuhkan kedua jenis pengujian jika API melayani traffic nyata: functional testing dan performance testing. Namun Anda tidak selalu harus memakai dua produk berbeda. Platform seperti Apidog menyediakan pengujian fungsional dan kinerja dalam satu workspace.

Alat mana yang menangkap query database yang lambat?

JMeter lebih cocok untuk menemukannya di bawah beban. Satu request Postman terhadap sistem idle mungkin terlihat cepat meskipun query tidak efisien. Masalah biasanya muncul saat banyak request bersamaan berebut koneksi database atau memicu query berat. Konkurensi JMeter membantu memunculkan bottleneck tersebut.

Di mana posisi k6, Gatling, dan Locust?

k6, Gatling, dan Locust adalah alternatif untuk JMeter, bukan pengganti langsung Postman. Mereka adalah alat load testing dan cenderung lebih code-oriented daripada GUI JMeter. Jika Anda tidak nyaman dengan antarmuka JMeter, salah satu dari alat tersebut layak dicoba. Namun Anda tetap membutuhkan pengujian fungsional API secara terpisah.

Seberapa sering saya harus menjalankan pengujian beban?

Lebih jarang daripada pengujian fungsional. Functional test sebaiknya berjalan di setiap commit karena cepat dan menangkap regresi perilaku. Load test lebih lambat dan memakan resource, sehingga biasanya dijalankan sebelum rilis, setelah perubahan infrastruktur besar, atau secara periodik seperti mingguan.

Top comments (0)