Katalon’da Custom Keyword Kullanımı ve Plugin Yapımı

Ayfer Gürbüz
KoçSistem
Published in
5 min readNov 2, 2023

Test otomasyonunda scriptlerimizi yazarken, aynı işlevi gören kodları tekrar etmek yerine genel metodlar haline dönüştürmek gerekir.

Yazılım geliştirmede fonksiyon kullanımı ne kadar önemliyse test scriptlerinin oluşturulması için de aynı şekilde önemlidir. Test scriptlerinin geliştirme sürecini daha organize, daha verimli ve sürdürülebilir hale getirir. Testin daha iyi anlaşılmasına, daha kolay bakımına ve daha hızlı geliştirilmesine yardımcı olur. Bu nedenle fonksiyonlar test otomasyonunda da önemli bir unsuru olarak kabul edilir.

Fonksiyon kullanımının bazı faydalarından bahsetmek gerekirse;

  • Kodun modulerliğini sağlar. Kodu daha küçük, yönetilebilir parçalara böler, böylece her bir parçayı bağımsız olarak test edebilir ve bakımını yapabiliriz. Koddaki her işlev, belirli bir görevi yerine getirir, bu da kodun daha düzenli ve anlaşılır olmasını sağlar.
  • Fonksiyonlar, belirli bir işlemi veya görevi yapan kodu yeniden kullanılabilir hale getirir. Aynı işlevi birden fazla yerde kullanmak istediğinizde, her seferinde aynı kodu yeniden yazmak zorunda kalmayız. Bu, kodunuzu daha verimli hale getirir.
  • Bir hata bulunduğunda hatayı izole etmeyi kolaylaştırır. Her fonksiyonun kendi bağlamı vardır ve bu, hataların kaynağını belirlemeyi daha kolay hale getirir.
  • Çoğu yazılım geliştirme projesinde olduğu gibi otomasyon scriptleri de çok sayıda uzman tarafından yapılır. Fonksiyonlar, bir ekibin farklı üyeleri tarafından yazılabilir ve daha sonra kolayca bir araya getirilebilir.
  • Test otomasyonunda fonksiyon kullanmak, kodun bakımını kolaylaştırır. Herhangi bir işlevde bir değişiklik yapılması gerektiğinde, sadece o işlevi güncellemek yeterli olacaktır, diğer kod parçalarına dokunmak gerekmeyebilir.
  • Fonksiyonlar, scriptleri daha verimli hale getirmeyi sağlayabilir. Özellikle sıkça kullanılan işlemleri fonksiyonlara dönüştürerek scriptlerin daha hızlı çalışmasını sağlayabiliriz.
  • Fonksiyonlar, scriptlerimizdeki belirli işlemleri açıkça adlandırmamızı sağlar. Bu, scriptin başkalarına yol göstermesine veya gelecekte bizim konuyu daha kolay hatırlamamıza yardımcı olur.

Faydalarından yeterince bahsettik sanırım :) Şimdi de bir süredir web test otomasyon aracı olarak kullanmakta olduğum Katalon Studio’da, custom keyword kullanımından ve bu keywordlerin kütüphane haline getirilerek diğer projelerde de kullanılabilmesi için plugine dönüştürülmesinden bahsedeceğim.

Katalon projemizin Keywords klasorunun altında örnek metodlar yer alıyor. Buraya yenilerini ekleyebileceğimiz gibi yeni paket ve altında keywordleri yazacağımız class adını girerek, fonksiyonları ekleyeceğimiz yeni bir class da oluşturabiliriz.

Kategorilerine göre paket ve classları isimlendirebilir, böylece bu classların altında ilgili keywordleri oluşturarak kullanım kolaylığı da sağlayabiliriz.

Bu şekilde yeni ve boş bir class oluşturulmuş olur. Katalon’da keyword yazarken kullanacağımız dil javascript ya da groovy olacaktır.

Öncelikle @Keyword başlığı ile kod bloğunun bir keyword olduğunu belirtiyoruz. Sonrasında ise metodumuzu isimlendirip input parametrelerimizi belirliyoruz. Metodun işlevi için gerekli kodları ekledikten sonra gerekli ise dönüş parametresi de ekleyerek keywordumuzu kaydedebiliriz. Bu adımları izleyerek bir class altında birden fazla keyword ekleyebiliriz.

