Mengenal dan cara melakukan API testing

Duh, kalo mata sudah melek begini dan sulit untuk memejamkannya kembali walaupun masih tergolong pagi banget, yak sekarang jam menunjukan pukul 3 pagi waktu Indonesia tengah. Berati musti ada pelampiasaan kegiatan pagi yang menyehatkan bathin, so saya buka laptop, putar spotify dengan list Peacefull Guitar dan membuka dasboard Rumah Kedua untuk menuliskan beberapa kata sambil melemaskan jemari pagi ini.

Mumpung masih ingat, pada kesempatan yang sangat pagi ini saya ingin berbagi mengenai salah satu jenis testing yang biasa dilakukan untuk memberikan cakupan atau coverage yang lebih luas pada pengujian fungsionalitas (functional testing) yaitu API testing.

Cakupan pada postingan pertama saya pada API testing ini hanya pada apa dan bagaimana melakukan API testing. Jadi hanya bagian kecil saja dari API testing tersebut.

Apa itu API testing, API testing adalah test yang dilakukan pada layer dimana API (Application Program Interface) yang di desain untuk berinteraksi/komunikasi pada aplikasi di pastikan functionalitasnya, melalui rangkaian atau set dari sebuah test. Sederhanannya API testing diharapkan bisa memberikan gambaran tentang bagaimana response dari aplikasi web tanpa atau sebelum GUI nya siap atau dalam proses.

Sehingga mengapa API testing dilakukan pada setidaknya memiliki tujuan yakni meluaskan cakupan testing itu sendiri dan melakukan testing sedini mungkin dimana GUI masih belum sepenuhnya siap untuk diikutsertakan dalam proses testing.

Untuk tools yang saya gunakan untuk melakukan API testing adalah SoapUI versi 5.4.0 dan untuk melakukan manipulasi metode-metode pada API testing saya menggunakan JSON server. Referensi bagaimana installasi dan cara menggunakan SoapUI, JSON server bisa di temukan dengan mudah di internet, sudah banyak sekali yang mengulasnya dalam tutorial.

Okay jadi pertama yang akan kita lakukan adalah start JSON server, sebelumnya pastikan folder sudah diarahkan pada file JSON yang akan kita pakai sebagai database, file JSON yang saya gunakan adalah db.json. Kemudian, jalankan cmd,

"json-server --watch db.json"

Bila JSON server sudah up and running akan memberi respon seperti screen shoot dibawah

Resources yang tertera adalah alamat API yang kan akan kita test, dimana ada 3 alamat API untuk post, comments dan profile. Bila saya buka di broswer dengan mengarahkan ke http://localhost:3000/posts maka response yang akan saya dapatkan adalah sebagai berikut

Dengan mengarakan url API ke browser dan memastikan reponse dari browser sudah bisa dikatakan melakukan API testing, namun karena data post pada sample JSON file yang kita gunakan hanya satu jadi bisa di komparasi langsung, namun bagaimana kalo object, array dan value nya banyak? atau bagaimana functional yang kita test juga tidak hanya get request? Nah untuk mengcover scenario test yang akan kita gunakan maka kita menggunakan SoapUI

Kita jalankan SoapUI dan buat sebuah project name sesuai dengan attribute JSON file yang kita gunakan. Dan dalam project tersebut kita jalankan request nya maka kita akan mendapatkan response yang sama persis dengan pada browser diatas.

Nah bila kita komparasi seperti manual testing maka untuk expected result nya adalah dengan menambahkan assertions pada response code, header dan atau body content.  Berikut salah satu assertions yang saya tambahkan pada request dimana memastikan response dari get requestnya benar.

Pada project kita tambahkan TestSuite >> TestCase >> Test Steps >> Rest Request dan run akan didapatkan repsonse seperti diatas

Kemudian tambahkan Assertions dengan klik icon + warna hijau >> Add Assertion window (Property Content) >> Contains >> klik tombol Add  >> Rename Assertion pop-up (isi nama content yang mau kita assertion, pada contoh misal content yang akan kita assert adalah title) >> Contains Assertion ( kita masukan contennya yang pada contoh adalah “json-server“.

Lalu kita run kembali maka pada tab Assertions akan memberikan warna hijau (VALID), menandakan request memberikan response sesuai dengan expected content yang kita set. Namun bila content reponse content tidak temukan pada request atau tidak sesuai expected result makan assertions nya akan berwana merah.

Diatas adalah simple test untuk memastikan reponse request saja, masih banyak scenario lainnnya tergantun pada kompleksitas test yang diinginkan. Jadi sekian dulu postingan singkat kali ini, semoga memberikan sedikit gambaran bagaimana API testing dilakukan. Lebih menariknya lagi, SoapUI project bisa dijalankan melalui cmd sehingga automation pada API testing bisa dilakukan, terutama untuk kebutuhan regression testing. Untuk sample project dan db.json yang saya gunakan bisa di clone di github saya

Tak terasa 2,5 jam berlalu, saya sudahi saja postingannya dengan mengucap selamat pagi kembali. Terima kasih.

Leave a Reply

Your email address will not be published. Required fields are marked *