Skip to content

Configuration

Pengenalan dan mulai menjalankan automation tools
02 Januari 2025Rd Fakhri Fadhlan Dantiano
Riwayat Dokumentasi
VersiTanggalAktorKeterangan
v1.002/Jan/2025Rd Fakhri Fadhlan DantianoKonten

Tahapan Konfigurasi

Instalasi selesai belum tentu bisa langsung dapat menjalankan Appium Tools. Anggaplah halnya seperti kita, semangat bekerja karena ada dapur yang harus ngebul, disini ada konfigurasi agar Appium bisa beraksi. Cakep? tidak perlu wahai readers, perlu diperhatikan bahwa untuk konfigurasi penulis bagi menjadi 2 (dua) yakni Flutter Project dan baris kode Python.

Konfigurasi Flutter

Aplikasi Flutter harus dikompilasi dalam bentuk .apk mode debug atau profile. Dependency flutter harus menyertakan flutter_driver di dalam file pubspec.yaml:

  • DirectoryProject
    • android
    • ios
    • Directorylib
      • main.dart
    • pubspec.yaml

Menambahkan flutter_driver di bawah dev_dependencies seperti berikut:

dev_dependencies:
...
flutter_driver:
sdk: flutter

Kemudian menambahkan enableFlutterDriverExtension di dalam baris kode file main.dart.

void main() async {
enableFlutterDriverExtension();
....
}

Konfigurasi Python

Ketika semua konfigurasi pada Flutter sudah disesuaikan seperti tahapan di atas, tentunya kita perlu program yang digunakan untuk wadah menjalankan konfigurasi, driver dan command di dalamnya. Sebagai contoh, membuat file test_appium.py ke dalam folder project-root/test, jika tidak ada bisa menambahkan folder baru dengan nama tersebut atau anda bisa download salah satu skrip testing di bawah berikut untuk project yang sedang berjalan.

Automation Script

FilenameProjectScript Version
Pelnione-AutomationPELNIOne1.0.0
PELNI Mobile
PELNI Sweeping

Penulis anggap anda mengunduh skrip di atas, dapat anda lihat folder terpisah menjadi dua Android_tes dan ios_test beserta ekstensi .py di dalamnya:

  • DirectoryProject
    • Directoryandroid_test
      • main_test.py
    • Directoryios_test
      • main_test.py
    • readme.md
    • requirement.txt

Beberapa package yang perlu kita install, Penulis asumsikan anda telah menginstall python pada system. di dalam project skrip jalankan command berikut:

Terminal window
pip install -r requirement.txt

Membuat Capabilities

Capabilities / Kapabilitas adalah parameter penting dalam pembuatan sesi-sesi di Appium, digunakan untuk menentukan kemampuan sesi tersebut, seperti jenis sistem operasi, versi perangkat, driver dll. Parameter ini dikirim menggunakan format JSON, dan Appium akan memverifikasi apakah parameter tersebut dapat dipenuhi sebelum memulai sesi.

desired_capabilities = {
'platformName': 'Android',
'deviceName': 'emulator-5554',
'platformVersion': '13',
'automationName': 'Flutter',
'app': '/Users/myuser-pc/Documents/development/pelnione/build/app/outputs/flutter-apk/app-debug.apk',
'autoGrantPermissions': 'true',
'retryBackoffTime': 500
}

Di dalamn file main_test.py terdapat instruksi kapabilitas seperti baris data json di atas, tentu nama key seperti platformName dan lainnya berdasarkan rules yang telah ditetapkan oleh Appium sendiri bukan hanya sekedar label, jika kita urai fungsi masing-masingnya dapat diartikan berikut:

  • platformName: menentukan jenis system operasi yang kita gunakan, contoh disini kita akan melakukan testing pada perangkat Android.
  • deviceName: menentukan nama device, untuk mengetahui device apa yang sedang terhubung pada perangkat kita, anda bisa lihat pada tahapan Koneksi Device
  • platformVersion: menentukan versi OS perangkat yang terhubung
  • automationName: menentukan driver, berdasarkan driver yang telah terinstall seperti tahapan Get Started - Instalasi Driver
  • app: menentukan path compile aplikasi, pastikan aplikasi dalam mode debug atau profilejika android untuk ios arahkan ke Runner.app

Contoh Path App

App iOS: /Users/myuser-pc/Documents/development/pelnione/build/ios/iphonesimulator/Runner.app
App Android: /Users/myuser-pc/Documents/development/pelnione/build/app/outputs/flutter-apk/app-debug.apk

Sebelum kapabilitas dikirimkan ke driver, sekaligus kita perlu membuat opsi testing sebagaimana berikut:

options = UiAutomator2Options()
options.load_capabilities(desired_capabilities)
appium_server_url = 'http://localhost:4723'
return webdriver.Remote(appium_server_url, options=options)
  • UiAutomator2Options(): Membuat objek opsi Appium menggunakan UiAutomator2, apa itu UiAutomator2 ? sebenarnya adalah driver milik appium, tapi agar tidak beririsan dengan driver Flutter dan membuat kita bingung, kita sebutlah sebagai Framework. UiAutomator2 adalah Framework yang mendukung testing di OS Android, sementara iOS menggunakan XCUITest. Jelasnya anda perlu import salah satunya di bagian paling atas skrip:
from appium.options.android.uiautomator2.base import UiAutomator2Options # Android
from appium.options.ios.xcuitest.base import XCUITestOptions # IOS
  • load_capabilities(): Memuat capabilities yang kita buat sebelumnya ke dalam opsi Appium.
  • appium_server_url: http://localhost:4723 URL default server Appium yang berjalan secara lokal di port 4723.