Kaydettikten sonra projemizi Refresh ederek keywordleri test scriptlerimizde kullanmaya başlayabiliriz.

Testimizin içerisinde Add>Custom Keyword seçerek yazdığımız keywordleri ekleyebiliriz.

Custom keyword eklediğimizde tanımlı tüm keywordler “Paket adı.Class adı.Keyword adı” şeklinde listelenecektir. Doğru isimlendirme ve keyword e ekleyeceğimiz açıklamalar bu aşamada işimizi kolaylaştıracaktır.

Script modda kullanmak istersek de “CustomKeywords.” dediğimizde tanımlı tüm keywordlerin listelendiğini görebiliriz. Listeden seçip aşağıdaki gibi scriptlerimize ekleyerek kullanabiliriz. Bu şekilde çok kullanacağımız metodları tek bir komutla projemizin içerisinde istediğimiz yerden çağırabiliriz.

Örnek script

Plugin haline getirilmesi

Bir projede yazdığımız custom keywordleri diğer projelerde de kullanabilmek için plugin haline getirebiliriz.

Bunun için sırasıyla bu işlemleri yapmamız gerekir;

Jar dosyası oluşturulması

1. Katalonda yeni bir proje açılır.

2. Keyword klasörüne gidilir. İçerisine “katalon-plugin.json” isimli bir json dosyası eklenir.

Bir notepad e aşağıdaki gibi yazılarak json formatında kaydedilir.

{
"keywords": ["com.kocsistem.katalon.TestUtility"]
}

3. Projenin ana klasörüne build.gradle dosyası oluşturulur.
bir Notepad e aşağıdaki gibi yazılarak .gradle olarak kaydedilir.

plugins {
id 'java'
id 'groovy'
id "com.github.johnrengelman.shadow" version "7.1.2"
id "com.katalon.gradle-plugin" version "0.0.7"
}
repositories {
jcenter()
mavenCentral()
}
sourceSets {
main {
groovy {
srcDirs = ['Keywords', 'Include/scripts/groovy']
srcDir 'Libs'
}
}
}
shadowJar {
exclude 'Temp*.class'
}
katalon {
dependencyPrefix = "com.katalon"
minimize = false
}
dependencies {
}

4. Proje ana klasörünün altında bir komut istemi açılarak
“gradle katalonPluginPackage” komutu çalıştırılır.

Ör:

cd C:\XXXXX\Katalon Studio\TestUtilityKeyword
gradle katalonPluginPackage

Gradle yüklü değilse https://gradle.org/ sitesinden güncel sürüm indirilir.

Bkz https://gradle.org/install/

Windows kullanıcıları için, komut isteminde kullanabilmek için enviroment variable olarak path değişkenine “C:\gradle-8.0.2\bin” eklenir.

5. Gradle komutu başarılı bir şekilde çalıştığında projenin build/libs klasorunde jar dosyası oluşmuş olacaktır.

Jar dosyasının kullanımı

1. Jar dosyası projenin Plugins klasörüne kopyalanır. Proje refresh edildiğinde Plugins altında görünecektir.

2. Eklediğimiz classın metodlarını test senaryomuzdaki scriptlere TestUtility utility=new TestUtility() ekleyerek kullanabiliriz.

Test sxriptlerimiz bu şekilde görünecektir.

Jar dosyasının güncellenmesi

Keywordlerimize yeni metodlar eklediğimizde jar dosyasının güncellenebilmesi “gradle katalonPluginPackage” komutunun tekrar çalıştırılması gerekir. Oluşan jar dosyası yine Plugins klasorune eklenerek güncel metodlar kullanılabilir.

Eklenen metodların kullanım listesine geldiği görülür.

Katalon custom keywords kullanımını merak eden veya test otomasyonu ile ilgilenenler için umarım yazdıklarım yol gösterici olmuştur. Farklı deneyimler ile buluşmak üzere hoşçakalın :)

--

--