Appium Зависимост от Maven: Настройка с Eclipse Пример за проект
⚡ Умно обобщение
Appium Управлението на зависимостите в Maven позволява на проект за мобилна автоматизация да декларира артефакта на Java-клиента в pom.xml, така че Maven автоматично разрешава всеки JAR и същата компилация се изпълнява на всяка машина без ръчно изтегляне.
Какво е Apache Maven?
Apache Maven е Java-базиран инструмент за управление на проекти и автоматизация. Той предоставя многозадачна рамка за разработчиците, която да улесни пълния жизнен цикъл на изграждане Java приложения. Maven е предварително дефиниран и деклариран в XML формат, наречен POM (Project Object Model) и наричан „pom.xml“. Може да се използва и за други езици като C#, Scala, Ruby и др.
С помощта на рамката Maven можете лесно да управлявате следните задачи във всеки проект:
- Цикъл на изграждане
- Проектна документация
- Докладвайте проверките
- Управление на Scrums
- Информация за издаване
Основните приложения на Maven са:
- Налага стандартна структура на директория.
- Осигурете многократно използваема и лесна за поддръжка структура на проекта.
- Разрешаване на зависимости на пакети.
- Осигурете рамка за управление на конфигурацията.
Тази способност за разрешаване на зависимости е точно това, което Appium нуждите на проекта, защото Java клиентът дърпа верига от Selenium jar файлове, които никой не иска да изтегля на ръка.
Изтегли Appium Зависимости на Maven
Преди да започнете да пишете Appium тест за зависимости с Maven, трябва да изтеглите Appium Зависимостта на Maven — Appium JAR файл за изтегляне — от Уебсайт на централното хранилище на MavenСнимката на екрана по-долу показва списъка с артефакти на Java-клиент в Maven Central, където са налични всяка публикувана версия и нейният готов фрагмент.
Или директно добавете артефакта POM.xml, споменат по-долу:
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>3.4.1</version> </dependency>
⚠️ Бележка към версията: - 3.4.1 Координатата по-горе е оригиналният пример и все още показва правилната форма на блока. Той е предшестващ протокола W3C WebDriver, така че нов проект би трябвало да повиши версията. Към момента на писане, текущата версия в Maven Central е 10.1.1, което изисква Selenium 4.42.0 или по-нова версия.
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>10.1.1</version> </dependency>
Моля, преминете през нашия Урок за Maven за да научите как да конфигурирате Maven с Eclipse.
Appium Структура на Maven проект и необходими зависимости
Maven налага фиксирано оформление и познаването му предотвратява по-голямата част от объркването, което следва по-късно в това ръководство. Генерираният проект съдържа четири важни местоположения:
- pom.xml — обектният модел на проекта в корена на проекта, където е декларирана всяка зависимост и плъгин.
- src/основен/java — приложения и помощни класове.
- src/test/java — тестови класове и единствената директория, която плъгинът Surefire сканира, когато стартирате компилация.
- цел — компилиран изход и тестови доклади, генерирани отново при всяко изграждане.
- Appium java-client е единствената задължителна зависимост, защото декларира Selenium API, отдалечен драйвер и поддържат артефакти транзитивно. Много екипи все още закрепват Selenium изрично, така че версията да е видима на едно място, и добавете тестов изпълнител:
<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>
Поддържайте двете версии съвместими. В издание на Java-клиент се посочва, че Selenium диапазона, който поддържа, и смесването на стар клиент с много по-нов Selenium е най-честата причина за NoSuchMethodError по време на изпълнение. хранилище за Java-клиенти документира сдвояването за всяко издание.
Тестване на приложение с Appium и Мейвън
С налице зависимост, Eclipse Работният процес по-долу изгражда изпълним проект от нулата. След конфигуриране на Appium Java Maven плъгин Eclipse, работното пространство е готово за тестване на всякакви Android .apk приложение с Appium и Maven, както е показано в Appium Пример за проект Maven по-долу.
Стъпка 1) В този етап,
- Отидете на НОВ >> изберете проект Maven
- Кликнете върху бутона „следващ“
Съветникът за нов проект се отваря с маркиран Maven Project, както е показано тук.
Стъпка 2) След това в прозореца „Нов Maven проект“ въведете „Appium „Тест“ в колоните „Идентификатор на група“ и „Идентификатор на артефакт“. В тази стъпка трябва да въведете:
- Идент. № на групата
- Идент. № на артефакт
- версия
- Опаковка
- Име и Descriptйон
- завършеност
Попълненият формуляр за нов Maven проект изглежда като екранната снимка по-долу.
Щракването върху бутона „Готово“ ще отвори нов клас под дефинирания идентификатор на групата (AppiumИме на теста).
Стъпка 3) За да започнем с Appium скрипт, щракнете с десния бутон върху 'src/main/java' в левия прозорец на Explorer. След това изберете New >> class. Напишете Appium код в избрания клас.
Контекстното меню, използвано за създаване на този клас, е показано по-долу.
Стъпка 4) В същия проект, щракнете върху pom.xml в лявото меню на Explorer. Всички зависимости ще бъдат видими по подразбиране в раздела „pom.xml“. Вижте изображението по-долу.
Ако по подразбиране pom.xml не съществува, просто добавете всички Maven Appium зависимости, напр.tracизтеглено от уебсайта на централното хранилище на Maven:
https://central.sonatype.com/artifact/io.appium/java-client
Редактираният pom.xml с Appium добавените зависимости са показани по-долу.
Стъпка 5) Сега щракнете с десния бутон върху „pom.xml“ в левия прозорец на Explorer или върху XML кода за „Appium„Тестване“ на проекта. След това щракнете върху опцията „Изпълни като >> Maven Clean“, както е показано по-долу.
Докато работите, можете да видите всички jar файлове, свързани с Maven, и съобщение за успех, както е показано в конзолния изход по-долу. Ето как се изпълнява Appium Java тест за зависимости на клиент от Maven в среда, конфигурирана от Maven.
Как да тичам Appium Тестове с Maven команди
- Eclipse Менюто е удобно, но същата компилация трябва да се изпълнява без надзор на сървър за компилация и там командният ред е единствената опция. Отворете терминал в папката, която съдържа pom.xml и използвайте тези команди.
mvn clean mvn clean test mvn clean install mvn test -Dtest=LoginTest
Всеки от тях има различна задача:
- mvn чист изтрива
targetдиректорията, така че нищо нестаро да оцелее в следващата компилация. Това е командата Eclipse ръководство за горните тригери. - mvn чист тест компилира проекта и изпълнява тестовите класове. Плъгинът Maven Surefire ги извлича автоматично от
src/test/java, използвайки шаблоните за включване по подразбиранеTest*.java,*Test.java,*Tests.javaнамлява*TestCase.java. - mvn чиста инсталация изпълнява тестовете и след това поставя пакетирания артефакт във вашето локално хранилище, така че друг проект да може да разчита на него.
- mvn тест -Dtest=ТестЗаВход стеснява изпълнението до един клас, докато отстранявате грешки.
Две неща привличат вниманието на хората. Първо, Appium Сървърът трябва вече да работи и устройство или емулатор трябва да са свързани, преди да започне компилацията, защото Maven не стартира нито едното, нито другото — проверете устройството с ADB първо проверете. Второ, резултатите се записват в target/surefire-reports, което е папката, която CI задачата трябва да архивира. Ръководство за употреба на Surefire разглежда подробно опциите за конфигурация и същите команди управляват Appium апартамент от Jenkins.
Общ Appium Грешки в Maven и как да ги поправим
Повечето неуспехи в Appium Проблемите с настройката на Maven се дължат на няколко повтарящи се причини, а не на самия тестов код. Таблицата по-долу съпоставя всеки симптом с обичайното му решение.
| симптом | Вероятна причина | Фиксирайте |
| Не можаха да се разрешат зависимостите за io.appium:java-client | Грешен низ за версия или няма мрежов достъп до Maven Central | Копирайте координатите директно от списъка в Maven Central и стартирайте отново компилацията |
| NoSuchMethodError или NoClassDefFoundError от Selenium клас | Версиите на java-client и selenium-java са несъвместими | Съответства на Selenium версия в диапазона, деклариран от версията на Java-клиента |
| Тестовете се компилират, но не се изпълняват | Тестовите класове се намират в src/main/java или името на класа не съответства на шаблон за включване на Surefire. | Преместете ги в src/test/java и наименувайте класа така, че да завършва на Test |
| Връзката е отказана на порт 4723 | - Appium сървърът не работи | Стартирайте Appium сървър преди изграждането |
| Невалидна или неподдържана възможност | Използвани стари имена на възможности със съвременен драйвер | Revвижте текущото желани възможности за вашата платформа |
| Неподдържана основна версия на файла с клас | JDK, използван от Maven, се различава от нивото на компилатора в pom.xml. | Подравнете свойствата на maven.compiler.source и target с инсталираните от вас JDK |
Когато компилацията е неуспешна, прочетете първата грешка, която Maven отпечатва, а не последната. По-късните редове обикновено са последствия от първия липсващ артефакт.








