2012-06-11 2 views
9

У нас есть пользовательский видеоплеер Flash/HTML5, который мы используем для пользователей на нашем сайте. В настоящее время я использую опыт для пользователей с «субоптимальной» полосой пропускания - в основном мы хотели бы, чтобы код на стороне клиента мог обнаруживать плохой пользовательский интерфейс из-за чрезмерной буферизации. Я бы хотел проверить этот код обработки «плохой пропускной способности» в моей локальной среде разработки.Имитировать низкую пропускную способность в тестовой среде (Mac OS X)?

Кто-нибудь знает хорошие методы для , имитируя «плохая пропускная способность» в локальной среде для целей тестирования?

Более конкретно, у меня есть локальный браузер, подключающийся к виртуальной машине с экземплярами uWSGI, nginx и python/django, и я хотел бы иметь возможность вводить произвольную задержку в доставку контента из этих систем. (Я в первую очередь занимаюсь этим с nginx, который обеспечивает доставку/потоковое видеоконтент).

EDIT: Это может быть важно, что среда DEV является Mac OS X.

+0

Возможный дубликат: http://superuser.com/questions/173882/netem-for-mac-os-x-to-emulate-network-latency-and-dropped-packets –

ответ

16

Просто используйте конфигурацию Nginx в.

в то время как OS X Lion в сети Link Кондиционер работает, как ожидалось это все еще раздражает, чтобы использовать, когда я действительно пытаюсь протестировать подмножество поведения веб-приложения - т. Е. Медленную систему обработки буферизации видео.

Таким образом, я нашел, что это гораздо удобнее, чтобы установить ограничение скорости в моем nginx.conf файле, например,:.

location ~ /files/(.*\.(mp4|m4v|mov))$ { 
    ... 
    limit_rate 50k; # <-- Limit download rate per connection to 50kbps 
    ... 
} 

EDIT: См nginx HttpCoreModule docs.

+0

Что-то, с чем я столкнулся, и я считаю, что здесь нужно добавить: Если limit_rate не работает, убедитесь, что установлено значение «proxy_buffering on» (по умолчанию включено) – emrahgunduz

+0

Является ли это хорошей симуляцией для веб-сайта? Браузер мог открыть несколько соединений, не так ли? – user37078

1

Я использую эту программу NetLimiter для имитации «плохой пропускной способности». Это не бесплатно, но пробная версия работает хорошо. Есть только для окон :(

+0

см. Эту ссылку, http:// /hintsforums.macworld.com/showthread.php?t = 9417 – Xosler

5

Я только что нашел Mac OS X Network Link Conditioner, но я не уверен, что он работает на loopback, которые он должен был бы для моих целей

EDIT:. Это, кажется, работает на шлейфу, так что, похоже, чтобы решить мою проблему! Это, вероятно, путь, если вы на OS X 10.7

9

FreeBSD является предком Mac OS, поэтому вы можете использовать встроенный мощный брандмауэр под названием ipfw. Его можно использовать во многих разных случаях, например, имитировать низкую пропускную способность. Используйте собственный петлевой адрес IP-адреса (127.0.0.1) или удаленный сервер (в этом случае 8.8.8.8).

Мы делаем видео интервьюирования веб-приложения, так что я хотел бы поделиться с нашим опытом моделирования плохой связи, смотрите пример ниже:

$ sudo su 

$ ipfw show 
$ ipfw pipe 1 config delay 600ms bw 256kbit/s 
$ ipfw add pipe 1 dst-ip 8.8.8.8 dst-port 80 

$ ipfw flush 

IPFW труба позволяет моделировать медленно и нестабильное соединение с использованием задержка, bw и даже prob для имитации потерь пакетов.