Mobile Automation Testing Using RobotFramework — Appium Library
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 :
- Python
- Pip
- Node JS
- Appium
- Robotframework-library
- Android SDK
- Java JDK
- 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.
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
${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.
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.
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