Appium Maven Bağımlılığı: Kurulumu şu şekilde yapılır: Eclipse Proje Örneği

⚡ Akıllı Özet

Appium Maven bağımlılık yönetimi, bir mobil otomasyon projesinin pom.xml dosyasında java-client yapısını tanımlamasına olanak tanır; böylece Maven her jar dosyasını otomatik olarak çözümler ve aynı derleme, manuel indirmelere gerek kalmadan herhangi bir makinede çalışır.

  • ???? Maven'ın yaptığı işler: Apache Maven Tek bir bildirimsel pom.xml dosyasından derleme yaşam döngüsünü yönetir ve bağımlılıkları çözer.
  • ☑️ Bir eser: io.appium java-client bağımlılığı şunları içerir: Selenium API, uzaktan sürücü ve destek JAR dosyaları birbirleriyle dolaylı olarak ilişkilidir.
  • Sürüm disiplini: Java istemci sürümünü aşağıdakiyle eşleştirin. Selenium Çalışma zamanında NoSuchMethodError hatasını önlemek için belirtilen aralık.
  • 🧪 Sabit düzen: Surefire yalnızca src/test/java altındaki sınıfları çalıştırır, bu nedenle yanlış yere yerleştirilen testler derlenir ancak asla çalıştırılmaz.
  • Komut satırı: `mvn clean test` komutu, test paketini derler ve çalıştırır, sonuçları `target/surefire-reports` klasörüne yazar.
  • 📊 Önkoşul: Maven asla başlamaz Appium İster sunucu ister cihaz olsun, her ikisi de derleme başlamadan önce hazır olmalıdır.

Appium pom.xml ve java-client yapıtı ile Maven bağımlılık kurulumu

Nedir? Apache Maven?

Apache Maven bir Javatabanlı proje yönetimi ve otomasyon aracı. Geliştiricilerin tüm yapı yaşam döngüsünü kolaylaştırması için çoklu görev çerçevesi sağlar. Java uygulamalar. Maven, POM (Proje Nesne Modeli) adı verilen ve 'pom.xml' olarak anılan bir XML biçiminde önceden tanımlanmış ve bildirilmiştir. Ayrıca C#, Scala, Ruby vb. gibi diğer diller için de kullanılabilir.

Maven çerçevesini kullanarak, herhangi bir projede aşağıdaki görevleri kolayca yönetebilirsiniz:

  • Yapı döngüsü
  • Proje belgeleri
  • Rapor Kontrolleri
  • Scrum yönetimi
  • Bilgi vermek

Maven'ın temel kullanım alanları şunlardır:

  • Standart bir dizin yapısını zorlar.
  • Yeniden kullanılabilir ve bakımı kolay bir proje yapısı sağlayın.
  • Paket bağımlılıklarını çözün.
  • Bir yapılandırma yönetimi çerçevesi sağlayın.

Bu bağımlılık çözme yeteneği tam olarak bir Appium proje ihtiyaçları, çünkü Java istemci bir dizi işlemi içeri çekiyor Selenium Kimsenin elle indirmek istemediği dosyalar.

İndir Appium Maven Bağımlılıkları

Yazmaya başlamadan önce Appium Maven ile bağımlılık testi yapmak için, aşağıdaki dosyayı indirmeniz gerekiyor. Appium Maven bağımlılığı — Appium JAR dosyasını indirin — şuradan Maven merkezi deposu web sitesiAşağıdaki ekran görüntüsü, Maven Central'da java-client yapıtının listesini göstermektedir; burada yayınlanmış her sürüm ve hazır kod parçacığı mevcuttur.

Appium Maven merkezi deposu arama sayfasında java-client yapıtının listelenmesi

Veya aşağıda belirtilen POM.xml dosyasını doğrudan ekleyebilirsiniz:

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>3.4.1</version>
</dependency>

⚠️ Sürüm notu: the 3.4.1 Yukarıdaki koordinat orijinal örnektir ve bloğun doğru şeklini hala göstermektedir. W3C WebDriver protokolünden önceye dayanmaktadır, bu nedenle yeni bir proje sürüm numarasını yükseltmelidir. Bu yazının yazıldığı sırada, Maven Central'daki mevcut sürüm şudur: 10.1.1, hangi gereksinimler Selenium 4.42.0 veya üstü.

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>10.1.1</version>
</dependency>

