Masalah Umum
Kumpulan masalah yang sering muncul saat menggunakan Heimdall beserta solusi langkah demi langkah.
Instalasi
Problem: python: command not found
Penyebab: Python tidak terinstall atau belum ada di PATH.
Solusi:
- Install Python 3.10+ dari python.org
- Pastikan mencentang "Add Python to PATH" saat instalasi
- Restart terminal setelah instalasi
- Verifikasi dengan
python --versionataupython3 --version
Problem: adb: command not found
Penyebab: ADB tidak terinstall atau belum ada di PATH.
Solusi:
- Install Android Platform Tools
- Tambahkan lokasi ADB ke environment variable PATH
- Restart terminal
- Verifikasi dengan
adb version
Instalasi ADB per OS
Ubuntu/Debian:
sudo apt update
sudo apt install android-tools-adb android-tools-fastbootmacOS:
brew install android-platform-toolsWindows: Download Platform Tools, ekstrak, dan tambahkan ke PATH.
Problem: dot: command not found
Penyebab: Graphviz tidak terinstall.
Solusi:
- Install Graphviz sesuai panduan di bawah
- Verifikasi dengan
dot -V
Instalasi Graphviz per OS
Ubuntu/Debian:
sudo apt install graphvizmacOS:
brew install graphvizWindows: Download dari graphviz.org dan pastikan mencentang "Add to PATH".
Problem: uiautomator2 init gagal
Penyebab: Device tidak terdeteksi atau USB Debugging tidak aktif.
Solusi:
- Pastikan USB Debugging aktif di Developer Options device
- Sambungkan device via USB atau jalankan emulator
- Jalankan
adb devicesuntuk cek koneksi - Jika menggunakan emulator, pastikan emulator berjalan sebelum
uiautomator2 init - Izinkan instalasi aplikasi ATX di device jika diminta
Problem: Permission denied saat install package
Penyebab: Tidak memiliki permission yang cukup atau menggunakan system Python.
Solusi:
- Gunakan virtual environment (direkomendasikan)
- Atau gunakan
--userflag:pip install --user -r requirements.txt - Jangan install package menggunakan
sudodengan system Python
Problem: ModuleNotFoundError meskipun sudah install
Penyebab: Virtual environment tidak aktif atau PATH belum di-set.
Solusi:
# Aktifkan virtual environment terlebih dahulu
source venv/bin/activate # Linux/macOS
# atau
.\venv\Scripts\activate # Windows
# Kemudian coba lagi
pip install -r requirements.txtProblem: Instalasi uiautomator2 lambat/stuck
Penyebab: Network lambat atau mirror PyPI tidak optimal.
Solusi:
# Gunakan mirror yang lebih cepat (opsional)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# Atau dengan timeout lebih panjang
pip install -r requirements.txt --timeout 120Koneksi Device
Problem: Device tidak terdeteksi (adb devices kosong)
Penyebab: Kabel USB rusak, driver tidak terinstall, atau USB Debugging tidak aktif.
Solusi:
- Coba ganti kabel USB
- Pastikan USB Debugging aktif di Developer Options
- Unlock device sebelum menghubungkan
- Jalankan
adb kill-server && adb start-server - Pada Windows, install driver yang sesuai
- Jika menggunakan emulator, pastikan AVD berjalan
Problem: adb devices menunjukkan unauthorized
Penyebab: RSA key belum di-accept di device.
Solusi:
- Lepas dan sambungkan kembali kabel USB
- Di device, muncul dialog prompt untuk allow USB debugging - tekan "OK"
- Jika dialog tidak muncul, matikan dan aktifkan kembali USB Debugging
Problem: Device terhubung tapi test gagal dengan connection refused
Penyebab: Port yang digunakan oleh driver tertutup atau diblokir.
Solusi:
- Cek apakah ada proses lain yang menggunakan port yang sama:
adb forward --list - Hapus forwarding yang tertahan:
adb forward --remove-all - Restart ADB:
adb kill-server && adb start-server - Restart device jika perlu
Problem: Device sering disconnected saat test berjalan
Penyebab: Kabel USB longgar, battery low, atau USB debugging terputus.
Solusi:
- Gunakan kabel USB yang berkualitas baik
- Matikan screen lock agar device tidak sleep
- Pastikan battery di atas 20%
- Gunakan emulator jika device fisik tidak stabil
Eksekusi Test
Problem: Test berjalan lambat
Penyebab: Device lambat, animasi aktif, atau selector terlalu rapuh.
Solusi:
- Matikan animasi di Developer Options:
Animation scale=0.5xatauOff - Gunakan selector yang lebih stabil (text atau resource-id)
- Kurangi
--paralleljika terlalu banyak proses bersamaan - Aktifkan device throttling untuk simulasi kondisi standar
Problem: Test flaky (kadang berhasil, kadang gagal)
Penyebab: Race condition, animasi, atau selector yang tidak stabil.
Solusi:
- Tambahkan
Tunggusebelum aksi yang membutuhkan elemen muncul - Gunakan explicit wait daripada sleep:
Tunggu sampai muncul teks "Loading" selesai - Stabilkan state aplikasi sebelum test dimulai
- Perbaiki selector yang bergantung pada posisi atau index
- Gunakan
--retryuntuk menjalankan ulang test yang gagal:
heimdall run tests/ --retry 2Problem: Element tidak ketemu meskipun elemen terlihat di layar
Penyebab: Selector salah atau aplikasi sedang dalam transisi.
Solusi:
- Gunakan
heimdall inspectuntuk melihat selector yang tersedia - Gunakan teks yang persis seperti di layar (case-sensitive)
- Tambahkan
Tunggusebelum aksi - Jika label form tidak terdeteksi, gunakan
Ketik URUTAN:
# Alternatif jika selector teks tidak bekerja
Ketik "user@test.com" pada kolom "urutan 1"Problem: Keyboard tidak muncul
Penyebab: Heimdall menggunakan FastInputIME (Ghost Keyboard) untuk input cepat.
Solusi:
- Tunggu sampai skrip selesai - keyboard akan kembali normal
- Atau matikan FastInputIME via ADB:
adb shell ime set com.android.inputmethod.latin/.LatinIME- Jika keyboard muncul tapi tidak bisa diketik, restart aplikasi
Problem: Timeout saat menunggu elemen
Penyebab: Elemen tidak muncul dalam batas waktu yang ditentukan.
Solusi:
- Tingkatkan timeout di konfigurasi:
{
"timeout": {
"default": 30,
"waitForElement": 15
}
}- Periksa apakah aplikasi sedang loading atau freeze
- Periksa network koneksi jika aplikasi memuat data dari internet
- Gunakan
Tunggu sampai muncul teksdengan timeout lebih panjang:
Tunggu 30 detik sampai muncul teks "Dashboard"Report
Problem: Report tidak terbuat atau kosong
Penyebab: Permission direktori output tidak cukup atau test tidak ada yang dijalankan.
Solusi:
- Pastikan direktori output ada dan bisa ditulis:
mkdir -p ./reports/
chmod 755 ./reports/- Verifikasi ada test yang dijalankan:
heimdall run tests/ --report json - Cek apakah ada error selama eksekusi
Problem: Report format tidak sesuai ekspektasi
Penyebab: Flag atau format yang digunakan salah.
Solusi:
- Gunakan flag yang benar:
--report junit-xml,--report allure, atau--report json - Periksa dokumentasi format untuk struktur yang diharapkan
- Gunakan
--outputuntuk menentukan lokasi penyimpanan:
heimdall run tests/ --report allure --output ./allure-report/Problem: Visual regression baseline tidak ditemukan
Penyebab: Baseline belum diupload atau path salah.
Solusi:
- Upload baseline menggunakan BaselineManager atau API
- Pastikan nama file mengikuti format:
baseline_<testcase_id>_<platform>_<device>.png - Verifikasi baseline tersimpan di direktori yang benar
Masalah Lainnya
Problem: Aplikasi crash saat test berjalan
Penyebab: Aplikasi memiliki bug atau tidak stabil pada kondisi tertentu.
Solusi:
- Ambil log dari aplikasi:
adb logcat | grep <package_name> - Cek apakah crash terjadi pada langkah tertentu
- Jalankan aplikasi secara manual untuk reproduce crash
- Laporkan bug ke tim development dengan menyertakan log dan screenshot
Problem: Test gagal di CI/CD tapi berhasil di lokal
Penyebab: Perbedaan lingkungan (device, resolusi, OS version, data).
Solusi:
- Gunakan emulator dengan konfigurasi yang sama di lokal dan CI/CD
- Jangan gunakan data lokal - gunakan test data yang di-commit ke repository
- Pastikan versi aplikasi yang diuji sama
- Tambahkan cleanup step di CI/CD pipeline untuk reset state
Problem: heimdall command tidak ditemukan setelah install
Penyebab: Script entry point belum di-install atau PATH belum di-set.
Solusi:
# Install ulang dalam editable mode
pip install -e .
# Atau gunakan python module
python -m heimdall --help
# Verifikasi instalasi
which heimdall # Linux/macOS
where heimdall # WindowsChecklist Umum
- [ ] Python 3.10+ terinstall
- [ ] ADB terinstall dan terdeteksi (
adb devices) - [ ] Device terhubung dan dalam keadaan unlocked
- [ ] USB Debugging aktif
- [ ] uiautomator2 sudah diinit (
python -m uiautomator2 init) - [ ] Virtual environment aktif
- [ ] Semua dependencies terinstall
- [ ] Aplikasi target terinstall di device
- [ ] Healt check berjalan (
heimdall health)
Referensi
- Android Specific Troubleshooting - Masalah spesifik Android
- Web Specific Troubleshooting - Masalah spesifik Web
- Persistent Issues - Bug yang sudah diketahui