2012-06-11 13 views
9

Wir haben einen benutzerdefinierten Flash/HTML5-Video-Player, den wir für Benutzer auf unserer Website verwenden. Ich bin gerade dabei, die Erfahrung für Benutzer mit "suboptimaler" Bandbreite auszuarbeiten. Grundsätzlich möchten wir, dass der clientseitige Code schlechte Benutzererfahrungen aufgrund übermäßiger Pufferung erkennen kann. Ich möchte diesen Code für die "schlechte Bandbreite" in meiner lokalen Entwicklungsumgebung testen.Simulieren Sie schlechte Bandbreite in einer Testumgebung (Mac OS X)?

Kennt jemand gute Techniken für simulieren "schlechte Bandbreite" in einer lokalen Umgebung zu Testzwecken?

Genauer gesagt habe ich meinen lokalen Browser eine Verbindung zu einer virtuellen Maschine mit Instanzen von uWSGI, Nginx und Python/Django und ich möchte in der Lage sein, willkürliche Mengen von Verzögerung in die Lieferung von Inhalten von diesen Systemen injizieren. (Ich bin in erster Linie damit beschäftigt, dies mit Nginx, die die Bereitstellung/Streaming von Video-Content tut).

EDIT: Es relevant sein kann, dass die Entwickler-Umgebung ist Mac OS X.

+0

Mögliche Duplikate von: http://superuser.com/questions/173882/netem-for-mac-os-x-to-emulate-network-latency-and-dropped-packets –

Antwort

16

Nur nginx Konfiguration verwenden.

Während OS X Lion Netzwerkverbindungsein Conditioner wie erwartet funktioniert es ist immer noch nervig zu verwenden, wenn ich wirklich nur versuche, eine Teilmenge des Verhaltens einer Webanwendung zu testen - d. H. Das System zur langsamen Video-Pufferung.

Als solche, ich habe es viel bequemer zu setzen Rate in meiner nginx.conf Datei Begrenzung gefunden, z.,:

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

EDIT: die nginx HttpCoreModule docs See.

+0

Etwas, das ich angetroffen habe und ich glaube, muss hier hinzugefügt werden: Wenn limit_rate scheint nicht zu funktionieren, stellen Sie sicher, dass "proxy_buffering on" eingestellt ist (Standard ist an) – emrahgunduz

+0

Ist das eine gute Simulation für eine Website? Ein Browser könnte mehr als eine Verbindung öffnen, oder? – user37078

1

Ich verwende dieses Programm NetLimiter „schlechte Bandbreite“ zu simulieren. Es ist nicht kostenlos, aber es gibt eine Testversion, die gut funktioniert. Ist nur für Windows :(

+0

siehe diesen Link, http://hintsforums.macworld.com/showthread.php?t = 9417 – Xosler

5

Ich habe gerade den Mac OS X Network Link Conditioner aber ich bin mir noch nicht sicher, dass es funktioniert auf loopback, was es für meine Zwecke benötigen würde

EDIT:. Das scheint zu arbeiten Loopback, so scheint es, mein Problem zu lösen! Dies ist wahrscheinlich der Weg zu gehen, wenn Sie auf OS sind X 10.7

9

FreeBSD ist Vorfahre von Mac OS, so dass Sie eine integrierte leistungsfähige Firewall namens ipfw verwenden können. Es kann in vielen verschiedenen Fällen verwendet werden, z. B. um niedrige Bandbreite zu simulieren. Verwenden Sie Ihre eigene IP-Adresse Loopback (127.0.0.1) oder einen Remote-Server (8.8.8.8 in diesem Fall).

Wir haben eine Video-Web-Anwendung zu interviewen, so möchte ich mit unserer Erfahrung der Simulation von schlechter Verbindung teilen, siehe Beispiel unten:

$ 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 Rohr Ihnen langsam simulieren kann und instabile Verbindung mit Verzögerung, bw und sogar prob Paketverluste zu simulieren.