[TUTORIAL] Menggunakan Postman untuk melakukan API Testing

Assalamu‘alaikum wr. wb.

Hello guys! Jika kita ingin menghubungkan Data atau Koneksi Internet yang membutuhkan API, tentunya harus melakukan Testing terlebih dahulu. Sebenarnya, di Postman tidak hanya dapat diakses di Web saja, melainkan juga tersedia Aplikasi Software. Kali ini, kita akan melakukan Testing API dengan menggunakan Postman Web.

Sumber Tutorial : Guru99.com dan Softwaretestinghelp.com


PENGERTIAN

Postman adalah alat Pengujian API yang dapat diukur dan mudah diintegrasikan ke dalam jalur CI/CD. Tools ini dimulai pada Tahun 2012 sebagai proyek sampingan oleh Abhinav Asthana untuk menyederhanakan alur kerja API dalam pengujian dan pengembangan. API singkatan dari Application Programming Interface yang memungkinkan aplikasi perangkat lunak berkomunikasi satu sama lain melalui panggilan API.

Mengapa Menggunakan Postman?

Dengan lebih dari 4 juta pengguna saat ini, Perangkat Lunak Postman telah menjadi alat pilihan karena alasan berikut :

  • Aksesibilitas – Untuk menggunakan alat Postman, seseorang hanya perlu masuk ke akun mereka sendiri sehingga mudah untuk mengakses file kapan saja, di mana saja selama aplikasi Postman diinstal di komputer.
  • Penggunaan Koleksi – Postman memungkinkan pengguna membuat koleksi untuk panggilan API Postman mereka. Setiap koleksi dapat membuat subfolder dan beberapa permintaan. Ini membantu dalam mengatur suite pengujian Anda.
  • Kolaborasi – Koleksi dan lingkungan dapat diimpor atau diekspor sehingga mudah untuk berbagi file. Tautan langsung juga dapat digunakan untuk berbagi koleksi.
  • Menciptakan Lingkungan – Memiliki banyak lingkungan membantu mengurangi pengulangan pengujian karena seseorang dapat menggunakan koleksi yang sama tetapi untuk lingkungan yang berbeda. Disinilah akan terjadi parameterisasi yang akan kita bahas pada pelajaran selanjutnya.
  • Pembuatan Pengujian – Titik pemeriksaan pengujian seperti memverifikasi status respons HTTP yang berhasil dapat ditambahkan ke setiap panggilan Postman API yang membantu memastikan cakupan pengujian.
  • Pengujian Otomasi – Melalui penggunaan Collection Runner atau Newman, pengujian dapat dijalankan dalam beberapa iterasi yang menghemat waktu untuk pengujian berulang.
  • Debugging - Konsol Postman membantu memeriksa data apa yang telah diambil sehingga memudahkan pengujian debug.
  • Integrasi Berkelanjutan – Dengan kemampuannya untuk mendukung integrasi berkelanjutan, praktik pengembangan dipertahankan.


TUTORIAL

Berikut, inilah Tutorial menguji API dengan menggunakan Postman Web.

1. Membuat dan Mempersiapkan Postman Web

Pertama, bukalah Situs Utama dari Postman, kemudian klik "Sign Up for Free".

Kemudian, klik "Sign up with Google" untuk menghubungkan ke Akun Google Anda.

Jika seperti ini, maka klik "Accept" untuk melanjutkan ke Dashboard Utama dari Postman Web.

Selanjutnya, jika seperti ini maka kamu akan ditanyakan tentang Profesimu, dan klik Tombol "Continue".

Kemudian, jika seperti pada Gambar di bawah ini maka klik saja pada "Continue without Team".


Kemudian, kita akan diarahkan kepada Tampilan Dashboard.

Jika sudah, maka akan diarahkan ke bagian Overview Postman Web. Kemudian, klik pada "Collections" di samping Kiri Atas.


Lalu, klik Tombol Plus (+) dan namailah Collection pada Workspace yang telah Anda buat di Postman.

Kemudian, klik pada Titik Tiga Datar (⋯) dan klik "Add Request".


Kemudian, namai Request Anda.

2. Bekerja dengan GET Request

Dapatkan permintaan digunakan untuk mengambil informasi dari URL yang diberikan. Tidak akan ada perubahan yang dilakukan pada titik akhir.

Kami akan menggunakan URL berikut untuk semua contoh dalam tutorial Postman ini.

https://jsonplaceholder.typicode.com/users

Dalam Workspace :

  • Setel Permintaan/Request HTTP Anda ke GET.
  • Di bidang URL permintaan, masukkan tautan
  • Klik Kirim
  • Anda akan melihat 200 Pesan OK
  • Harus ada 10 hasil pengguna di badan yang menunjukkan bahwa pengujian Anda telah berjalan dengan sukses.

