Continous Testing with Travis and RobotFramework Appium

Hi Semuanya, ketemu lagi bersama gua. kali ini gua akan ngebahas hal yang berkaitan dengan Automation dibidang mobile lagi. Kalau kalian yang belum pernah tau apasih robot framework dan gimana cara implementasinya silahkan baca artikel ini https://medium.com/@ibnumuzzaakkir/mobile-automation-testing-using-robotframework-appium-library-5481d4e89f85
Sekarang ini automation hangat banget dibicarain diberbagai bidang terutama untuk testing entah itu buat QA atau developer sendiri. Kalau bicara dev, berhubung gua mobile dev jd gua diminta untuk continuous integration untuk unit test dan instruments test.
Lewat artikel ini walaupun gua sebagai developer tapi mau sharing tentang Salah satu automation tools yg dipake sama QA untuk Mobile apps. Biasanya seorang QA mobile pasti pake appium untuk testing appnya. Sebelum lanjut. Gua akan share cara konvensional yg dipake QA pertama. Pasti koding dulu script automationnya -> start appium server -> jalanin script testingnya, ya walupun secara manual tp sebenarnya dari script itu jdinya automation test Di hp/ emulator.
Nah sekarang kebayangkan gimana cara QA ngetes mobile apps secara simple. Gua sempet mikir kalau developer Kan punya yg namanya continuous integration.di QA apa sih yang sejenis itu ? Setelah dicari tau Ada yg bilang namanya continuous testing. Apa itu continuous testing? Coba Googling aja ya :D ntar kepanjangan kalau dijelasin diartikel ini
Oke langsung aja, berhubung gua bukan dev ops jd dari pada belajar install jenkins dkknya gua memutuskan pilih travis untuk pengganti jenkins disini. Canggihnya Travis ini bisa langsung integration dengan github kalian. Jd kalau Ada perubahan pada branch kalian dia akan trigger trus jalanin script yg kita tanam didalam repo kita ,file extensionnya itu .yaml.
Di travis ini hampir semua bahasa ke cover sih. oke to the point aja, karena main focus dari artikel ini adalah how to integrate your robotframework with travis for continous testing. Pertama kalian harus punya project testingnya dulu kaya yang gua bahas di artikel sebelumnya. kalau udah punya dan dipelajari sekarang kita lakukan integrasinya.
Travis ini perlu kita setup dulu envnya sebelum bisa dipake, jadi kita tentuin bahasa apa yang kita pake trus kek apa dependenciesnya dll. kalau secara normal itu yang dibutuhin sebelum bisa jalanin robotframework itu kan ada node js, appium, robitframework appium library, dan tentunya keperluan untuk android sendiri.
so gimana sih cara setup itu semua sehingga akhirnya kita bisa running di travis. caranya buat 1 file baru dengan nama .travis.yml kemudian tahap pertama kita install brew di environment kita untuk dipagi buat install node js
# install dependenciesbefore_install:- ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install)"- sudo apt-get install build-essential- echo 'export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"' >>~/.bash_profile- echo 'export MANPATH="/home/linuxbrew/.linuxbrew/share/man:$MANPATH"' >>~/.bash_profile- echo 'export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:$INFOPATH"' >>~/.bash_profile- PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"- brew install gcc- brew install hello- brew install node
setelah node js terinstall sekarang kita lakukan installasi untuk robotframework-appiumlibrarynya sendiri dan install appium dengan perintah npm
install:- "sudo pip install 'requests[security]'"- "sudo pip install robotframework-appiumlibrary"- "npm install -g appium"
oke kalau semua environment selesai terinstall kita star emulator dan jalankan scriptnya include si appiumnya kita start. btw kalau normalnya appium itu kalau kita jalankan dengan perintah “appium” aja dia bakalan ngeblok terminal kita jadi mau gak mau harus start terminal baru atau newtab agar kita bisa jalanin perintah robotframeworknya. jadi solusinya adalah kita buat dia running dibackground dengan menambahkan ‘&’ diakhir perintah appium
before_script:# Create and start emulator- echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a- emulator -avd test -no-skin -no-audio -no-window &- android-wait-for-emulator- adb shell input keyevent 82 &script:- "appium &"- "sleep 8s"- "pybot MovieAppTest.robot"
oke setelah semuanya kita buat di dalam .travis.yml tadi sekarang mungkin kalian bertanya gimana cara integrasinya ? caranya banyak sih di google tinggal searching aja how to integrate travis and github pasti dapet deh :D. sekarang kita bisa test scriptnya. coba aja push something yg bikin travis trigger ke github kalian buat jalanin testing. pada akhirnya hasil testingnya akan seperti ini

Oke kesimpulannya sih dari artikel ini kita sebenarnya setup env yg sesuai dengan kondisi konvensionalnya cuma bedanya ini udah kita setup ke travis jadi nnti travis yang jalanin. kalau artikel ini bermanfaat untuk kalian jangan lupa tap love dan share ya :D karena gak baik nahan2 ilmu hehe :D. salam coding! untuk repositorynya dari project ini ada disini ya https://github.com/astroidnu/MobileAutomationTesting