Lütfen bizim üzerinden geçin Maven öğreticisi Maven'i nasıl yapılandıracağınızı öğrenmek için Eclipse.

Appium Maven Proje Yapısı ve Gerekli Bağımlılıklar

Maven sabit bir düzen dayatıyor ve bunu bilmek, bu kılavuzun ilerleyen bölümlerinde yaşanacak karışıklıkların çoğunu önlüyor. Oluşturulan bir proje dört önemli konum içerir:

  • pom.xml — Proje kök dizininde yer alan ve her bağımlılığın ve eklentinin tanımlandığı Proje Nesne Modeli.
  • src / main / java — uygulama ve yardımcı sınıflar.
  • src/test/java — test sınıfları ve Surefire eklentisinin bir derleme çalıştırdığınızda taradığı tek dizin.
  • hedef — Derlenmiş çıktı ve test raporları, her derlemede yeniden oluşturulur.

MKS Appium java-client, tek zorunlu bağımlılıktır çünkü bunu belirtir. Selenium API, uzaktan sürücü ve destek bileşenleri birbirine geçişli olarak çalışır. Birçok ekip hala bu konuda ısrarcı. Selenium Sürümün tek bir yerde görünür olması için açıkça belirtin ve bir test çalıştırıcısı ekleyin:

<dependencies>
  <dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>10.1.1</version>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.42.0</version>
  </dependency>
</dependencies>

İki sürümün uyumlu kalmasını sağlayın. Bir Java istemci sürümü şunu belirtir: Selenium desteklediği aralık ve eski bir istemciyi çok daha yeni bir istemciyle karıştırmak Selenium Çalışma zamanında NoSuchMethodError hatasının en yaygın nedeni budur. java-istemci deposu Her sürüm için eşleştirmeyi belgeliyor.

Uygulamanın Test Edilmesi Appium ve Maven

Bağımlılık ilişkisi kurulduktan sonra, Eclipse Aşağıdaki iş akışı, sıfırdan çalıştırılabilir bir proje oluşturur. Yapılandırma tamamlandıktan sonra... Appium Java Maven eklentisi içinde EclipseÇalışma alanı her türlü test için hazır. Android .apk uygulama Appium ve Maven, aşağıdaki şekilde gösterildiği gibi Appium Maven proje örneği aşağıdadır.

) 1 Adım Bu adımda,

  1. YENİ'ye gidin >> Maven projesini seçin
  2. 'İleri' düğmesine tıklayın.

Yeni proje sihirbazı, burada gösterildiği gibi Maven Projesi vurgulanmış olarak açılır.

Eclipse Yeni Proje sihirbazı, Maven Projesi seçili olarak.

) 2 Adım Ardından 'Yeni Maven Projesi' penceresinde şunu girin: 'Appium Grup Kimliği ve Yapıt Kimliği sütunlarına 'Test' yazın. Bu adımda şunları girmeniz gerekiyor:

  1. Grup kimliği
  2. Yapı Kimliği
  3. Sürümü
  4. Paketleme
  5. Isim ve Descriptiyon
  6. Bitiş

Tamamlanmış Yeni Maven Projesi formu aşağıdaki ekran görüntüsündeki gibi görünmektedir.

Yeni Maven Projesi penceresi, Grup Kimliği, Yapıt Kimliği, Sürüm ve Paketleme bilgileri doldurulmuş olarak açılıyor.

"Bitir" düğmesine tıklamak, tanımlanan Grup Kimliği altında yeni bir sınıf açacaktır (AppiumTest) adı.

) 3 Adım Başlangıç ​​olarak Appium Komut dosyasını oluşturmak için, sol taraftaki dosya gezgini penceresinde 'src/main/java' üzerine sağ tıklayın. Ardından Yeni >> sınıf'ı seçin. İçine aşağıdaki kodu yazın. Appium seçilen sınıfın içindeki kod.

Bu sınıfı oluşturmak için kullanılan bağlam menüsü aşağıda gösterilmiştir.

