Проверка приложения без интернета
Выдернув сетевой кабель, вы проверяете только одно: машину без сети. Большинство офлайн-ошибок не такие. Они случаются, когда адаптер включён, значок Wi-Fi выглядит нормально, а то, что нужно приложению, просто недоступно.
Три разных вида «офлайна»
| Что вы включаете | Что видит приложение | Какую ошибку находит |
|---|---|---|
| Режим LAN | Локальная сеть работает. Всё за её пределами нет. | Wi-Fi отеля до входа в систему, мёртвый восходящий канал, корпоративная сеть без маршрута наружу. |
| Блокировка адреса | Один сервер недоступен. Всё остальное работает. | Одна зависимость недоступна, а само приложение в порядке: случай, который проверка работоспособности обычно пропускает. |
| Блокировка порта 53 | Имена перестают разрешаться, соединения по адресу продолжают работать. | Сломанный DNS, который пользователю кажется «интернет не работает», а в журналах выглядит совсем иначе. |
Из командной строки
Интернета нет для одного приложения, локальная сеть не тронута, две минуты:
BeanNetworkTester.exe --lan-mode --target myapp.exe --duration 120
Один сервис недоступен, всё остальное в норме:
BeanNetworkTester.exe --block-ip 203.0.113.10
Имена перестают разрешаться:
BeanNetworkTester.exe --block-port 53 --target myapp.exe
Есть и готовая временная шкала, которая ломает DNS и сама его возвращает: failing-dns.json в папке scenarios рядом с программой. См. сценарии во времени.
На что стоит смотреть
- Сообщение. Объясняет ли приложение, что случилось, или бесконечно показывает индикатор загрузки?
- Повторная попытка. Увеличивает ли оно паузы или долбит один и тот же адрес в цикле?
- Очередь. Сохраняется ли работа, сделанная пользователем офлайн, и отправляется позже, или теряется?
- Восстановление. STOP возвращает сеть. Замечает ли приложение это само или нужен перезапуск?
Именно последний пункт даёт больше всего пользы. Уход в офлайн легко обработать плохо и легко проверить. Возвращение это то, где состояние идёт не так.
Чем это не является
Адаптер остаётся включённым, и машина сохраняет свой адрес, поэтому приложение, которое лишь спрашивает у Windows «есть ли сеть», по-прежнему получает «да». Это сделано намеренно и даёт более интересную проверку: реальные пользователи редко бывают отключены полностью, они подключены к чему-то, что не может достичь нужного им. Если вам нужен именно случай «нет адаптера», отключите адаптер: инструмент для этого не нужен.