Kemudian, klik pada Tombol "Send", maka akan seperti ini :

Jika tertulis Kode Angka 200, maka telah Sukses mengirim Request untuk Respons Spesifik.

Inilah isi dari Kode JSON di atas :

[
    {
        "id": 1,
        "name": "Leanne Graham",
        "username": "Bret",
        "email": "Sincere@april.biz",
        "address": {
            "street": "Kulas Light",
            "suite": "Apt. 556",
            "city": "Gwenborough",
            "zipcode": "92998-3874",
            "geo": {
                "lat": "-37.3159",
                "lng": "81.1496"
            }
        },
        "phone": "1-770-736-8031 x56442",
        "website": "hildegard.org",
        "company": {
            "name": "Romaguera-Crona",
            "catchPhrase": "Multi-layered client-server neural-net",
            "bs": "harness real-time e-markets"
        }
    },
    {
        "id": 2,
        "name": "Ervin Howell",
        "username": "Antonette",
        "email": "Shanna@melissa.tv",
        "address": {
            "street": "Victor Plains",
            "suite": "Suite 879",
            "city": "Wisokyburgh",
            "zipcode": "90566-7771",
            "geo": {
                "lat": "-43.9509",
                "lng": "-34.4618"
            }
        },
        "phone": "010-692-6593 x09125",
        "website": "anastasia.net",
        "company": {
            "name": "Deckow-Crist",
            "catchPhrase": "Proactive didactic contingency",
            "bs": "synergize scalable supply-chains"
        }
    },
    {
        "id": 3,
        "name": "Clementine Bauch",
        "username": "Samantha",
        "email": "Nathan@yesenia.net",
        "address": {
            "street": "Douglas Extension",
            "suite": "Suite 847",
            "city": "McKenziehaven",
            "zipcode": "59590-4157",
            "geo": {
                "lat": "-68.6102",
                "lng": "-47.0653"
            }
        },
        "phone": "1-463-123-4447",
        "website": "ramiro.info",
        "company": {
            "name": "Romaguera-Jacobson",
            "catchPhrase": "Face to face bifurcated interface",
            "bs": "e-enable strategic applications"
        }
    },
    {
        "id": 4,
        "name": "Patricia Lebsack",
        "username": "Karianne",
        "email": "Julianne.OConner@kory.org",
        "address": {
            "street": "Hoeger Mall",
            "suite": "Apt. 692",
            "city": "South Elvis",
            "zipcode": "53919-4257",
            "geo": {
                "lat": "29.4572",
                "lng": "-164.2990"
            }
        },
        "phone": "493-170-9623 x156",
        "website": "kale.biz",
        "company": {
            "name": "Robel-Corkery",
            "catchPhrase": "Multi-tiered zero tolerance productivity",
            "bs": "transition cutting-edge web services"
        }
    },
    {
        "id": 5,
        "name": "Chelsey Dietrich",
        "username": "Kamren",
        "email": "Lucio_Hettinger@annie.ca",
        "address": {
            "street": "Skiles Walks",
            "suite": "Suite 351",
            "city": "Roscoeview",
            "zipcode": "33263",
            "geo": {
                "lat": "-31.8129",
                "lng": "62.5342"
            }
        },
        "phone": "(254)954-1289",
        "website": "demarco.info",
        "company": {
            "name": "Keebler LLC",
            "catchPhrase": "User-centric fault-tolerant solution",
            "bs": "revolutionize end-to-end systems"
        }
    },
    {
        "id": 6,
        "name": "Mrs. Dennis Schulist",
        "username": "Leopoldo_Corkery",
        "email": "Karley_Dach@jasper.info",
        "address": {
            "street": "Norberto Crossing",
            "suite": "Apt. 950",
            "city": "South Christy",
            "zipcode": "23505-1337",
            "geo": {
                "lat": "-71.4197",
                "lng": "71.7478"
            }
        },
        "phone": "1-477-935-8478 x6430",
        "website": "ola.org",
        "company": {
            "name": "Considine-Lockman",
            "catchPhrase": "Synchronised bottom-line interface",
            "bs": "e-enable innovative applications"
        }
    },
    {
        "id": 7,
        "name": "Kurtis Weissnat",
        "username": "Elwyn.Skiles",
        "email": "Telly.Hoeger@billy.biz",
        "address": {
            "street": "Rex Trail",
            "suite": "Suite 280",
            "city": "Howemouth",
            "zipcode": "58804-1099",
            "geo": {
                "lat": "24.8918",
                "lng": "21.8984"
            }
        },
        "phone": "210.067.6132",
        "website": "elvis.io",
        "company": {
            "name": "Johns Group",
            "catchPhrase": "Configurable multimedia task-force",
            "bs": "generate enterprise e-tailers"
        }
    },
    {
        "id": 8,
        "name": "Nicholas Runolfsdottir V",
        "username": "Maxime_Nienow",
        "email": "Sherwood@rosamond.me",
        "address": {
            "street": "Ellsworth Summit",
            "suite": "Suite 729",
            "city": "Aliyaview",
            "zipcode": "45169",
            "geo": {
                "lat": "-14.3990",
                "lng": "-120.7677"
            }
        },
        "phone": "586.493.6943 x140",
        "website": "jacynthe.com",
        "company": {
            "name": "Abernathy Group",
            "catchPhrase": "Implemented secondary concept",
            "bs": "e-enable extensible e-tailers"
        }
    },
    {
        "id": 9,
        "name": "Glenna Reichert",
        "username": "Delphine",
        "email": "Chaim_McDermott@dana.io",
        "address": {
            "street": "Dayna Park",
            "suite": "Suite 449",
            "city": "Bartholomebury",
            "zipcode": "76495-3109",
            "geo": {
                "lat": "24.6463",
                "lng": "-168.8889"
            }
        },
        "phone": "(775)976-6794 x41206",
        "website": "conrad.com",
        "company": {
            "name": "Yost and Sons",
            "catchPhrase": "Switchable contextually-based project",
            "bs": "aggregate real-time technologies"
        }
    },
    {
        "id": 10,
        "name": "Clementina DuBuque",
        "username": "Moriah.Stanton",
        "email": "Rey.Padberg@karina.biz",
        "address": {
            "street": "Kattie Turnpike",
            "suite": "Suite 198",
            "city": "Lebsackbury",
            "zipcode": "31428-2261",
            "geo": {
                "lat": "-38.2386",
                "lng": "57.2232"
            }
        },
        "phone": "024-648-3804",
        "website": "ambrose.net",
        "company": {
            "name": "Hoeger LLC",
            "catchPhrase": "Centralized empowering task-force",
            "bs": "target end-to-end models"
        }
    }
]

