Showing posts with label JMeter. Show all posts
Showing posts with label JMeter. Show all posts

Friday, 5 July 2013

JMeter und JSF 1.2

JMeter 2.9
JSF 1.2

Bei JSF 1.2 Applikationen gibt es für JMeter ein paar Hürden, ein paar konnte ich lösen:

1. Bei JSF 1.2 Applikationen werden für die *.jsf Requests Redirects ausgeführt die im Script vorhanden sind --> die Redirects werden also 2x ausgeführt

Lösung: Redirects händisch von den Requests entfernen:


2. Schon das Logon klappt nicht im Script, es wirft einen 404.

Lösung: HTTP Authorisierungs Manager hinzufügen




3. Manche jsf Seiten werfen einen 500er obwohl eigentlich alles zu stimmen scheint, typischer Stacktrace:

javax.servlet.ServletException: viewId:/person.jsf - View /person.jsf could not be restored.
at java.lang.Throwable.<init>(Throwable.java:80)
Wenn man mit JMeter Proxy das Script aufgenommen hat ist zwar der javx.faces.ViewState als Param im Request aufgenommen, aber durch verschiedene widrige Umstände wie zB die Redirects aus dem ersten Tip müssen die stateViews nicht mehr übereinstimmen. Abhilfe schafft hier ein Regular Expression Extractor:



So holt man sich den ViewState aus den Responses:



Und so stopft man diese Variable in die eigenen Requests:




Thursday, 29 November 2012

JMeter Einschließende URL-Muster

JMeter 2.8

Zeichnet man mit dem JMeter HTTP Proxy Server einen Geschäftsfall auf liefert der Browser, bzw. oft dessen Plugin ziemliches Störfeuer.

Um das loszuwerden sind einschließende URL Muster hilfreich, damit wird viel von dem unnötigen Zeugs einfach nicht aufgezeichnet. Diese Muster sind leider nicht ganz einfach zu erraten, darum hier ein Screen:




Tuesday, 3 May 2011

Fiddler als JMeter Proxy

Apache JMeter 2.4
Fiddler 2.3.3.5

Will man ein jmx-File ausführen und den Datenstrom noch über Fiddler leiten muß man JMeter mit einem Proxy starten.

Möglich ist das über JMeter Startparameter:

jmeter –H 127.0.0.1 -P 8888

Links:
Blog von Praveen Rajappan

Wednesday, 7 July 2010

maven-jmeter-plugin: properties im jmx File

maven-jmeter-plugin 1.0

Wenn beim automatisierten Testen der Pfad zur Testdatenbank nicht hardcodiert angegeben werden kann steht man vor dem Problem, wie man nun den verflixten Pfad in die im jmx File definierten Requests reinbekommt. Die Lösung ist das Anlegen eines jmeterUserProperties im pom File:


      org.apache.jmeter
      maven-jmeter-plugin
      1.0
      
       
        jmeter-tests
        integration-test
        
         jmeter
        
       
      
      
       ${project.build.directory}/jmeter-reports
       
        ${project.build.testOutputDirectory}
       
      
      
       
        commons-logging
        commons-logging
        1.0.4
        true
        test
       
      
     

Dieses Attribut fügt man nun in den benötigten Stellen des jmx Files umschlungen mit ${__P(definiertesAttribut)} ein:


                false
                v2v.dbpath
                ${__P(buildpath)}%2FBENUTZER%2FSELENIUM%2F
                =
                true
              

Links:
maven-jmeter-plugin Download
Blogeintrag von Ronnie Alleva

Monday, 5 July 2010

JMeter Test erstellen

OS: Windows 7
JMeter 2.3.2
Google Chrome 5.0.375.86
Proxy Switchy!: 1.6.3

Als erstes installiert man sich das Chrome Plugin "Proxy Switchy!", das erleichtert einem das Leben wenn man häufiger zwischen den Proxyies hin und her schalten muß.

Hierzu meine Konfiguration:

Dann installiert man JMeter und startet es über die Datei jmeter.bat.


Meine Anforderung an den JMeterlauf ist es eine lokal gestartete Webapp aufzurufen und mich durch jede Maske zu klicken. Dazu füge ich per Rechtsklick zum Testplan eine Thread-Gruppe hinzu.
Da meine Webapplikation Cookies nutzt füge ich zur Thread-Gruppe einen HTTP Cookie Manager hinzu. Weiters füge ich zur Thread-Gruppe ein "HTTP Request Default Einstellungen"-Element hinzu. Hier füge ich in den Bereich "Webserver" den URL-String ein, mit dem ich die Applikation initial aufrufen will.

Nun fügt man bei WorkBench per Rechtsklick Hinzufügen/Nicht-Test-Elemente/HTTP Proxy Server einen Proxy hinzu, bei Port gibt man jene Portnummer an, welche man zuvor in Switchy! angegeben hat. Den Ziel-Controller stellt man auf Testplan > Thread-Gruppe um. Anschließend fügt man bei den Einzuschließenden URL-Muster noch die gewünschten hinzu, in unserem Fall wollen wir alles aufzeichnen (.* hinzufügen).
Um einen schönen Report zu bekommen fügen wir dieses Element zur Thread-Gruppe hinzu: Thread-Gruppe -> Rechtsklick -> Hinzufügen/Listener/Report.

Will man keine externe Quelle aufzeichnen startet man nun den Webserver, ansonsten stellt man nur sicher daß der richtige Proxy in Chrome eingestellt ist, dann im HTTP Proxy Server auf Start gedrückt. Man fügt nun in die URL-Zeile des Chrome die Start-URL ein und schon kann man beobachten wie im JMeter-Fenster die Requests mitgeschrieben werden.

Hat man seine Aufzeichnung beendet stoppt man den Proxy Server. Danach kann man die einzelnen Requests noch etwas reinigen, meist wird einiges mitgeschrieben, daß im Grunde nicht interessiert.

Um den Test nochmals ablaufen zu lassen klickt man auf die Thread-Gruppe, stellt die Anzahl der Thread ein (Anzahl der virtuellen User, die den Testplan durchlaufen), stellt die Ramp-Up Period ein (Abstand in Sekunden, in der die User nacheinander starten den Testplan zu durchlaufen) und die Anzahl der Wiederholungen ein, die jeder Thread (User) durchlaufen soll.

Danach kann man den JMetertest im Menüpunkt Start unter Start loslaufen lassen und nach Beendigung das Ergebnis im Report betrachten.
Um zu einem .jmx File zu kommen, wie es z.B. im jmeter-maven-plugin benötigt wird, klickt man auf den Testplan und dann im Menü Datei/Speichern Unter.

Links:
JMeter Proxy Pdf