Выставление fake location с помощью appium'а

Добрый день!

Может сталкивался кто-нибудь с выставлением фэйковых координат средствами appium’а.
Тестирую на реальном android устройстве, тесты пишу на python.

Гугл подсказывает, что выставление координат работает только для эмулятора и кажется, что на java. Почему так не совсем понятно.

А заюзать для этого стороннее приложение?
Вот например статейка

Встроенными средствами Appium — в данный момент невозможно.

На устройствах вне приложений — невозможно (ограничение платформы).

Возможно только в эмуляторах (Android SDK / Genymotion).


Из своего опыта:

  • на устройствах проверяли руками;
  • автоматизировали тестирование геолокации только на эмуляторе
  • была написана функция, которая определяет тип эмулятора и выставляет локацию

  • для Android SDK — через adb shell geo fix <longitude> <latitude>
  • для Genymotion — через последовательность команд
    genyshell -r <ip_address> -c 'gps setstatus enabled'
    genyshell -r <ip_address> -c 'gps setlongitude <longitude>'
    genyshell -r <ip_address> -c 'gps setlatitude <latitude>'

Когда руками тестирую, как раз стороннее приложение использую.
Я правильно поняла, что вы предлагаете для выставления местоположения тестами по кнопкам стороннего приложения тыкать?

Благодарю за подробные разъяснения.

Я к сожалению не вижу других способов, если вам не подходит тестирование руками или на эмуляторе

Нет, не правильно. То что выше — это изменение внутренних системных параметров, отвечающих за GPS-координаты. Но такое работает только для эмулятора.

Из сторонних приложений — рекомендую посмотреть на Lockito.

Оно эмулирует не только статику, но и динамику (эмулирует движение телефона в пространстве).

И что мешает в этом стороннем приложении с помощью Appium выставить нужные настройки?

А вообще попался на глаза коммит для библиотеки .Net, где добавлен set location
appium-dotnet-driver commit

Правда не пробовал как оно работает и работает ли вообще

Борюсь за стабильность, лишнее тыканье по кнопкам часто приводит к лишним падениям.

Не спорю, исключительно на Android — ничего.