Подключаем Android-смартфон к тестовому серверу без проблем

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

Привет! Меня зовут Константин Волчков. Я работаю на позиции Software Tester.

Я, как и все мои коллеги во время профессиональной деятельности сталкиваюсь с некоторыми препятствиями. И, зачастую, решение находится в статье, опубликованной человеком с желанием поделиться своими знаниями и опытом. Поэтому эта статья — результат моего желания поделиться информацией и опытом с коллегами. Итак, начнем.

Проблема

Я столкнулся с проблемой тестирования Android-приложения на телефоне после переезда тестового окружения с локальных серверов на Azure. А именно — я не мог подключить приложение к нашему тестовому серверу.

Если раньше приложение подключалось без каких-либо дополнительных действий, то теперь IP-адрес сервера и его хост-имя стало необходимо указывать в hosts-файле.

И если в случае с Windows изменение hosts-файла не вызывает никаких трудностей, то на мобильном устройстве без root-доступа это оказывается проблематично.

В ходе поисков было найдено три решения, позволяющие подключить Android-девайс к серверу.

Решение 1. Временное

В качестве первого решения по редактированию hosts-файла на телефоне было использовано Android приложение Hosts Go.

После загрузки из Google Play и установки оно позволяет отредактировать hostsфайл без root-доступа на мобильном устройстве.

Это решение простое и быстрое. Приложение Hosts Go понятное и удобное в использовании. И все же, в процессе тестирования я обнаружил достаточно большой недостаток, а именно: нестабильность работы приложения. Вчера оно работало, а сегодня уже не хочет. Поэтому я начал искать другие варианты.

Решение 2. Стабильное

Идея использования прокси сервера показалась наиболее эффективной.

Forward Proxy сервер обеспечивает соединение с сервером клиента или группы клиентов, находящихся в одной сети. По этой схеме весь трафик будет проходить через рабочий ноутбук и, как следствие, файл hosts станет доступным для мобильного устройства.

Я использовал прокси-сервер Squid, а точнее, уже подготовленный образ Squid в Docker-контейнере. Весь процесс настройки можно разделить на два шага — установка и запуск сервера и настройка прокси на мобильном устройстве.

1. Установка и запуск сервера

Скачиваем образ:

docker pull babim/squid

Запускаем прокси сервер:

docker run --name squid -d --restart=always --publish 3128:3128 babim/squid

Проверяем, что сервер заработал и порт 3128 используется:

netstat -ano -p 

2. Настройка прокси на мобильном устройстве

На Android настройка прокси происходит следующим образом:

  • Подключаем телефон к той же сети, что и ноутбук с прокси сервером.
  • Открываем настройки.
  • Переходим в раздел Wi-Fi.
  • Долгое нажатие на подключение (либо нажатие на шестеренку).
  • Выбираем пункт Modify Network.
  • В Advanced Options выбраем Manual.
  • Вводим IP адрес прокси сервера.
  • Вводим порт .
  • Сохраняем.

После этого тестовое окружение становится доступным.

Вариант с использованием прокси сервера занимает время на настройку, но обеспечивает стабильную и спокойную работу. И все же, у этого решения могут быть свои сложности. А именно: невозможность подключиться к аналогичной сети, либо то, что устройства в одной сети не видят друг друга. И по этому поводу, третье решение.

Решение 3. Запасное

Третье решение — это использование хотспота на ноутбуке и подключение к нему Android-смартфона. Весь процесс настройки для Windows устройств подробно описан на странице поддержки Microsoft.

Но я столкнулся с тем, что на моем рабочем ноутбуке заблокирована возможность включения хотспота, поэтому я нашел стороннюю программу Connectify.

После загрузки и установки приложение позволяет создать точку доступа, к которой подключается телефон. Файл hosts становится доступным и телефон получает доступ к тестовому окружению.

Это решение, на мой взгляд, самое простое из всех трех. Но функционал Connectify и подобных программ может быть ограничен в бесплатных версиях. К примеру, Connectify устанавливает лимит на время использования точки доступа. После каждого часа хотспот выключается и нужно запускать его снова. По этой причине не могу назвать это решение удобным в долгосрочной перспективе.

Итог

Я столкнулся с проблемой подключения Android-устройства к тестовому окружению и подобрал три варианта ее решения. У каждого из них есть свои плюсы и минусы. Для себя я определил второе решение, как наиболее удобное и стабильное для работы.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Но я столкнулся с тем, что на моем рабочем ноутбуке заблокирована возможность включения хотспота, поэтому я нашел стороннюю программу Connectify.

Какая-то странная политика безопасности работодателя.
Хотспот на рабочем ноуте включать запрещено, зато ставить любые приложения хрен пойми откуда, которые ещё и могут в сетевые настройки лезть — без проблем.

Вообще-то решение через правку hosts, мягко скажем, пахнет концом 90х. Что ж вам таки мешает иметь полноценный DNS сервер в сети, который будет разруливать ваши тестовые окружения? Операционки ж имеют оные сервера «из коробки», тупо берёшь и ставишь из дистрибутива, или запускаешь службу/демона, если уже стоит. А уж там, хошь через хостс, хошь через базу данных, уже как настроишь — но факт что централизованно.

Иначе не ровен час вам кто-нить подкинет левый айпишник, а вы его и не опознаете, что левый, и будете сливать трафик непонятно кому.

Спасибо Вам за совет. Вы правы насчет вопросов безопасности, а я их не учел.

Подписаться на комментарии