3. Bekerja dengan POST Request

Post Request berbeda dari permintaan Dapatkan karena ada manipulasi data di mana pengguna menambahkan data ke titik akhir. Mari tambahkan pengguna kita sendiri menggunakan data yang sama dengan GET Request sebelumnya.

Pertama, klik "Body" kemudian klik "Raw" dan Ganti dari Text menjadi JSON. Seperti pada Gambar di bawah ni.

Salin dan tempel hasil pengguna dari Get Request sebelumnya seperti di bawah ini. Pastikan kode telah disalin dengan benar dengan kurung kurawal dan tanda kurung siku digabungkan. Ubah pengenal menjadi 11 dan nama menjadi nama yang diinginkan. Anda juga dapat mengedit detail lainnya seperti alamat.

[
    {
        "id": 11,
        "name": "Inzaghi Posuma",
        "username": "Bret",
        "email": "Sincere@april.biz",
        "address": {
            "street": "Kulas Light",
            "suite": "Apt. 556",
            "city": "Gwenborough",
            "zipcode": "92998-3874",
            "geo": {
                "lat": "-37.3159",
                "lng": "81.1496"
            }
        },
        "phone": "1-770-736-8031 x56442",
        "website": "hildegard.org",
        "company": {
            "name": "Romaguera-Crona",
            "catchPhrase": "Multi-layered client-server neural-net",
            "bs": "harness real-time e-markets"
        }
    }
]

Catatan : Permintaan Pos Online harus memiliki format yang benar untuk memastikan bahwa data yang diminta akan dibuat. Sebaiknya gunakan Get first untuk memeriksa format JSON permintaan. Anda dapat menggunakan alat seperti https://jsonformatter.curiousconcept.com.

Kemudian, klik "Send", dan statusnya adalah 201 yang berarti "Dibuat harus ditampilkan".

4. Cara Membuat Parameter Permintaan

Parameterisasi Data adalah salah satu fitur Postman yang paling berguna. Alih-alih membuat permintaan yang sama dengan data yang berbeda, Anda dapat menggunakan variabel dengan parameter. Data ini bisa dari file data atau variabel lingkungan. Parameterisasi membantu menghindari pengulangan pengujian yang sama dan iterasi dapat digunakan untuk pengujian otomasi.

Parameter dibuat melalui penggunaan tanda kurung kurawal ganda, yaitu {{sample}}. Mari kita lihat contoh penggunaan parameter dalam permintaan kita sebelumnya :


Untuk selengkapnya, silakan lihat di sini.


VIDEO

Untuk melihat Tutorial Postman secara lengkap, silakan lihat pada Video-video YouTube di bawah ini.


Itulah Tutorial Cara menggunakan Postman untuk melakukan API Testing. Mohon maaf apabila ada kesalahan apapun. 

Terima Kasih 😄😘👌👍 :)

Wassalamu‘alaikum wr. wb.

Post a Comment

Previous Post Next Post