Web uygulamarımızı test etmek için pek çok araç var ancak günden güne popüler olan mobil uygulamalarımızın testini yapmak istediğimiz zaman neler kullanmalıyız? Bunun için geliştirilmiş Appium aracından bahsedeceğim;
Appium açık kaynak kodlu mobil test aracıdır. iOS, Android, FirefoxOS desteği bulunmakta bu aracın. IOS ve Android için yazılmış uygulamalarınızın geliştirme aşamasında ve sonrasında testini yapmak mümkün oluyor. Kullanıcı arayüzü(UI) testlerini yazıp bunu Appium üzerinde çalıştırıp aksaklıklar varsa bundan haberdar oluyoruz.
Bu testleri otomatikleştirip, Continous Integration(CI) sağlamak da mümkün. Her geliştirme sonrası sizin önceden yazılmış testi Run! etmeniz yeterli olacaktır.
Mobil test alanında çok sayıda farklı platform ve cihaz oluşunun farkındayız. Yazılmış uygulamanızın hangi platformda doğru çalıştığını hangisinde patladığını bulmanız oldukça zor, her cihazdan bir örnek alıp testi manuel gerçekleştirmek ise çılgınca bir fikir olabilir.
Ancak Appium kullanarak manuel yapmak istediğin testi Appium'a desteklediği herhangi bir programlama dili ile yazarsanız, bu testi otomatikleştirerek her seferinde istediğiniz her platformda çalıştırma imkanınız olacak.
Appium desteklediği diller ise;
Java, Objective-C, JavaScript, Node.js, PHP, Python, Ruby, C#, Clojure, Perl
Yazılım testlerini manuel testlerden arındırmanın yanında onları otomatikleştirme ve bunu mobil için her mobil cihaz modelini uygulayabilme fikri bana oldukça kullanışlı müthiş bir özellik geliyor, yaygın olmayan bu yöntem keşke daha çok kullanılabilse.
Kurulum aşamasından da biraz bahsetmek istiyorum.
Appium için Node.js kurmamız gerekiyor. Bunun için ;
1 2 3 4 5 |
|
Bu aşamadan sonra aşağıda verdiğim komutta hata almıştım
1 2 3 4 5 6 7 |
|
Böyle bir hata alırsanız, aşağıdaki adımları uygulayalım.
1 2 3 4 5 6 7 8 9 |
|
Şimdi her şey yolunda. Ve Appium kurmaya hazırız!
$ npm install -g appium
$ appium &
Appium‘u Python ile kullandım ben onun için de Appium Python Client kurulumu;
1 2 3 |
|
veya
1
|
|
Herşey tamamlandıktan sonra test yazma aşamasında oluşturacağımız test dosyalarına
from appium import webdriver
adımını dahil etmeyi unutmayalım.
Test dosyalarında adımları yazabilmek için Appium-Python test diline hakim olmak gerekiyor.
Bir kaç test adımı örnek vermek gerekirse;
Dosyamızda Patformumuzun Android olmasını ve sürümünün 4.2 olmasını istediğimiz zaman;
1 2 3 4 5 6 |
|
#şu anki içeriğimizi çeksin
current = driver.current_context
#HTML ağacındaki istenilen yeri bulsun
textfield = self.driver.find_elements_by_class_name("android.EditText")
#Bulunan text alanının ilk boşluğuna mail adresi yazsın
textfields[0].send_keys("blabla@appium.io")
#Mail doğru mu kontrol etsin. Olması gerekenle var olan değerler eşit mi?
self.assertEqual('blabla@appium.io', textfields[0].text)
#Ekrana gelen mesajı onaylasın
alert = self.driver.switch_to_alert()
alert.accept()
#Gönder tuşuna tıklasın
self.driver.find_element_by_accessibility_id("Save").click()
#Dokunmatik telefondaki hareket etsin
action = TouchAction(self.driver);
action.long_press(start).move_to(end).release().perform()
#Belitrilen xpath adresinde pano değeri görünmüyor mu kontrol etsin
pano = self.driver.find_element_by_xpath('//[]')
self.assertIsNotNone(pano)