Pengujian API dilakukan dengan mengirimkan request ke API dengan tool Insomnia, dan menjalankan Feature dan Unit Testing dengan library PHPUnit, pada endpoint lokal.
55 1) Request ke API
Request yang dikirimkan terdiri dari Request Generate Report untuk tipe laporan API Pagination dan File, Request Check Status, dan request yang tidak valid. Pada Request Generate Report dan Check Status, dikirimkan request berbentuk JSON dan XML untuk menunjukkan apakah request berhasil untuk kedua tipe konten. Pada request yang tidak valid, hanya dikirimkan request berbentuk JSON untuk menunjukkan apakah validasi request sudah sesuai.
a) Request Generate API Pagination Report
Request yang dikirimkan untuk membuat laporan berbentuk API Pagination mengembalikan respon sukses. Hasil respon terdapat pada Gambar 3.34 (respon JSON) dan Gambar 3.35 (respon XML).
Gambar 3.34 Uji Generate API Pagination Report berbentuk JSON
56 Gambar 3.35 Uji Generate API Pagination Report berbentuk XML b) Request Generate File Report
Request yang dikirimkan untuk membuat laporan berbentuk file mengembalikan respon proses pertama kali. Background job untuk memproses file kemudian berjalan pada Redis. Setelah laporan file berhasil dibuat, request dikirimkan lagi dan API mengembalikan respon sukses.
Hasil respon sukses terdapat pada Gambar 3.36 (respon JSON) dan Gambar 3.37 (respon XML), serta respon proses terdapat pada Gambar 3.38 (respon JSON) dan Gambar 3.39 (respon XML). Tampilan background job yang berjalan pada Redis terdapat pada Gambar 3.40.
Gambar 3.36 Uji Generate File Report berbentuk JSON (respon sukses)
57 Gambar 3.37 Uji Generate File Report berbentuk XML (respon sukses)
Gambar 3.38 Uji Generate File Report berbentuk JSON (respon proses)
Gambar 3.39 Uji Generate File Report berbentuk XML (respon proses)
Gambar 3.40 Uji background job pada Redis c) Request Check Status
Request yang dikirimkan untuk membuat laporan berbentuk file mengembalikan respon proses jika file belum tersedia. Setelah laporan file tersedia, request dikirimkan lagi dan API mengembalikan respon sukses.
Hasil respon sukses terdapat pada Gambar 3.41 (respon JSON) dan
58 Gambar 3.42 (respon XML), serta respon proses terdapat pada Gambar 3.43 (respon JSON) dan Gambar 3.44 (respon XML).
Gambar 3.41 Uji Check Status berbentuk JSON (respon sukses)
Gambar 3.42 Uji Check Status berbentuk XML (respon sukses)
Gambar 3.43 Uji Check Status berbentuk JSON (respon proses)
Gambar 3.44 Uji Check Status berbentuk XML (respon proses)
59 d) Request Invalid Format
Request dengan penamaan dan nilai field yang tidak valid sesuai dengan rule setiap field dikirimkan. API kemudian mengembalikan respon invalid format. Hasil respon invalid format terdapat pada Gambar 3.45.
Gambar 3.45 Uji Validation Invalid Format berbentuk JSON e) Request Invalid Data
Request dengan username yang tidak terdaftar pada database dikirimkan.
API kemudian mengembalikan respon invalid data. Hasil respon invalid data terdapat pada Gambar 3.46.
Gambar 3.46 Uji Validation Invalid Data berbentuk JSON
60 f) Request Wrong Authentication
Request dengan signature yang tidak cocok dengan hasil hash yang seharusnya dikirimkan. API kemudian mengembalikan respon wrong authentication. Hasil respon wrong authentication terdapat pada Gambar 3.47.
Gambar 3.47 Uji Validation Wrong Authentication berbentuk JSON g) Request Date Interval Cannot More Than 31 Days
Request dengan rentang waktu tanggal awal dan tanggal akhir lebih dari 31 hari dikirimkan. API kemudian mengembalikan respon date interval cannot more than 31 days. Hasil respon date interval cannot more than 31 days terdapat pada Gambar 3.48.
Gambar 3.48 Uji Validation Date Interval Cannot More Than 31 Days berbentuk JSON
61 h) Request Data Not Found
Request dengan filter yang menyebabkan transaksi tidak dapat ditemukan, dikirimkan. API kemudian mengembalikan respon data not found. Hasil respon data not found terdapat pada Gambar 3.49.
Gambar 3.49 Uji Validation Date Not Found berbentuk JSON i) Request Page Not Found
Request dengan endpoint yang salah dikirimkan. API kemudian mengembalikan respon page not found. Hasil respon page not found terdapat pada Gambar 3.50.
Gambar 3.50 Uji Validation Page Not Found berbentuk JSON j) Request Method Not Allowed
Request dengan method yang tidak didukung dikirimkan. API kemudian mengembalikan respon method not allowed. Hasil respon method not allowed terdapat pada Gambar 3.51.
62 Gambar 3.51 Uji Validation Method Not Allowed berbentuk JSON k) Request Undefined Error
Request dengan jumlah yang melebihi batas rate dikirimkan. API kemudian mengembalikan respon undefined error. Hasil respon undefined error terdapat pada Gambar 3.52.
Gambar 3.52 Uji Validation Undefined Error berbentuk JSON
2) Feature dan Unit Testing
Feature dan Unit Testing yang dijalankan dengan PHPUnit, berhasil lolos dari setiap assertion pada setiap test case. Pada Feature Testing, test case yang diterapkan mencakup testing respon sukses berbentuk JSON dan XML untuk fitur Generate Report dengan tipe laporan API Pagination, respon proses berbentuk JSON dan XML untuk fitur Check Status, dan respon error berbentuk JSON, yaitu invalid content type, invalid format, dan invalid date interval.
Pada Unit Testing, test case diterapkan untuk Controller Testing, Service Testing, dan Repository Testing. Pada Controller Testing, test case yang diterapkan mencakup return data untuk Controller GenerateReportContoller
63 dengan tipe laporan API Pagination, dan return data sukses untuk Controller CheckStatusController. Pada Service Testing, test case yang diterapkan mencakup return data untuk Service PostpaidReportService dengan tipe laporan API Pagination, dan return data proses untuk Service CheckStatusService. Pada Repository Testing, test case yang diterapkan mencakup return data untuk method getPascaTransactions pada Repository TrPascaRepo, dan return data untuk method findUserByUsername pada Repository UserRepo. Tampilan Feature dan Unit Testing yang dijalankan pada PHPUnit terdapat pada Gambar 3.53.
Gambar 3.53 Uji Feature dan Unit Testing dengan PHPUnit
3.3.2 Kendala yang Ditemukan
Kendala yang ditemukan selama melaksanakan kerja magang adalah sebagai berikut.
a. Pengerjaan proyek menggunakan framework, tools, library yang belum pernah digunakan sebelumnya.
b. Pengerjaan proyek harus mengikuti prinsip clean code yang belum pernah diterapkan sebelumnya.
c. Pengerjaan proyek membutuhkan pemahaman pada transaksi postpaid yang belum diketahui sebelumnya.
64 3.3.3 Solusi atas Kendala yang Ditemukan
Solusi yang ditemukan selama melaksanakan kerja magang adalah sebagai berikut.
a. Mempelajari penggunaan framework, tools, dan library melalui dokumentasi resmi pada website, video dan website tutorial, serta bertanya kepada pembimbing lapangan dan anggota tim API lainnya.
b. Mempelajari struktur dan penulisan kode yang rapi pada proyek API lainnya yang dikelola oleh tim API, serta bertanya kepada pembimbing lapangan dan anggota tim API lainnya.
c. Mempelajari transaksi postpaid melalui dokumentasi produk dan website developer.mobilepulsa.net, serta bertanya kepada pembimbing lapangan dan anggota tim API lainnya.