Proyek ini adalah framework otomatisasi pengujian mobile menggunakan WebDriverIO, Cucumber (BDD), dan Appium. Fokus utama proyek ini adalah mencapai stabilitas eksekusi pada emulator Android dan efisiensi pelaporan hasil tes.
1. Spesifikasi Teknis
Framework: WebDriverIO (v8+)
Bahasa: TypeScript
Testing Approach: Behavior Driven Development (Cucumber)
Reporting: Allure Report
Environment: Android (Emulator)
Stabilitas: Penggunaan Session Management dan System Shell Commands.
2. Struktur Folder
/mobile-portfolio
├── features/ # Skenario tes (BDD)
│ ├── 01_login.feature # Skenario Login
│ ├── 02_checkout.feature # Skenario Belanja
├── features/step-definitions/
│ ├── login.steps.ts # Logika kode untuk Login
│ ├── checkout.steps.ts # Logika kode untuk Checkout
├── allure-config/ # Konfigurasi laporan
├── wdio.conf.ts # Konfigurasi WebDriverIO utama
├── package.json # Daftar dependencies & script
└── .gitignore # Proteksi file sensitif
3. Konfigurasi Sistem (wdio.conf.ts)
Untuk mengatasi masalah emulator hang, saya menerapkan hooks khusus:
Pembersihan Sesi per Skenario (
afterScenario): Menjalankanpm clear com.swaglabsmobileappuntuk menghapus cache dan data aplikasi agar setiap skenario dimulai dari kondisi aplikasi baru (fresh state).Reset WebDriver (
after): Menggunakanbrowser.reloadSession()di setiap akhir file untuk memutus dan membangun ulang koneksi Appium, mencegah memory leak.Monitoring (
afterStep): Otomatis menangkap screenshot jika terjadi error atau ketika aplikasi berpindah ke halaman Product Dashboard untuk kebutuhan bukti visual.
4. Skenario Pengujian (BDD)
Berikut adalah contoh skenario yang diterapkan dalam file .feature:
Contoh: 01_login.feature
Feature: Login Functionality
Scenario: User login with valid credentials
Given the user is on the login page
When the user enters username "standard_user" and password "secret_sauce"
And the user clicks the login button
Then the user should be redirected to the Product Dashboard5. Alur Kerja (Workflow)
Eksekusi: Jalankan
npm run test:all.Sistem Bekerja:
Framework menjalankan tes sekuensial (sesuai nomor 01, 02).
Jika langkah sukses (misal: masuk Dashboard), screenshot diambil otomatis.
Jika langkah gagal, screenshot diambil otomatis untuk bukti error.
Clean-up: Setelah setiap skenario, cache aplikasi dibersihkan (
pm clear). Setelah satu file selesai, sesi di-reload.Reporting: Sistem menunggu 10 detik, lalu melakukan
allure generatedan membuka browser untuk menampilkan hasil laporan.
6. Perintah Automasi (package.json)
Semua kerumitan di atas diringkas menjadi dua perintah sederhana:
npm run test:all: Menjalankan seluruh test suite secara otomatis.npm run report:generate: Membuat dan menampilkan laporan Allure secara manual jika diperlukan.
7. Checklist untuk Portofolio
Untuk memastikan repositori Anda layak sebagai portofolio:
[ ] README.md sudah terpasang dengan instruksi jelas.
[ ] .gitignore sudah mencakup
node_modules/,allure-results/, dan file rahasia lainnya.[ ] License (MIT) sudah dicantumkan untuk menunjukkan profesionalisme.
[ ] Kode terstruktur dengan
anytype yang sudah disesuaikan agar tidak ada error TypeScript.
Dokumentasi ini mencakup seluruh aspek teknis dan operasional dari apa yang kita bangun. Ini adalah bukti nyata bahwa Anda tidak hanya bisa menulis kode tes, tetapi juga mampu membangun framework yang tangguh dan menyelesaikan masalah teknis di level sistem (seperti manajemen memori emulator).
No comments:
Post a Comment