2009-06-18 8 views
0

Ich denke, ich brauche den Webbrowser nicht, da Netzwerkfähigkeiten in den Stand-Alone-Player integriert sind. Ich brauche nur eine Art von .NET-Komponente, mit der ich programmatisch Hunderte von Flash-Playern (ohne Benutzeroberfläche) starten kann, die eine spezielle SWF-Datei für Lasttestzwecke abspielen. Die SWF-Datei greift auf einen Netzwerkdienst zu und lädt andere SWF-Dateien herunter, läuft jedoch nach dem Laden in den Player im Wesentlichen selbstständig ab.Wie kann man einen Webbrowser oder nur das Flash-Plugin simulieren, um eine Flash-basierte Webanwendung zu testen?

Es wäre nett, wenn eine solche Komponente es mir auch erlauben würde, zu erkennen, wenn es für eine gewisse Zeit nicht mehr auf das Netzwerk zugreift oder eine Nachricht erhält, dass die SWF ihre Arbeit beendet hat, an welcher Stelle ich enden würde diese Instanz des Flash-Players und starten Sie eine neue.

Vielleicht könnte ich den vorhandenen Flash-Player verwenden, aber ich möchte nicht einen Player mit einer Benutzeroberfläche starten, ich muss im Grunde einen Player ohne Benutzeroberfläche programmieren, denn wenn ich Hunderte von laufen werde auf einer Maschine, brauche ich nicht den Aufwand, alle Grafiken zu rendern. Ich werde wahrscheinlich das auf mehreren Maschinen als eine verteilte Anwendung ausgeführt haben.

Irgendwelche Gedanken?

Antwort

0

Wenn Sie echte Browser benötigen (die alle Flash 10 installiert haben), besuchen Sie meine Firma, BrowserMob. Es tut effektiv "Selenium load testing". Viele unserer Kunden machen Flash-Automatisierung mit unserem Service und es ist viel einfacher als herkömmliche Protokoll-Level-Belastungstests.

+0

Gestern haben wir telefoniert (erinnerst du dich an James und Jonathan?). Für Web-Apps wie meine mit komplexen Client-Aktivitäten mit Flash ActionScript oder AJAX, echte Browser + Cloud Computing = genaue, einfache Belastungstests. BrowserMob ist genau das, was wir brauchten, und ich bin froh, dass Sie es erstellt haben. – Triynko

+0

Ursprünglich verwendete ich den .NET-Befehl Process.Start (@ "C: \ Programme (x86) \ Mozilla Firefox \ firefox.exe", "meine Test-URL"), um einhundert Tabs auf meinem Quad-Core-Desktop zu starten . Diese Tests konnten innerhalb weniger Sekunden abgeschlossen werden, und die Timing-Ergebnisse wurden von den automatisierten Flash-Clients auf dem Server protokolliert, aber ich zögere, 5000 Registerkarten auf dieser einen Maschine zu öffnen, selbst mit 8 GB RAM. BrowserMob erlaubt mir, etwas Ähnliches zu tun, indem ich viele weitere Prozessorkerne benutze, aber mit vielen verfügbaren Statistiken und sogar Browser-Screenshots, wenn Fehler auftreten. – Triynko

2

Der ganze Server interessiert sich für die Reihenfolge der Anfragen, die Sie simulieren möchten.

Wenn die SWF HTTP für ihre Inhaltsanforderungen verwendet, wären JMeter oder Belagerung einige kostenlose Tools, die dabei helfen. Ansonsten gibt es viele kommerzielle Lasttest-Tools. Ich kann Ihnen sagen, dass das, was meine Firma verwendet, "Lose" kostet, aber ich neige dazu, JMeter oder Belagerung zu benutzen, wenn ich meine Tests mache, bevor ich QA übergebe.

Wenn Sie Streaming-Medien testen, wird das etwas komplexer und Sie müssen Ihr System wahrscheinlich als einzelne Komponenten validieren.

Ich empfehle das Allspaw Buch für jeden, der versucht, Belastungstests durchzuführen.

http://my.safaribooksonline.com/9780596518578

+0

Nein, eigentlich kümmert sich der Server um viel mehr als die Reihenfolge der Anfragen ... er kümmert sich um den Inhalt und das Timing jeder Anfrage, weil er in ein komplexes Kommunikationsprotokoll mit dem Flash Player eingebunden ist. Mit anderen Worten, dies kann nicht mit einem statischen Skript von HTTP-Anfragen simuliert werden (das wäre einfach). Es erfordert dynamische Kommunikation von der ActionScript-basierten Anwendung im Flash-Film, so dass ich tatsächlich eine Reihe laufender Flash-Player mit Netzwerkzugriff simulieren muss, abzüglich der Benutzeroberfläche. – Triynko

+0

Ich muss Benutzer simulieren, die einen Browser öffnen, zu einem Flash-Film navigieren und das Flash-Plugin den Film für gut 5 Minuten laufen lassen, so dass es Zeit hat, alle seine Kommunikationen zu beenden, bevor der Browser geschlossen wird. Wenn ich nur das Plugin oder einen Standalone-Player simulieren könnte, wäre das noch besser. Der Flash-Film streamt Medien, protokolliert Ladezeiten und meldet alles, was er gemacht hat, wenn er fertig ist. – Triynko

+0

Ich denke du verstehst falsch. Mit Tools wie JMeter können Sie das Timing und den Fluss des Benutzers in Ihren Testplan integrieren. – caskey

0

Wenn Sie überzeugt sind, dass nichts außer Betrieb des Flash-Film arbeiten, einer der Skripte greifen zum Erzeugen von Browser-basierten Screenshots wie Thummer. Diese laden die Seite, die Sie in Firefox oder Safari angegeben haben, und Sie können sie so einstellen, dass sie wie verrückt läuft und den Flash-Film laufen lässt.

Ein UI-Test-Tool wie Selenium für Firefox kann auch arbeiten, damit Sie Skript, was Sie tun möchten und eine automatisierte Sequenz auslösen.

Ich stimme auch Ditto - JMeter wird nicht nur die Anfragen simulieren, sondern geben Sie einige brauchbare Metriken, wenn Sie fertig sind. Wenn Sie es selbst mit einer Reihe von Browsern tun, wie werden Sie wissen, wo die Engpässe sind?