19 Aralık 2019

Katalon Studio ile Test Otomasyonu – Bölüm 1

Yazılım dünyasında her geçen gün otomatik testlerin ve test otomasyon toollarının önemi artmaktadır. Bu nedenle şirketler birden çok test toolu veya test frameworkleri kullanmakta olup ihtiyaca, maliyete göre kullanılan teknolojiler değişmektedir.

Yazılım dünyasında her geçen gün otomatik testlerin ve test otomasyon toollarının önemi artmaktadır. Bu nedenle şirketler birden çok test toolu veya test frameworkleri kullanmakta olup ihtiyaca, maliyete göre kullanılan teknolojiler değişmektedir.

Katalon Studio ile API Testi, Web Testi, Mobil Testleri otomatik halde gerçekleştirebilirsiniz.  Java tabanlıdır ve Selenium altyapısını kullanır. Eclipse Ide’sinin birçok özelliğini içinde barındırır. Yazılımı eksiksiz bir paket ve framework ile geldiği için indirip kurulum yaptıktan sonra farklı eklentiler yüklemeye gerek yoktur.

Diğer önemli konulardan biri ise Katalon Studio’nun Cross-Platform özelliğini barındırmasıdır. Yani bu şu anlama geliyor. Örneğin testiniz hazır ve çalıştırmak istiyorsunuz. Testinizi çalıştırmadan önce Katalon Studio “Google Chrome, Firefox, Safari, İnternet Explorer vs.” gibi ortamlardan herhangi birini seçmeniz yeterli olacaktır. Tek yapmanız gereken çalıştırmak istediğiniz tarayıcının yüklü olduğundan emin olmanızdır.

15

Katalon Studio yazılım dünyasında sıklıkla kullanılan şu araçlar ile entegre olabilir:

  • Jenkins, Bamboo, Docker
  • Git
  • Jira , qTest, TestRail
  • Circle ci
  • Slack
  • Sauce labs
  • Kobiton
  • Selenium grid

Kurulumu oldukça kolaydır. Kurulum için şu adımları izlemeniz yeterlidir:

  1. https://www.katalon.com/ giriniz.
  2. Sağ üstte “Download Now” tıklayınız.
  3. Üyeliğiniz yoksa üye olduktan sonra ”Download Now” tıkladıktan sonra bilgisayarınız işletim sistemine göre ve özelliklerine göre (Örneğin Windows 64 bit) seçtikten sonra “download” tıklanır.     
  4. Son olarak İndirilen zip içerisindeki “katalon” dosyasını tıklamanız yeterli olacaktır.

Katalon Studio Manuel Mode, Record Mode, Script Mode şeklinde farklı geliştirme seçenekleri sunmaktadır. Test geliştiricileri için senaryolarını kolay ve güçlü bir şekilde otomatize etmek için işlerini oldukça kolaylaştırır. Test geliştiricisi bu mode’lar ile farklı test senaryoları oluşturabilir. Oluşturmuş olduğu senaryolar için farkı Test Suitleri oluşturup senaryolarını koşturabilir.(Özellikle regresyon testleri için oldukça başarılıdır.)

