Proyek ini adalah implementasi QAE Take Home Test untuk melakukan otomatisasi pengujian pada GoRest API menggunakan Java dengan pendekatan Behavior-Driven Development (BDD) dan Cucumber.
- Language: Java 11 (JDK)
- Framework: Cucumber (BDD)
- API Client: Rest-Assured
- Build Tool: Maven
- Assertion: Hamcrest & JUnit 4
Otomatisasi ini mencakup validasi fungsionalitas User Management sebagai berikut:
- Create User: Membuat user baru melalui
POST/public-api/users. - Get User Details: Mengambil informasi detail user melalui
GET/public-api/users/xxx. - Update User: Memperbarui data user melalui
PUT/public-api/users/xxx. - Delete User: Menghapus user dari sistem melalui
DELETE/public-api/users/xxx.
Untuk menjaga keamanan data, Access Token tidak di-hardcode di dalam script pengujian.
- Clone Repository:
git clone <repository-url> cd GoRestAutomation
- Dapatkan Credentials: Login ke GoRest Portal untuk mendapatkan token Anda. Pelajari API lebih lanjut di Rest Console.
- Konfigurasi Token:
Buat file config.properties di dalam folder src/test/resources/ dan tambahkan detail berikut:
base.url=[https://gorest.co.in/public/v2](https://gorest.co.in/public/v2) api.token=MASUKKAN_TOKEN_ANDA_DISINI
Gunakan Maven untuk mengeksekusi seluruh rangkaian pengujian secara otomatis: mvn clean test
Setelah eksekusi selesai, laporan pengujian visual dalam format HTML akan dihasilkan secara otomatis di lokasi berikut:
target/cucumber-reports.html
Saat ini, eksekusi melalui GitHub Actions mungkin menghasilkan status 403 Forbidden. Hal ini dikarenakan Cloudflare Bot Protection pada server GoRest memblokir trafik otomatis dari alamat IP pusat data GitHub.
Poin Penting:
- Kode otomasi ini 100% valid dan berjalan sukses di lingkungan lokal (MacBook Air M1).
- Masalah di CI/CD murni terkait pembatasan keamanan infrastruktur pihak ketiga (GoRest), bukan kesalahan logika pada skrip Java/RestAssured.
- Konfigurasi
.github/workflows/maven.ymltetap disertakan untuk mendemonstrasikan pemahaman konsep CI/CD dan GitHub Secrets.
Karena adanya limitasi pada infrastruktur cloud di atas, berikut adalah bukti bahwa seluruh skenario pengujian (CRUD) berhasil dijalankan secara lokal:
