Mobile Automation Testing Using RobotFramework — Appium Library

Ibnu Muzzakkir
4 min readJul 13, 2017

--

Automation Testing

Hi Guys, hari ini saya akan ngebahas tentang automation testing lagi nih, berawal dari robot framework untuk automate web dan hari ini akan membahas automate di mobile. kenalan dulu yuk sama robotframework — appium library. jadi ini tuh library appium yang dibuat untuk kompatible dengan robotframework, jadi untuk kalian yang udah biasa megang atau pernah mencoba robotframework itu bukan masalah yang besar untuk mencoba hal ini.

Kesan pertama saat nyobain nih framework saya sih langsung jatuh hati disini aja haha, udah nyaman sama yang namanya robotframework karena diduetin sama python dan bahasanya juga lebih manusiawilah ketimbang native selenium ataupun appium.

Jadi kerennya appium itu punya server sendiri buat testing Disini saya gak banyak bahas tentang appium itu gimana cara kerjanya dan lain — lain, jadi lanjut ke robotframework appium library ya. Oke temen — temen semua pastinya pengen tau kan requirement apa aja sih yang dibutuhkan buat install appium dan sampe bisa jalanin automationnya ? berikut adalah hal yang dibutuhkan :

  1. Python
  2. Pip
  3. Node JS
  4. Appium
  5. Robotframework-library
  6. Android SDK
  7. Java JDK
  8. Emulator (Gennymotion / Native Emulator Android)

Cukup simple sih bahan2nya. kalau untuk installasinya silahkan googling banyak banget caranya. kalau bingung ? tambahin aja how to install + bla2 sesuaikan dengan requirement yang ada diatas. oke setelah semuanya terinstall dengan benar. hal pertama yang harus kita lakukan adalah jalanin server appiumnya.

appium

setelah kalian ketik perintah diatas di terminal maka akan tercreate sebuah server baru dari appium biasanya sih portnya itu localhost:4723.

appium server

setelah appium servernya ke start, langkah awal yang pas untuk seorang pemula seperti saya ini mari kita clone atau download aja di link ini : https://github.com/serhatbolsu/robotframework-appiumlibrary/tree/master/demo. Setelah di download cek folder demo. nah disana ada beberapa contoh include apknya juga yang bisa kalian coba sebagai contoh. berhubung saya agak rajin jadi saya akan buatkan 1 apk khusus dan bisa kita test disini sebagai bahan pembahasan pada artikel ini.

Link download apknya : https://drive.google.com/file/d/0ByszwJTnhINubWJuU0d6eTNUMDg/view?usp=sharing. setelah didownload apknya kita buat aja projectnya. caranya gimana ? kalian tinggal buat 1 folder entah itu apa namanya kemudian buat 1 file dengan extension .txt atau sejenisnya, kalau saya sih menggunakan .robot jadi biar keren gitu hehe. setelah selesai buat 1 folder lagi untuk tempat apknya. kalau sudah dibuat skemanya seperti itu maka kita udah siap nih untuk sedikit coding.

*** Settings ***Library           AppiumLibrary*** Variables ***${REMOTE_URL}     http://localhost:4723/wd/hub${PLATFORM_NAME}    Android${PLATFORM_VERSION}    7.0${DEVICE_NAME}    192.168.56.101:5555${APP}             ${CURDIR}/apk/moviesapp.apk${PACKAGE_NAME}     com.example.android.popularmoviesstage1

Pada part ini sama seperti basic robotframework kita punya yang namanya settings, variable, keywords, dan test cases. Bagian diatas adalah settings dan variable, dimana fungsi dari setting itu melakukan import dari resource ataupun library. variable berfungsi untuk mendeklarasikan semua variable yang kita butuhkan nantinya.

${REMOTE_URL} ini merupakan variable yang diisikan oleh alamar server dari appium tadikan sudah kita start appiumnya di port 4723 nah kemudian kita isikan saja seperti ini “http://localhost:4723/wd/hub” , /wd/hub itu merupakan nilai default yang memang ada untuk melakukan koneksi ke appium server. ${DEVICE_NAME} ini kita isi dengan nama dari device yang sedang terhubung dengan laptop kita atau device dari emulator. kalau teman — teman bingung gimana cara mendapatkan namanya ? gampang ketik aja diterminal seperti gambar dibawah ini

List Device yang connected dengan laptop kita

${PACKAGE_NAME} diambil dari nama package dari aplikasi yang mau ditest. gimana cara ambilnya ? buka aja uiautomator. jadi UIAutomatorViewer ini merupakan tools untuk mencapture app kita sehingga kita bisa melihat komponen — komponen yang ada didalamnya. bahasa mudahnya adalah kaya inspect element di web.

UI Automator Viewer

Setelah kita isi semua variablenya. disesuaikan ya tentunya, lanjut kebagian ini

*** Keywords ***Filter Function[Arguments]    ${POSITION}Open Application  ${REMOTE_URL}  platformName=${PLATFORM_NAME}  platformVersion=${PLATFORM_VERSION}  deviceName=${DEVICE_NAME}  app=${APP}  automationName=appium  appPackage=${PACKAGE_NAME}Click Element  xpath=//android.widget.FrameLayout/android.view.ViewGroup/android.support.v7.widget.LinearLayoutCompat/android.widget.ImageView[contains(@clickable,true)]Sleep  5sClick Element  xpath=//android.widget.FrameLayout/android.widget.FrameLayout/android.widget.ListView/android.widget.LinearLayout[contains(@index,${POSITION})]Sleep  5s[TearDown]     Close Application

Keyword ini bisa dikita ibaratkan function — function yang mau kita declare disini. misalkan kaya contoh diatas merupakan filter function dari app untuk sorting movienya.

Open Application  ${REMOTE_URL}  platformName=${PLATFORM_NAME}  platformVersion=${PLATFORM_VERSION}  deviceName=${DEVICE_NAME}  app=${APP}  automationName=appium  appPackage=${PACKAGE_NAME}

Open application merupakan reserved keyword dari robotframework appium library dimana fungsi ini bertugas untuk membuka aplikasi. disitu semua parameter merujuk pada variable yang telah kita buat sebelumnya. btw kerennya adalah konsep yang kita biasa gunakan di robotframework untuk web bisa loh kita implement di robotframework appium library ini. contohnya seperti [TearDown] dll walaupun actionnya adalah berbeda dengan yang versi web.

Untuk menjalankan automation testing kita sama banget kaya menjalankan file di robotframework

pybot xxx.robot

ingat jangan terkecoh sama extension file dari automation test yang kita buat heheh itu bebas ko, kerenkan ?.Setiap dia jalanin script automation test kita dia autogenerate report. Saya baru coba ini sih sebagai tools untuk automation testing so sejauh ini ya jatuh cinta banget sama robotframework. hebat loh dia membuat kita nyaman. Python ? jangan khawatir, bahasa pemograman ini lucu ko hehe singkat dan jelas.

Log Report Robotframework

Kesimpulannya adalah untuk orang yang pernah pake atau baru mau coba automation testing di mobile ini sangat — sangat saya rekomendasikan, karena dari segi bahasa mudah untuk dipelajari dan cukup powerfull sih sampai saat ini. jika kalian berkenan tolong di share dan tap love ya. see you

Link kitab sucinya : http://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html#Click%20Button

--

--