[Project] End-to-End Mobile Test Automation Framework with Appium & Cucumber

Proyek ini adalah framework otomatisasi pengujian mobile menggunakan  Cucumber (BDD), dan Appium. Fokus utama proyek ini adalah mencapai stabilitas eksekusi pada emulator Android dan efisiensi pelaporan hasil tes.








1. Spesifikasi Teknis

  • Automation Framework : Appium

  • Programming Language : Java

  • Test Framework : Cucumber

  • Reporting : Allure

  • Mobile Platform : Android


2. Struktur Folder


3. Tantangan 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.  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.


Berikut 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