Proyek: Mobile Automation Framework (End-to-End) menggunakan WebDriverIO, Cucumber (BDD), dan Appium.

 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

Plaintext
/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): Menjalankan pm clear com.swaglabsmobileapp untuk menghapus cache dan data aplikasi agar setiap skenario dimulai dari kondisi aplikasi baru (fresh state).

  • Reset WebDriver (after): Menggunakan browser.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

Gherkin
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 Dashboard


5. Alur Kerja (Workflow)

  1. Eksekusi: Jalankan   npm run test:all.

  2. 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.

  3. Clean-up: Setelah setiap skenario, cache aplikasi dibersihkan (pm clear). Setelah satu file selesai, sesi di-reload.

  4. Reporting: Sistem menunggu 10 detik, lalu melakukan allure generate dan 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 any type yang sudah disesuaikan agar tidak ada error TypeScript.


Bertikut ini : Link Githubnya

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

Pages