Apple yıllarca Macbook bilgisayarlarında kullandığı Intel işlemci yerine M1 ismiyle kendi ürettiği silikon işlemcileri kullanmaya başladı ve hal böyle olunca mobil test otomasyon geliştirmede oldukça popüler olan Appium’un kurulumunda bazı değişiklikler oldu. Bu blog yazımızda mobil test otomasyonu katmanı Appium’dan kısaca söz edip, bu katmanı Apple’ın yeni silikon M1 işlemcili bilgisayarlarına kurarken izlenecek yolu ve dikkat edilmesi gereken noktaları belirteceğim.
Test Otomasyonu Nedir?
Yazılım testi, kuşkusuz yazılım yaşam döngüsünün en kritik evrelerinden biridir. Sisteme dahil edilen yeni geliştirmeler fonksiyonel olarak test edildikten sonra tüm sistemin yeni eklenen kodlardan etkilenip etkilenmediğinden emin olabilmek için bütün sistemin bir bütün olarak tekrardan test edilmesi gerekmektedir. Bu testler kısaca regresyon testi olarak nitelendirilir. Regresyon testleri genelde başarılı senaryolardan oluşturulur ve her değişiklik sonrası aynı test seti tekrar tekrar koşturulması gerekmektedir. Bu regresyon testlerinin bir yazılım test mühendisi tarafından koşturulması hem zaman içerisinde meslek körlüğüne hem de ciddi anlamda zaman ve efor kaybına neden olmaktadır. Bu sebeple son yıllarda test otomasyonu kavramı hem önemli hem de oldukça popüler bir konudur. Regresyon testlerini ayrı bir sistemle test edilmesi ile gerçekleşen test otomasyonu web, masaüstü ve mobil yazılımlarda gerçekleştirilebilir.
Appium
Appium bir mobil test otomasyonu katmanıdır. Gerçek mobil cihazlar üzerinde test koşturabilmek için de yaygın olarak Appium kullanılmaktadır. Kuveyt Türk Mobil Şube uygulamasının regresyon testleri de Appium ile kurulmuş bir yapı ile test otomasyonu sistemine koşturulmaktadır. Bu yapı ile mevcutta çalışan test ekibinin arkasında takım sayısının %85’ine denk gelen bir test otomasyonu yapısı vardır. Bu yapı Test Ekibi’ne ciddi bir zaman ve efor kazancına imkân vermektedir. Appium kütüphanelerini kullanarak test senaryolarının yazılımı geliştirmelerini yapabilmek için bazı kurulumların yapılması gerekmektedir. Popüler olarak Android ve IOS işletimine sahip cihazlar için yazılan uygulamalar test edilmek istendiğinden hedef kitle bu iki işletim sistemine odaklıdır. Her ne kadar Android işletim sistemi açık kaynak kodlu bir işletim sistemi olsa da IOS işletim sistemi için yazılan .ipa uygulamalarını test edebilmek için XCode gerekmekte ve yazılımcılar genelde Macbook kullanmaktadırlar. Daha önceleri kullanılan Intel işlemcilere göre M1 işlemcilerde kurulum için bazı farklı noktalar bulunmaktadır. Bu blog yazımızda bu aşamalar baştan sona kadar kısaca anlatılacaktır.
Xcode Kurulumu
Öncelikle bilgisayarınızda Xcode henüz yüklü değil ise AppStore’dan Xcode’u indirmeniz ve yüklememiz gerekmekte. Xcode’un boyutu bir hayli fazla olduğundan ilk başta bunu hatırlatmak iyi olacaktır.
Java JDK 8 Kurmak
Oracle’ın kendi sitesinden Java ile ilgili gerekli dosyaları bilgisayarımıza indirmemiz gerekmekte. https://www.oracle.com/tr/java/technologies/javase/javase8-archive-downloads.html linkinden JDK 8 ile ilgili gerekli dosyalar gözükecektir. Burada macosx-64.dmg isimli dosyayı ücretsiz bir şekilde bilgisayarımıza indirip kurmamız gerekiyor.
Homebrew Kurulumu
Homebrew macOS için oldukça sık kullanılan bir paket yöneticisidir. Appium için gerekli olan paketleri kurmak için Homebrew’i kullanacağız. Kurulumdan önce command + shift tuşları ile gelen arama çubuğuna terminal yazalım. Daha sonrasında karşımıza gelen terminal simgesine sağ tıklayıp “Show in Folder” seçeneğini seçelim. Açılan ekranda terminale sağ tıklayıp “Duplicate” diyelim. Kopyaladığımız terminalin ismini değiştirip “Rosetta-Terminal” olarak kaydedelim. Rosetta-Terminali açıp “arch” komutunu çalıştıralım. Tüm işlemleri başarılı gerçekleştirdiyseniz Şekil 1’deki gibi bir ekran ile karşılaşıyor olmalısınız;
Sonrasında Homebrew’i kurmak için terminal üzerinden Şekil 2’deki gibi komutu çalıştırmamız gerekmekte;
Carthage kurulumu
Carthage macOS ve IOS için çok kullanılan bir bağımlılık yöneticisidir. Appium’un 1.20 ve üzeri versiyonlarında XCUITest sürücüsünü kullanmak için Carthage yükleme zorunluluğu bulunmamaktadır fakat Carthage içerisinde bulunan bazı özellikleri kullanabilmek adına yüklemek faydalı olabilir. Kurulum için aşağıdaki Şekil 3’deki komutu terminalden çalıştırmak yeterlidir;
NPM Kurulumu
https://nodejs.org/en/download/ adresinden macOS Binaries (.tar.gz) ‘i indirelim daha sonra dosyayı çıkartıp ve ismini nodejs olarak değiştirelim.
Path Tanımları
İlk önce Users altında otomasyon isminde bir klasör açalım ve daha önce indirdiğimiz nodejs dosyasını bu klasöre koyalım. Yeni bir terminal açalım vim .zshrc komutunu çalıştıralım. Açılan dosyada “a” tuşuna basalım ve aşağıdaki bilgileri bu dosyaya ekleyelim;
Daha sonra “esc” tuşuna basalım ve yazdıklarımızı :x! komutu ile kaydedelim.
Appium Kurulumu
Bu aşamaya kadar hiçbir sorun yaşamadan geldiyseniz tebrikler. Artık sona yaklaşmış durumdayız diyebilirim. Öncelikle terminalden Şekil 6’daki kodu çalıştırarak Appium’un sunucu kısmını yüklememiz gerekiyor;
Appium Inspector
Test otomasyonu senaryosunu yazabilmek için kullandığınız uygulamadaki elementlerin bilgilerine ulaşabiliyor olmalısınız. Bu sayede spesifik belirteçler ile kodunuzu hatasız çalışacak bir biçimde tasarlamanız mümkün. Peki bu elementleri nasıl yakalayabiliriz? İşte tam da bu esnada Appium Inspector yardımımıza koşmakta. https://github.com/appium/appium-inspector adresinden Appium Inspector’ün son versiyonunu bilgisayarınıza indirebilirsiniz. Apium Inspectoru açtığımızda karşımıza Şekil 7’deki gibi bir ekran gelecek.
İlk önce Appium Server’ı açıp daha sonra Appium Inspector’ü açmamız gerektiğini hatırlatmam lazım. Uygulamamızın özellikle IOS için bundleid, Android için appActivity ve appPackage bilgileri ile Capability oluşturulmalıdır. Ve artık Start Session butonu ile mobil test otomasyonu senaryolarınızı yazmaya başlayabilirsiniz. Ek bilgi; eğer ki gerçek bir cihaz ile çalışıyorsanız telefonunuzun bilgisayara bağlı olması ve Android için Android Studio, IOS için Xcode geliştirici hesap ayarlarınızın yapılı olması gerekmektedir. Tabi cihazınızın geliştirici seçeneklerinin açık olması ve özellikle IOS cihazlar için WebDriverAgent uygulaması için ayarlar menüsünden profile Güven demeniz gerekmektedir. Aksi taktirde AppStore harici bir uygulamanın IOS telefonunuzda çalışması mümkün değildir.
Happy Testing!