introduction sikuli gui automation tool sikuli tutorial 1
Her zaman olduğu gibi okuyucularımız için öğrenecek yeni şeyler getirmeye çalışıyoruz. Bugün ilginç bir GUI otomasyon aracı olan Sikuli'yi keşfedelim.
Sikuli Grafik Kullanıcı Arayüzü (GUI) otomasyon aracını kullanarak 'gördüğünüz her şeyi otomatikleştirin' - yeni başlayanlar için eksiksiz kılavuz hızlı bir şekilde kurun ve Sikuli Komut Dosyası aracını kullanmaya başlayın Bu derinlemesine Sikuli Öğreticileriyle.
Sikuli GUI öğelerini tanımlamak için görüntü tanıma yöntemini kullanarak ekranda gördüğünüz her şeyi otomatikleştirir. Sikuli betiği, kullanıcıların ekran görüntülerini kullanarak GUI etkileşimini otomatikleştirmesine olanak tanır.
Bu Sikuli Serisindeki Öğreticiler Listesi
Bu seriyi 3 kısma ayırdık:
Öğretici 1: Nasıl Çalışır, Basit Bir Sikuli Projesi Nasıl Oluşturulur.
Öğretici # 2: Sikuli, Web Sayfalarını Otomatikleştirmek İçin Selenium Web Sürücüsü ile Nasıl Kullanılabilir?
Öğretici 3: Sikuli Aracı Kullanarak Flash Tabanlı Uygulamaları Otomatikleştirme
Ne öğreneceksin:
Sikuli GUI Otomasyon Aracı
Bu serinin 1. bölümüyle başlayalım.
Sikuli 'Görsel Görüntü Eşleştirme' yöntemini kullanarak Grafik Kullanıcı Arayüzlerini (GUI) otomatikleştirmek için bir araçtır. Sikuli'de tüm ağ elemanları görsel olarak alınmalı ve proje içerisinde saklanmalıdır. Sikuli, parametre olarak geçirdiğimiz görüntü olan görüntü görsel eşleşmesine ve tüm yöntemlerle birlikte GUI etkileşimlerini tetikleyecektir.
Sikuli, flash nesnelerini (kimliği veya adı olmayan) otomatikleştirmek için çok yararlı olabilir. Kararlı bir GUI'ye sahip olduğumuz (yani GUI bileşenlerinin değişmediği) durumda faydalı olabilir.
Pencere tabanlı uygulamalar bile Sikuli kullanılarak otomatik hale getirilebilir. Sikuli, Selenium WebDriver ile birlikte kolayca kullanılabilen oldukça kullanıcı dostu Sikuli-script.jar sağlar. Sikuli kullanarak web sitesinde Adobe Video / Audio oynatıcı, Flash Games'i bile otomatikleştirebiliriz. Basit API ile kodlamayı kolaylaştırır.
Pratik Kullanımlar
- Sikuli, Flash Nesnelerini / Flash Web Sitelerini otomatikleştirmek için kullanılabilir.
- Pencere tabanlı uygulamayı otomatikleştirmek faydalı olabilir. Ekranda gördüklerimizi otomatikleştirebiliriz.
- Basit API sağlar. yani, tüm yöntemlere ekran sınıfı nesneleri kullanılarak erişilebilir.
- Selenium ve diğer tüm araçlarla kolayca entegre edilebilir.
- Sikuli'yi kullanarak masaüstü uygulamalarını otomatik hale getirebiliriz.
- Otomasyon test araçlarının çoğu flash nesne otomasyonunu (Örn.Selenium) desteklemez. Sikuli, flash nesnelerini otomatikleştirmek için kapsamlı destek sağlar.
- Masaüstü ve flash nesnelerini otomatikleştirmek için güçlü bir 'Görsel Eşleştirme' mekanizması kullanır.
Faydaları
- Açık kaynak Aracı.
- Sikuli'nin en büyük avantajlarından biri, Flash nesnelerini kolayca otomatikleştirebilmesidir.
- Windows uygulamasının otomatikleştirilmesini kolaylaştırır.
- Geliştirme aşamasındaki bir uygulamayı test ederken ve öğelerin kimliğini / adını bilmiyorsanız, Sikuli ile gidebilirsiniz. Görüntünün görünümünü kontrol edecek ve eşleşme bulunursa, görüntü ile buna göre etkileşime girecektir.
Ön koşullar:
Başlamadan önce aşağıdaki yazılımı indirip yüklememiz gerekiyor:
- Herhangi bir ekran görüntüsü yakalama aracı ( Örneğin, DuckCapture veya qSnap )
- JDK
- Eclipse (ayrıntılı adımlar İşte JDK ve Eclipse'i yüklemek için)
Sikuli Java Projesi Oluşturma Adımları
Adım # 1: Sikuli İndir - Sikuli'yi buradan indirin İşte .
Adım 2: İndirdiğiniz zip dosyasını çıkarın. Sikuli-script.jar dosyasını içerecektir. Çıkarılan bu dosyayı yerel dosya sisteminize kaydedin.
Aşama 3: Eclipse'i açın.
Adım 4: Bir java projesi dosyası oluşturun -> Yeni -> Java Projesi
Adım 5:
- Projeye sağ tıklayın
- Yol Oluştur'a gidin-> Derleme Yolunu Yapılandırın
- Kitaplıklar sekmesine geç
- 'Harici Kavanoz Ekle' düğmesini tıklayın ve Derleme Yolunda Sikuli-Script.jar Ekle'yi tıklayın.
- 'Tamam' ı tıklayın
Sikuli-script.jar proje derleme yolunuza eklenecektir. Sen bittin. Artık bu projenin içinde Sikuli betikleri yazmaya başlayabilirsiniz.
Bazı Sikuli Yöntemleri
# 1) Ekran Sınıfı İçin Nesne Oluşturma
Ekran, Sikuli tarafından sağlanan bir temel sınıftır. Önce bu ekran sınıfı için bir nesne oluşturmamız gerekiyor, o zaman sadece Sikuli tarafından sağlanan tüm yöntemlere erişebiliriz.
Sözdizimi:
Ekran s = yeni Ekran ();
# 2) Bir Öğeye Tıklayın
Bu yöntem, ekranda bulunan belirli bir görüntüye tıklamak için kullanılır.
Sözdizimi:
s.click ('<>”);
Örneğin,
s.click (“test.png”);
# 3) Bir Öğeye Sağ Tıklama
Bu yöntem, ekranda bulunan belirli bir görüntüye sağ tıklamak için kullanılır.
Sözdizimi:
s.rightClick ('<>”);
Örneğin,
s.rightClick (“test.png”);
# 4) Bir Eleman Bul
Bu yöntem, ekranda bulunan belirli bir öğeyi bulmak için kullanılır.
örneklerle sistem geliştirme yaşam döngüsü aşamaları
Sözdizimi:
s.find ('<>”);
Örneğin,
s.find ('test.png');
# 5) Bir Öğeye Çift Tıklama
Bu yöntem, ekranda bulunan belirli bir görüntüde çift tıklama olayını tetiklemek için kullanılır.
Sözdizimi:
s.doubleClick ('<>”);
Örneğin,
s.doubleClick (“test.png”);
# 6) Ekranda bir Eleman olup olmadığını kontrol edin
Bu yöntem, belirtilen elemanın ekranda olup olmadığını kontrol etmek için kullanılır.
Sözdizimi:
s.exists ('<>”);
Örneğin,
s.exists ('test.png');
# 7) Metin Kutusuna bir dize yazın
Bu yöntem, Metin kutusuna belirtilen metni girmek için kullanılır.
Sözdizimi:
s.type ('<>”,” Yazılacak dizge ”);
Örneğin,
s.type ('test.png', 'HI !!');
# 8) Belirli bir görüntü üzerinde gezinmek
Bu yöntem, eleman görüntüsü üzerinde tekerlek hareketi gerçekleştirmek için kullanılır.
Sözdizimi:
s.wheel ('<>',<>,<>);
Örneğin,
s.wheel ('test.png', 25,0);
# 9) Bir Resmi / Öğeyi Sürükle ve Bırak
Bu yöntem, belirli bir görüntüyü kaynak konumdan hedef konuma sürükleyip bırakmak için kullanılır.
Sözdizimi:
s.dragDrop ('<>','<>”);
Örneğin,
s.dragDrop (“test.png”, ”test1.png”);
# 10) Belirli bir görüntünün üzerine gelin
Bu yöntem, belirtilen görüntü üzerinde dönme üzerine gelme olayını gerçekleştirmek için kullanılır.
Sözdizimi:
s.hover ('<>”);
Örneğin,
s.hover ('test.png');
# 11) Kopyalanan Dizeyi Yapıştır
Bu yöntem, metni belirtilen metin kutusuna yapıştırmak için kullanılır.
Sözdizimi:
s. yapıştır ('<>','Ölçek');
Örneğin,
s.paste ('test.png', 'test');
Sikuli Örnekleri
# 1) YouTube Videosu - Bir Videoyu Duraklatın ve Oynatın
Aşama 1) Bir YouTube video bağlantısı açın ve ekran yakalama aracını kullanarak öğe görüntülerini yakalayın ve duraklatın.
Duraklat düğmesi ( Not: dosya adı pause.png)
en iyi ücretsiz sistem temizleyici Windows 10
Oynatma düğmesi ( Not: dosya adı play.png'dir)
Bu görüntüleri projenin içine kopyalayın.
Adım 2) Oluşturulan Sikuli java projesinin içinde bir paket oluşturun ve bunun içinde “Youtube” adlı bir sınıf oluşturun.
Aşama 3) Bu sınıfın içine aşağıdaki kodu yazın.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class Youtube { public static void main(String() args) throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find('pause.png'); //identify pause button s.click('pause.png'); //click pause button System.out.println('pause button clicked'); s.find('play.png'); //identify play button s.click('play.png'); //click play button } }
Adım # 4) Sınıfa sağ tıklayın Farklı Çalıştır -> Java Uygulaması'nı seçin.
# 2) Not Defterini Açın ve Biraz Metin Yazın
Adım # 1) Ekranda masaüstündeki not defteri simgesini yakalayın.
notepad_icon.png
notepad.png
Adım # iki) Bu görüntüleri projenizin içine kopyalayın.
Aşama 3) Projenizin içinde 'NotepadExample' adlı bir sınıf oluşturun ve aşağıdaki kodu yazın.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class NotepadExample { public static void main(String() args) throws FindFailed { // TODO Auto-generated method stub Screen s=new Screen(); s.click('notepad_icon.png'); s.find('notepad.png'); s.type('notepad.png','This is Nice Sikuli Tutorial!!!!'); } }
Adım 4) Kodu çalıştırmadan önce test edilecek ekranı açın.
Bu dosyayı sağ tıklayarak çalıştır -> Java Uygulaması.
# 3) Sürükle ve Bırak
Aşama 1) Ekrandaki gerekli öğelerin ekran görüntüsünü alın ve Sikuli projenizin içine koyun.
( Not: burada, indirilenler simgesi 'kaynak.png' ve çiçek resmi 'hedef.png' dir)
Adım # iki) Bu resimleri projenizin içine koyun.
Adım # 3) 'DragAndDrop' adında bir sınıf oluşturun ve aşağıdaki kodu yazın.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class DragAndDrop { public static void main(String() args) throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find('source.png'); System.out.println('Source image found'); s.find('target.png'); System.out.println('target image found'); s.dragDrop('source.png', 'target.png'); } }
Adım # 4) Farklı Çalıştır -> Java Uygulaması'na sağ tıklayarak bu komut dosyasını çalıştırın.
Bu komut dosyasının çalıştırılmasından sonra, indirme simgesi, hedef olarak gösterilen resmin üzerine sürüklenecek ve bırakılacaktır.
Yürütmeden Önce:
Yürütmeden Sonra:
Bu Aracın Dezavantajları
- Görüntü eşleşmesinin her zaman doğru olacağını garanti edemeyiz. Bazen ekranda iki veya daha fazla benzer görüntü varsa, Sikuli yanlış görüntüyü seçmeye çalışır.
- Ve görüntünün görünümü piksel boyutuna göre değişirse, bu aynı zamanda 'Bulma Başarısız' istisnasına neden olur.
- Çok fazla ekran görüntüsü almanın yükü.
- Ekran görüntüsünden herhangi biri eksikse, programın yürütülmesini etkileyecektir.
Daha fazla kaynak:
Sonuç
Sikuli, flash nesnelerin otomatikleştirilmesinde çok kullanışlıdır. Pencere tabanlı uygulamaları otomatikleştirmek için kullanılabilir. Görsellerine göre ekrandaki öğelerle oynamak harika bir araçtır.
Yazar hakkında: Bu Anitha Eswari'nin misafir yazısı. Şu anda manuel ve otomasyon testleri ve çeşitli test yönetimi araçları hakkında sağlam bilgiye sahip kıdemli bir test mühendisi olarak çalışıyor.
Sonraki Eğitim : Bu serinin bir sonraki bölümünde Sikuli maven projesini oluşturmaya ve Selenium'u Sikuli ile nasıl entegre edeceğimize derinlemesine bakalım.
Bu aracı zaten kullanıyor musunuz? Lütfen deneyiminizi ve ipuçlarınızı paylaşın. Başlamak istiyor ancak sorularınız varsa bize bildirin.
Önerilen Kaynaklar
- Sikuli GUI Otomasyon Test Aracı - Başlangıç Kılavuzu Bölüm # 2
- GUI Test Otomasyonu İçin En İyi 30 GUI Test Aracı (2021 LIST)
- SeeTest Otomasyon Eğitimi: Mobil Test Otomasyon Aracı Kılavuzu
- Rational Robot'un Öğrenme Temelleri - IBM Test Automation Tool
- Geb Eğitimi - Geb Aracını Kullanarak Tarayıcı Otomasyon Testi
- Test Uzmanları için Yararlı Ücretsiz Ekran Yakalama ve Ek Açıklama Aracı - qSnap İncelemesi
- Katalon Studio Eğitimi: Beklediğiniz Ücretsiz Bir Test Otomasyon Aracı
- Sikuli Aracı Kullanarak Flash Tabanlı Uygulamaları Otomatikleştirme