src/main/java üzerinde sağ tıklama menüsünde Yeni ve Sınıf seçenekleri görünüyor. Eclipse kâşif

) 4 Adım Aynı projede, sol taraftaki dosya gezgini menüsünden pom.xml'e tıklayın. Tüm bağımlılıklar varsayılan olarak 'pom.xml' sekmesinde görünür olacaktır. Aşağıdaki resme bakın.

pom.xml düzenleyici sekmesinde Eclipse çözümlenen proje bağımlılıklarını listelemek

Varsayılan pom.xml dosyası yoksa, tüm Maven kodlarını eklemeniz yeterlidir. Appium bağımlılıklar, örneğintracMaven merkezi deposu web sitesinden alınan bilgi:

https://central.sonatype.com/artifact/io.appium/java-client

Düzenlenmiş pom.xml dosyası şu şekildedir: Appium Eklenen bağımlılıklar aşağıda gösterilmiştir.

pom.xml kaynak kodunu görüntüledikten sonra Appium Java istemci bağımlılığı buraya yapıştırıldı.

) 5 Adım Şimdi, sol taraftaki dosya gezgininde 'pom.xml' dosyasına veya ' için XML koduna sağ tıklayın.Appium'Test' projesini başlatın. Ardından, aşağıda gösterildiği gibi 'Çalıştır >> Maven Clean' seçeneğine tıklayın.

Eclipse "Çalıştır" alt menüsünde Maven Clean seçeneği vurgulanmıştır.

Çalıştırırken, aşağıdaki konsol çıktısında olduğu gibi, Maven ile ilgili tüm jar dosyalarını ve bir başarı mesajını görebilirsiniz. İşte bir Maven çalıştırma yöntemi. Appium Java Maven ile yapılandırılmış bir ortamda istemci Maven bağımlılık testi.

Eclipse İndirilen Maven jar dosyalarını ve derleme işleminin başarıyla tamamlandığını gösteren konsol.

Nasıl Çalıştırılır Appium Maven Komutlarıyla Testler

MKS Eclipse Menü kullanışlıdır, ancak aynı derleme işleminin bir derleme sunucusunda otomatik olarak çalıştırılması gerekir ve burada komut satırı tek seçenektir. pom.xml dosyasının bulunduğu klasörde bir terminal açın ve şu komutları kullanın.

mvn clean
mvn clean test
mvn clean install
mvn test -Dtest=LoginTest

Her birinin kendine özgü bir görevi var:

  • mvn temiz siler target Bu sayede hiçbir eski dosya bir sonraki derlemeye kalmaz. Bu, kullanılan komuttur. Eclipse Yukarıdaki tetikleyicilere adım adım göz atın.
  • mvn temiz testi Projeyi derler ve test sınıflarını çalıştırır. Maven Surefire eklentisi bunları otomatik olarak alır. src/test/javavarsayılan dahil etme kalıplarını kullanarak Test*.java, *Test.java, *Tests.java hem de *TestCase.java.
  • mvn temiz kurulum Testleri çalıştırır ve ardından paketlenmiş yapıyı yerel deponuza yerleştirir, böylece başka bir proje ona bağımlı olabilir.
  • mvn test -Dtest=LoginTest Hata ayıklama sırasında çalıştırmayı tek bir sınıfa daraltır.

İki nokta insanları yanıltıyor. Birincisi, Appium Derleme başlamadan önce sunucunun zaten çalışıyor olması ve bir cihazın veya emülatörün bağlı olması gerekir, çünkü Maven ne sunucuyu ne de cihazı kendisi başlatmaz — cihazı bir komutla doğrulayın. adb Önce kontrol edin. İkinci olarak, sonuçlar yazılır. target/surefire-reportsBu, bir CI işinin arşivlemesi gereken klasördür. Surefire kullanım kılavuzu Yapılandırma seçeneklerini ayrıntılı olarak ele alır ve aynı komutlar bir işlemi gerçekleştirir. Appium süit Jenkins.

ortak Appium Maven Hataları ve Nasıl Düzeltilir

Bir dizi başarısızlıkta Appium Maven kurulumuyla ilgili sorunlar, test kodunun kendisinden ziyade, tekrarlanabilir birkaç nedenden kaynaklanır. Aşağıdaki tablo, her bir belirtiyi olağan çözümüyle eşleştirir.

