> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/mobile/kak-ya-mogu-zapuskat-testy-android-bez-appium.md).

# Как я могу запускать тесты Android без Appium?

Для тестирования Android-приложений можно обойтись без Appium, используя **инструменты и фреймворки, которые работают напрямую с платформой**. Основные подходы:

***

#### 1. **Espresso (официальный Android инструмент)**

* **Что это:** UI-тесты для нативных Android-приложений на Java/Kotlin.
* **Как работает:** тесты запускаются в том же процессе, что и приложение, напрямую взаимодействуя с элементами UI.
* **Особенности:**
  * Высокая скорость и стабильность.
  * Возможность тестировать RecyclerView, анимации, пользовательские виджеты.
  * Интеграция с AndroidJUnitRunner.
* **Пример команды запуска:**

```bash
./gradlew connectedAndroidTest
```

* **Применение:** unit/UI-тесты, тестирование действий пользователя (клики, ввод, свайпы).

***

#### 2. **UI Automator**

* **Что это:** фреймворк для взаимодействия с **всей системой Android**, включая другие приложения.
* **Особенности:**
  * Можно тестировать диалоги, уведомления, настройки, системные окна.
  * Работает на устройстве без запуска приложения в том же процессе.
  * Поддержка поиска элементов по text, resource-id, class name.
* **Пример запуска:**

```bash
./gradlew connectedAndroidTest
```

(тесты пишутся через UIAutomator APIs)

***

#### 3. **Robolectric**

* **Что это:** unit-тесты, которые **симулируют Android среду на JVM**, без эмулятора или устройства.
* **Особенности:**
  * Быстрые тесты на локальной машине.
  * Можно тестировать Activity, Service, BroadcastReceiver без эмулятора.
  * Не подходит для реального UI-тестирования, больше для логики и жизненного цикла Activity.

***

#### 4. **Detox (для React Native)**

* **Что это:** end-to-end тесты для React Native приложений.
* **Особенности:** синхронизирует тесты с UI и асинхронными операциями, не требует Appium.

***

#### 5. **Monkey / MonkeyRunner**

* **Monkey:** генерация случайных событий (клики, свайпы) для стресс-тестирования приложения.
* **MonkeyRunner:** автоматизация тестов через скрипты на Python, работающие напрямую с устройством.
* **Особенности:** низкоуровневое управление устройством, не всегда стабильно для детальных тестов UI.

***

#### 6. **ADB скрипты**

* Можно использовать **adb shell input** для автоматизации действий:

```bash
adb shell input tap x y
adb shell input text "Hello"
adb shell am start -n com.example.app/.MainActivity
```

* Подходит для простых сценариев, smoke-тестов или интеграции с CI.

***

#### 7. **Комбинации**

* **Espresso + UIAutomator:** позволяет тестировать UI внутри приложения и системные элементы.
* **Robolectric для юнит-тестов логики + Espresso для UI-тестов:** покрывает все слои приложения без Appium.

***

**Итог:** Appium нужен, если хочется **кроссплатформенного решения с одним кодом для iOS и Android**. Если тестируем только Android, более стабильные и быстрые варианты — **Espresso**, **UI Automator**, **Robolectric**, иногда с ADB или Monkey для низкоуровневых сценариев.
