Тестирование сайта в тестовом окружении с различных устройств

При разработке любого сайта, один из самых важных этапов - тестирование. Наша задача состоит в том, чтобы протестировать и отладить работу сайта на ipad и android. Как это сделать не заливая сайт на боевой сервер? Если речь идет о компьютере находящемся в локальной сети, то ничего сложного, прописываем сайт в файле hosts на этом компе и тестируем. Такой способ прекрасно подойдет в том случае, если например разработка ведется в linux или в mac os и нам нужно проверить поведение сайта в броузерах windows.

А как быть, если нужно протестировать для ipad и android. Если для андроид не составляет труда установить рута и подправить системный файл hosts, то ipad или iphone придется сделать джейл-брейк. Но есть способ обойтись без рута и без джейла. 

Вариант 1

Для этого нужно просто установить и настроить на тестовой машине прокси-сервер. Я сделал это с помощью squid. Моя рабочая машинка - mac book pro, и весь процесс разработки развернут соответсвенно на ней. Поэтому ставим squid с помощью Homebrew, а что может быть проще?

brew install squid

У меня Homebrew после установки squid ругнулся, дескать /usr/local/sbin не прописано в переменных окружения. Открываем .bash_profile и добавляем туда необходимый путь. Squid по умолчанию настроен на http_port 3128, я ничего не менял. Просто запустил его с параметром -z для создания swap директория (в дальнейшем запускаем  squid без -z):

squid -z

Все! Теперь достаточно на клиенте прописать прокси IP (адрес нашей тестовой машины) и порт 3128.

Для остановки сервиса squid:

squid -k shutdown

Вариант 2

Нарыл еще один весьма любопытный вариант (был подсказан одним умным человеком), оказывается можно apache использовать в качестве прокси-сервера при ниличии в нем нескольких модулей. Если в кратце, то выглядит это так:

# Модули необходимые для работы прокси
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Listen 3128

NameVirtualHost *:3128

<VirtualHost *:3128>
  ProxyRequests On
  <Proxy *>
    Order deny,allow
    Deny from all
    # Откуда можно использовать прокси (например из нашей локальной сети)
    Allow from 192.168.56.1/24
  </Proxy>
</VirtualHost>

Перегружаем апач. Скажу честно, это решение мне понравилось больше, на нем собственно сейчас и тестирую.

Комментарии