Semptom Muhtemel sebep sabit
io.appium:java-client için bağımlılıklar çözümlenemedi. Yanlış sürüm dizesi veya Maven Central'a ağ erişimi yok. Koordinatı doğrudan Maven Central listesinden kopyalayın ve derlemeyi yeniden çalıştırın.
NoSuchMethodError veya NoClassDefFoundError hatasından Selenium sınıf java-client ve selenium-java sürümleri uyumsuz. Eşleştir Selenium Java istemci sürümünün belirttiği aralığa ait sürüm
Testler derleniyor ancak hiçbiri çalışmıyor. Test sınıfları src/main/java dizininde yer alıyor veya sınıf adı Surefire include kalıbıyla eşleşmiyor. Bu dosyaları src/test/java klasörüne taşıyın ve sınıf adının sonu "Test" ile bitecek şekilde ayarlayın.
4723 numaralı porta bağlantı reddedildi. MKS Appium Sunucu çalışmıyor. Başlat Appium derlemeden önce sunucu
Geçersiz veya desteklenmeyen özellik Modern sürücüyle kullanılan eski yetenek adları Revmevcut durumu görüntüle istenen yetenekler platformunuz için
Desteklenmeyen sınıf dosyası ana sürümü Maven tarafından kullanılan JDK, pom.xml dosyasındaki derleyici seviyesinden farklıdır. Maven.compiler.source ve target özelliklerini kurulu olan sürümlerle eşleştirin. JDK

Derleme başarısız olduğunda, Maven'ın yazdırdığı son hatayı değil, ilk hatayı okuyun. Sonraki satırlar genellikle ilk eksik dosyanın sonuçlarıdır.

SSS

Eski bir eğitim kılavuzundan kopyalanmış bir sürüm yerine, Maven Central'da listelenen en yeni sürümü kullanın. Bu yazının yazıldığı sırada bu sürüm 10.1.1'dir ve şu beklentiyi karşılamaktadır: Selenium Sınıf yolunda 4.42.0 veya daha yeni bir sürüm bulunmalıdır.

Makine öğrenimi modelleri, kullanıcı arayüzü değişikliğinden sonra öğe konumlandırıcılarını onarır, cihazlar arasında yinelenen hataları gruplandırır ve bir commit'in hangi testleri bozma olasılığının yüksek olduğunu tahmin ederek daha kısa bir Maven çalıştırmasının riskli alanı kapsamasını sağlar.

Copilot, tek satırlık bir yorumdan groupId, artifactId ve version öğelerini tamamlar. Genellikle eski bir sürüm numarası önerir, bu nedenle dosyayı kaydetmeden önce koordinatı Maven Central ile doğrulayın.

Tam olarak değil. Java istemcisi şunu belirtiyor: Selenium Yapılar geçişli olarak etkilenir. Birçok ekip hala selenium-java'yı açıkça sabitleyerek sürümün görünür olmasını ve yükseltmelerin kazara değil, kasıtlı olmasını sağlıyor.

İkisi de aynı yapıları işler. Maven, bildirimsel XML kullanır ve sabit bir yaşam döngüsü isteyen ekipler için uygundur. Gradle komut dosyalarında Groovy Veya Kotlin kullanır ve artımlı olarak derler, bu da büyük çok modüllü depolar için faydalıdır.

src/test/java dizininde. Surefire yalnızca derleme sırasında bu dizini tarar, bu nedenle src/main/java'da bırakılan bir sınıf derlenir ancak asla çalıştırılmaz, bu da sessizce geçen bir test paketi gibi görünür.

Hayır. Maven yalnızca JAR dosyalarını çözümler ve testleri çalıştırır. Başlatın Appium Öncelikle sunucuya bir cihaz veya emülatör bağlayın veya sunucuyu test kurulum yönteminizden veya bir CI işlem hattı adımından başlatın.

Depoyu inceleyin, başlayın Appium Sunucu ve cihaza erişin, ardından `mvn clean test` komutunu çalıştırın. Archive target/surefire-reports dosyasını derleme çıktısı olarak kaydedin, böylece ajan yok edildikten sonra bile hatalar okunabilir durumda kalır.

Bu yazıyı şu şekilde özetleyin: