Appium'da G?rsel Tan?ma ile Bir Butona T?klama  ?al??mas?
appium

Appium'da G?rsel Tan?ma ile Bir Butona T?klama ?al??mas?

Mobil uygulama otomasyonu, kullan?c? deneyimini geli?tirmek ve yaz?l?m geli?tirme süre?lerini h?zland?rmak i?in kullan?lan ?nemli bir tekniktir. Bu süre?te, bir uygulaman?n i?levselli?ini test etmek veya belirli eylemleri ger?ekle?tirmek amac?yla kullan?c? ara yüzündeki bile?enlere otomatik olarak eri?im sa?lan?r. ??te bu noktada g?rsel tan?ma ve g?rüntü e?le?tirme y?ntemleri devreye girer. A?a??da, bir butona t?klama eyleminin nas?l ger?ekle?tirilece?ine dair detayl? bir inceleme sunulmaktad?r.

1. Otomasyonun Temel Prensipleri

Mobil uygulama otomasyonu, kullan?c? etkile?imlerinin simüle edilmesi ile ger?ekle?tirilir. Bunun i?in s?kl?kla kullan?lan ara?lardan biri Appium’dur. Appium, farkl? mobil platformlar üzerinde uygulama testleri yapmak i?in kullan?lan bir a??k kaynakl? test otomasyon framework’üdür. Kullan?c? arayüzü bile?enleri ile etkile?im sa?lamak i?in ?e?itli y?ntemler sunar.

2. G?rsel Tan?ma Nedir?

G?rsel tan?ma, bir g?rüntüde belirli ??eleri veya bile?enleri tan?mlamak i?in kullan?lan bir tekniktir. Mobil uygulamalarda g?rsel tan?ma, bir ekran g?rüntüsünü alarak bu g?rüntü üzerinde belirli ??eleri (?rne?in, butonlar, simgeler) bulmay? i?erir. Bu süre?, ekran g?rüntüsü ile ?nceden belirlenmi? bir g?rüntü (?rne?in, bir buton resmi) aras?nda kar??la?t?rma yaparak ger?ekle?tirilir.

G?rsel tan?may? kullanmak i?in appium eklentisi olan "image" kullanaca??z. Bu bize g?rüntü i?lemede kullanaca??m?z gü?lü bir kütüphaneyi "opencv" entegre etmemize olanak sa?layacakt?r. Opencv bilgisayarla g?rme (computer vision) ve makine ??renimi (machine learning) alan?nda kullan?lan a??k kaynakl? bir kütüphanedir. OpenCV, yüz tan?ma, hareket izleme, g?rüntü segmentasyonu ve nesne takibi gibi bir?ok uygulama alan?nda kullan?l?r. Ayr?ca, robotik, otonom ara?lar ve art?r?lm?? ger?eklik gibi alanlarda da yayg?n olarak tercih edilir.

Biz bu kütüphaneyi appium image plugin ile birlikte kullanabiliyoruz. Bu nedenle gerekli eklentiyi yükleyip aktif ediyoruz.

appium plugin install images
appium --use-plugins=images        

Gerekli plugin aktif edildikten sonra hedef ald???m?z buton gibi ?rnek bir ??enin yüksek ??zünürlüklü foto?raf?na ihtiyac?m?z vard?r. Bunun i?in resmi file olarak olusturuyorum.


hedef buton
// Buton resmini File olarak olu?turun
File partialImage = new File(buttonImagePath);        

Ekran goruntusunde hedef ??eyi arayaca??m i?in screenshot alaca??m

 // Ekran g?rüntüsünü al?n
  File fullImage = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);        

?imdi elimdeki g?rüntülerde k?smi e?le?me arayaca??m e?le?me sa?lan?rsa bana bir sonu? d?ndürecektir.

OccurrenceMatchingResult result = driver.findImageOccurrence(fullImage, partialImage);        

E?le?me sa?land?ktan sonra e?le?menin bir dikt?rtgen alan i?inde ger?ekle?ece?inden koordinatlar?n? alaca??z.

 Rectangle rect = result.getRect();
            if (rect != null) {
                // E?le?menin koordinatlar?n? al?n
                int x = rect.x; // X koordinat?
                int y = rect.y; // Y koordinat?        

Koordinatlar elimizde oldu?una g?re art?k rahatl?kla dokunabiliriz

  // Koordinatlara t?klamak i?in W3C kullan
                PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
                Sequence tap = new Sequence(finger, 1);

                // Dokunma hareketini tan?mla
                tap.addAction(finger.createPointerMove(Duration.ofMillis(0), PointerInput.Origin.viewport(), centerX, centerY));
                tap.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg())); // Sol fare butonuna bas
                tap.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));   // Sol fare butonunu b?rak

                // Eylemi ger?ekle?tir
                driver.perform(Arrays.asList(tap));        

?rnek bir ?al??t?rma g?sterilmektedir.


Giris yap butonu hedef al?nm??t?r.


Akif G.

ISTQB? Certified Software QA Test Engineer

1 个月

Harika bir ?al??ma olmu?, te?ekkürler.:)

要查看或添加评论,请登录

mustafa livdemirci的更多文章

其他会员也浏览了