2010-07-27 6 views
5

Wenn ich HTTP-Anfrage in JMeter mache, erhalte ich Antwortdaten wie "Diese Seite verwendet JavaScript und benötigt einen JavaScript-fähigen Browser." Wie ist es möglich, dieses Problem zu beheben?JMeter und JavaScript

Antwort

13

JMeter ist kein Browser und interpretiert das JavaScript in heruntergeladenen Seiten nicht.

Vom JMeter wiki:

JMeter nicht verarbeitet Javascript oder in HTML-Seiten eingebettet Applets.

JMeter kann die relevanten Ressourcen herunterladen (einige eingebettete Ressourcen werden automatisch heruntergeladen, wenn die richtigen Optionen eingestellt sind), aber verarbeitet den HTML-Code nicht und führt keine Javascript-Funktionen aus.

Wenn die Seite Javascript verwendet, um eine URL zu erstellen oder ein Formular zu senden, können Sie mithilfe der Proxy-Aufzeichnungsfunktion den erforderlichen Sampler erstellen. Wenn dies nicht möglich ist, kann die manuelle Überprüfung des Codes erforderlich sein, um festzustellen, was das Javascript tut.

Je nachdem, was Sie tun, können Sie einen Ausführungstest mit Selenium IDE für Firefox erstellen. Der Test wird in Ihrem Browser ausgeführt, damit auch JavaScript ausgeführt wird. Beachten Sie jedoch, dass ich nie Selenium als Ersatz für JMeter verwendet habe und nicht über gemeinsame Funktionen beider Tools weiß.

+0

benutzen ich Proxy Recording und ich kann die Variable sehen, die ich eingegeben, aber in Antwort erhalte ich die Nachricht, auch diese Nachricht das gleiche ist, wie wenn ich laufe in Firefox mit disable JavaScript. Ist es möglich, diese Anwendung mit JMeter zu testen? – Gogoo

+1

Es hängt wirklich davon ab, was Sie testen. JMeter wurde ursprünglich erstellt, um die Serverfunktionalität zu testen (unter hoher Last, für Leistung, Reaktionszeit usw.). Wenn JavaScript nur für GUI-Effekte verwendet wird, die nicht mit der Funktionalität der App interagieren (dh damit es schick aussieht), können Sie JMeter verwenden, um diese Funktionalität zu testen und dabei die Nachricht zu umgehen (sie sollte ein Filter für einige sein Sortieren Sie in Ihrer App, die für JS aktiviert, dass Sie deaktivieren können). Wenn auf der anderen Seite JavaScript ein Muss ist, dann benötigen Sie Browser-Funktionen und JMeter bietet diese (noch nicht). –

-4

Sie müssen Ihrem Thread HTTP Cookie/Cache Manager hinzufügen, um dies zu beheben.

+2

Diese Antwort ist vollständig ungültig und irreführend – rsakhale

1

Ich nehme an, Sie können das WebDriver-Plugin verwenden, um echte Browsertests (IE/Firefox/Chrome/Selenium) auszuführen.

Es gibt gute Dokumentation here

0

Sie können add WebDriver to JMeter test vollständig die Seitendarstellung auswerten.

Web Driver Sampler automatisiert die Ausführung und Sammlung von Leistungsmetriken im Browser (clientseitig). Ein großer Teil von Leistungstests, bis zu diesem Zeitpunkt wurde auf der Serverseite von Dinge. Mit dem Fortschritt der Technologie, HTML5, JS und CSS Verbesserungen, mehr und mehr Logik und Verhalten wurden auf den Client gedrückt. Dies trägt zur insgesamt wahrgenommenen Leistung von website/webapp bei, aber diese Metrik ist in JMeter nicht verfügbar. Dinge , die zur Gesamt Browser Ausführungszeit hinzufügen können:

  1. Client-seitige Javascript Ausführung - zB. AJAX, JS-Vorlagen
  2. CSS-Transformationen - z. 3D Matrix Transformationen, Animationen
  3. 3rd Party Plugins - zB. Facebook wie, Double-Click-Anzeigen, Website Analytics, etc

All diese Dinge fügen die Gesamt Browser Ausführungszeit, und das Projekt zielt darauf ab, die Zeit, die Rendering all diese Inhalte in Anspruch nimmt zu messen.

Amtsführung: https://jmeter-plugins.org/wiki/WebDriverTutorial/