Ответ
Троттлинг сети — это искусственное ограничение скорости или увеличение задержки (latency) сетевого соединения. Используется для симуляции работы приложения в условиях медленного или нестабильного интернета.
Зачем это нужно в тестировании:
- Проверить поведение UI (лоадеры, таймауты, сообщения об ошибках).
- Оценить производительность при ограниченной пропускной способности (3G, медленный Wi-Fi).
- Протестировать механизмы повторных попыток (retry logic) и отказоустойчивость.
Способы применения троттлинга:
1. Инструменты браузера (Chrome DevTools):
- Откройте Network панель.
- Нажмите на выпадающий список Throttling (по умолчанию
No throttling). - Выберите предустановку (
Slow 3G,Fast 3G) или создайте Custom профиль.
2. Использование прокси (Charles Proxy):
Настройте Throttle Settings (Proxy → Throttle Settings) для ограничения скорости и добавления задержки для выбранных доменов.
3. Программная имитация (пример на Node.js):
const express = require('express');
const app = express();
// Middleware для добавления искусственной задержки
app.use('/api/*', (req, res, next) => {
// Симулируем медленное соединение: задержка 2 секунды
setTimeout(next, 2000);
});
app.get('/api/data', (req, res) => {
res.json({ message: 'This response was delayed by 2s' });
});
app.listen(3000);
4. Тестирование на мобильных устройствах:
- Android Emulator: Используйте настройки эмулятора для установки скорости сети и задержки.
- Xcode Network Link Conditioner: Инструмент для macOS/iOS, позволяющий симулировать различные сетевые условия.
Ключевые параметры для настройки:
- Пропускная способность (Bandwidth): Например, 1.5 Mbps для
Slow 3G. - Задержка (Latency): Время отклика, например, 200 ms.
- Потеря пакетов (Packet Loss): Процент теряемых пакетов для симуляции нестабильной сети.