• Tidak ada hasil yang ditemukan

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.

Dokumen terkait