2017-01-02 7 views
3

Ich möchte Ajax-Anfragen in JMeter ausführen. Ich nehme meinen Testplan mit JMeter und BlazeMeter auf, aber keiner kann Ajax-Anfragen bearbeiten. Wie kann ich mein Problem lösen?Wie man Ajax-Anfragen in JMeter ausführt?

Oder gibt es ein Tool, das gleichzeitige Ajax-Anfragen senden kann?

Vielen Dank im Voraus, M. A

Antwort

2

kann standardmäßig Ajax-Anfragen nicht von JMeter simuliert werden, da es nicht .js Dateien nicht verarbeitet (Ab Version 3.1). Sie müssen die Anfragen (HTTP-Sampler) explizit für AJAX-Anfragen hinzufügen.

Verwenden Sie Network Registerkarte eines Browsers (Option F12) und filtern Sie den Verkehr von xhr, die nur AJAX-Anfragen zeigt. Fügen Sie diese Anforderungen als HTTP-Sampler im Skript an der Stelle hinzu, die Sie im Testplan benötigen.


Browser kann .js Dateien verarbeiten, damit AJAX-Anfragen aus dem Browser gesendet werden. Wenn Sie das Skript unter Verwendung von HTTP Test Script Recorder aufzeichnen, während Sie den Browser zum Navigieren verwenden, werden auch AJAX-Anforderungen (die aus js-Dateien stammen) zum Testplan hinzugefügt/aufgezeichnet.

Da JMeter nicht .js Dateien aufgrund Einschränkung verarbeiten kann, manuell die AJAX-Requests (nichts anderes als HTTP GET oder POST-Requests) mit HTTP Sampler hinzufügen, wenn Sie die Test Plan ohne HTTP Test Script Recorder Bau sind.

Hinweis: Wenn Sie HTTP Test Script Recorder verwenden, müssen sie nicht manuell hinzugefügt werden, da sie bereits im Testplan aufgezeichnet sind.

+0

JMeter kann alle JS-Anforderungen aufzeichnen, die auf der Registerkarte Netzwerk des Browsers in den Abschnitten Js und xhr angezeigt werden, aber wenn ich den Testplan spiele, werden die JS-Anforderungen nicht wirksam und nichts wird von Js-Anforderungen unterdrückt. –

+0

Ja, das ist ein erwartetes Verhalten für jetzt. JMeter verarbeitet keine 'js' Dateien. Anfragen, die von' js' Dateien stammen, werden niemals gesendet. Das ist eine bekannte Einschränkung von JMeter. Sie müssen die Anforderungen explizit für sie mithilfe von HTTP-Samplern hinzufügen. –

+0

Ich benutze Sampler/HTTP-Anfrage für meine JS-Anfragen. Mit anderen Worten, ich klicke mit der rechten Maustaste auf den Sampler und wähle HTTP-Anfrage und füge dann den Pfad zur JS-Datei in das Pfadfeld ein. aber es verarbeitet keine JS-Datei. es nicht HTTP-Sampler? bin ich mit HTTP-Sampler falsch? –

0

können Sie tun, dass

durch Aufzeichnung HTTP-Verkehr mit JMeter Proxy

http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf

aber es nur möglich ist, den gleichen Verkehr zu wiederholen, kann für Sitzungen problematisch sein, Kekse ... bessere Lösung ist, verwenden WebDriver

https://jmeter-plugins.org/wiki/WebDriverTutorial/

https://jmeter-plugins.org/wiki/PluginInstall/

das benötigte Paket ist https://jmeter-plugins.org/files/packages/jpgc-webdriver-1.4.0.zip

+0

Ich habe diese Lösung Schritt für Schritt versucht, aber WebDriver Sampler gab mir einen Fehler. Im Log-Viewer gibt es diesen Fehler: Test fehlgeschlagen! java.lang.NoClassDefFoundError: org/openqa/selen/os/Kernel32 –

+0

hast du benötigte libs hinzugefügt? Ich habe mit dem Link –

+0

durch die Installation von ** "Selenium/WebDriver Support" ** Plugin aktualisiert. Dies muss selenium-remote-driver-x.xx.x.jar und andere Jar's in den Ordner JMETER_HOME/lib kopieren –

0

Es ist nicht möglich, da mehr Fäden als ursprünglich definiert in der Fadengruppe Auftakt wird derzeit nicht unterstützt, wird die Funktion als Bug 53159 verfolgt. AJAX-Anfragen sind "normale" HTTP-Anfragen, so dass JMeter sie aufzeichnen und wiedergeben kann, aber wenn es um asynchrone Ausführung geht - Sie können dies jetzt nicht tun. Die Umgehungsoptionen sind in:

  1. Verwenden Sie WebDriver Sampler plugin, damit jeder virtuelle JMeter-Benutzer einen echten Browser startet. Warnung: Dieser Weg ist sehr ressourcenintensiv.
  2. Verwenden Scripting, das heißt JSR223 PostProcessor kick off AJAX-driven-Anfragen über Apache HttpComponents
  3. Develop your custom sampler. Sie können den aktuellen Umgang mit eingebetteten Ressourcen als Referenz verwenden.

Weitere Informationen: How to Load Test AJAX/XHR Enabled Sites With JMeter

Verwandte Themen