Manuel Mode ile test senaryoları oluştururken, çok iyi seviyede bir kod bilgisi gerekmez. Yalnızca “Spy Web” özelliğini kullanmaya hakim olmak yeterlidir.  Spy Web dom üzerindeki ID, name, class, xpath vb. üzerinde objeleri sizin yerinize bulmaya yardımcı olur Bu sayede size bir Object Repository yaratır. (Dom üzerindeki elementleri bulmayla alakalı daha detaylı bilgi için http://www.proven.com.tr/tr/38800/Selenium-Web-Driver-ve-Page-Factory-Kullanarak-Web-Otomasyonu)

17

Record Mode özelliği sayesinde Katalon Studio sizin Web üzerindeki aktivitelerinizi aynı senaryo sırası ile kayıt altına alır. Bu da test senaryolarınızı kolay bir şekilde oluşturma şansı kılar. Record özelliği Katalon Stdudio’nun güçlü bir özelliğidir.18

Script modu özellikle kod yazabilen test geliştiriciler için çok kullanılan bir seçenektir. Belki de Katalon Studio’nun en güçlü özelliğidir diyebiliriz. Java ve groovy desteği sunması kendi Custom Keyword’lerini oluşturmayı ve bunu istediğiniz senaryo içerisinden çağırmanızı sağlar. Aynı zamanda test dünyasında kullanılan frameworkleri kullanma olanağı da verir.(Örneğin Page Object Model.)

16

 

Katalon Studio ile test suite oluşturabilir, yazmış olduğunuz test case’lerinizi istediğiniz sıra ile koşturabilirsiniz. Koşturmuş olduğunuz test senaryolarının kaçının başarılı olduğunu, kaçının başarısız olduğunu bu sayede takip edebilirsiniz. Bu da test sonuçlarının kolayca raporlanabileceği anlamına gelmektedir.

20

21

 

Test otomasyon uygulamalarında genellikle arayüz üzerindeki elementlere ulaşmakta zorluk çekilmektedir. Özellikle iç içe geçmiş ve dinamik olarak değişen elementlerin tanımlanması zordur. Xpath tanımlamak Id, Name, Class tanımlanamayan iç içe geçmiş ögeleri bulmak için etkili bir yoldur. Xpath’i kolay bir şekilde bulmak için genellikle 2 yol vardır:

  • Web tarayıcıları üzerinde develepor tools kullanılarak bulunur. İlgili elementin üzerinde  “right click -> inspect” yönetimi uygulanır. Daha sonra xpathi bulmak için develeper tools üzerinde ilgili elementin tagi üzerinde “right click ->copy->copy xpath” yolu izlenir. Bunun için web tarayıcıları için yazılmış eklentileri de kullanabilirsiniz.  (Örneğin; Google chrome için Chro Path eklentisi kullanılabilir.)

             find xpath

  • Katalon üzerinde elementlerin ne kadar iç içe olduğuna bakılmaksızın Html ögeleri için “Object Spy” yönetimi ile kolay bir şekilde xpath oluşturulabilir. DOM ağacı üzerinde teker teker aramak zorunda kalmadan bu yöntem ile Xpath üretilebilir ve kullanılır.

        Detecting-elements-with-Xpath-1

  • Dinamik değişen öğeler için otomasyon üzerindeki test senaryoları için sabit Xpathler belirlemek gerekir. Bunun için Xpath tanımlarken “following-sibling, contains, starts-with” kullanılabilir. Örnek Xpath://h2[text()=’Makale] , //*[contains(text(),’Login’)]

Test Otomasyonlarında sürdürülebilirlik genellikle ağ kararlılığı, internet hızı, AUT(Application Under Test) performansı ve test koşturulan bilgisayarın performansı gibi faktörler ile birebir bir ilişki içerisindedir. Bu nokta da otomasyon içerisinde “Wait” kavramı çok önemli bir yer tutar. Sıklıkla karşılaşılan iki problem:

  • Yazılmış olan bir test scriptinin uygulamayı beklemesinden dolayı başarısız olmasıdır. Genellikle ağ gecikmesi, gecikmiş veritabanı istekleri veya sistemin isteğe göre işleme koyulması ve yanıtlanması için daha fazla zamana ihtiyacı olması nedeniyle oluşur.
  • Diğeri ise; tarayıcıda elemanların(Web elementlerinin) gösterilmesini veya görüntülenmesini beklerken meydana gelir. Uygulama çalışıyor veya yükleniyor olabilir, ancak bazı öğeler yüklenmeyebilir, bu durum yazılan test scriptlerinin başarısız olmasına neden olabilir.

Bu durumları önlemek için Katalon Studio içerisinde şu metotlar geliştirilmiştir:

  • Wait For Page Load : Komut dosyanızda bir adım atmadan önce bir sayfanın tamamen yüklenmesini bekleyecektir. (WebUI.waitForPageLoad())
  • Wait For Element Present : Bazen web öğelerinin sayfada görünmesi daha uzun sürebilir. Bu anahtar kelime, hedeflenen öğe sayfada görünene kadar yürütmeyi duraklatır. Öğe göründüğünde, test sonraki eylemi gerçekleştirmeye devam eder. (WebUI.waitForElementPresent())
  • Global variable : Uygulamanın genelinde kullanılabilir. Yazılan test scriptlerinde uygulamanın yanıt süresine göre kullanılabilir. Kısa, orta ve uzun beklemeler için kullanılabilir.

Proven Test Hizmetleri ekipleri , Entegre Test Yönetimi Yaklaşımı, Bağımsız Test ve Dış Kaynak Hizmetleri ile müşterilerinin yazılım ve bilişim alanındaki ürün ve hizmetlerinin kalitesini arttırmak için alternatif çözümler sağlamaktadır. Konuyla ilgili sorularınız için fziyan@provenbilisim.com adresine e-posta atarak ulaşabilirsiniz.

Fatihan Ziyan

Referanslar:

https://docs.katalon.com/katalon-studio/docs/index.html

https://github.com/katalon-studio/katalon-studio/releases

https://dzone.com/articles/kickstart-the-automation-testing-using-katalon-stu-1

https://www.toolsqa.com/katalon-studio-tutorial/