Hi@all
Ich bin neu hier und habe direkt eine Frage:
Ich möchte einen Lasttest des Typo3 Backends mit Hilfe von JMeter durchführen. Dabei möchte ich folgendes testen:
- Login im Backend
- Anzeigen eines Artikels / Seite
- Editieren eines Artikels / Seite (wenn möglich)
Ich habe mit JMeter verschiedene Login Varianten getestet, allerdings ohne Erfolg. Dabei habe ich als erstes das Backend aufgerufen und versucht die Login Parameter übergeben. Der Request sieht wie folgt aus:
http://www.mydomain.com/typo3/index.php?challenge=ab1e3c6456c43822f8602356d172480a&commandLI=Anmelden&interface=backend&loginRefresh=&login_status=login&p_field=PASSWORD&redirect_url=backend.php&userident=31eb75ff527c9f36ffed874a3c5dc406&username=USER
Ich habe diese Parameter mit Hilfe von Firebug im Firefox ausgelesen.
Hat jemand von Euch das Typo3 Backend mit Login erfolgreich testen können oder sogar einen fertigen JMeter Testplan für mich?
Über Eure Unterstützung würde ich mich freuen!!!
Greetz
ShirKhan76
Hi@all!
Hat keiner eine Idee wie ich das Typo3 Backend mit JMeter testen kann?
Gibt es vielleicht ein anderes Tool mit dem man Lasttests auf das Typo3 Backend (mit Login) machen kann?
Greetz
ShirKhan76
Hallo *,
wir haben so etwas vor kurzem gemacht. Mit einem bsf-sampler haben wir die hash-Berechnung "nachgebaut". Zusätzlich zur md5-Berechnung (md5.js) musste dass benutzte JavaScript noch etwas modifiziert werden (Formularfelder sind in JMeter ja nicht gefüllt, Benutzernamen kamen aus einer Tabelle). Ich werde die nächsten Tage mal eine Doku fertig machen mit einem Beispiel.
// aus TYPO3 Backend Login habe ich die Funktion doChallengeResponse übernommen und etwas modifiziert
function doChallengeResponse(superchallenged) { //
// karl@sitestress.eu, 10.02.2012 // www.sitestress.eu
//password = document.loginform.p_field.value;
//passwort kommt nicht mehr aus document.loginform.p_field.value sondern aus JMeter-Variablen "password"
password ='' + vars.get("password");
if (password) {
if (superchallenged) {
password = MD5(password); // this makes it superchallenged!!
}
// identisch mit challenge und username verfahren, aus JMETER Variablen herausholen
// str = document.loginform.username.value+":"+password+":"+document.loginform.challenge.value;
var str = vars.get("username") +":"+password+":"+challenge;
// document.loginform.userident.value = MD5(str);
var md5str = MD5(str);
// in JMeter zurückschreiben in Variable userident
vars.put("userident",md5str);
// document.loginform.p_field.value = "";
return true;
}
}
var challenge = '' + vars.get("challenge");
doChallengeResponse(1);
Ich habe vor Jahren mal auf den lokalen Testsystemen diese Extension genutzt "BE Auto IP Login (cc_iplogin_be)" und wurde, wie der Name schon sagt, automatisch eingeloggt. Vielleicht kann das ja weiterhelfen.
Hallo *,
Habe es geschafft und mich hingesetzt und das Ganze mal fertiggemacht.
Das Problem ist eigentlich nur der "Nachbau" der Berechnung des Hash im
Browser/Client/JMeter. Geht aber! JMeter hat einen sogenannten BSF Sampler http://jmeter.apache.org/usermanual/component_reference.html#BSF_Sampler ,
mit dem kann man auch Javascript ausführen (benutzt Rhino).
Ein Beispiel, wo Ihr nur noch Host/User/Passwort ändern müsst
findet Ihr hier: http://www.sitestress.eu/jmeter-typo3-login.html
bzw. als
jmx-File hierhttp://www.sitestress.eu/fileadmin/redakteure/backend-login-typo3-jmeter.jmx
Grüße
karl
Hallo *,
wir haben so etwas vor kurzem gemacht. Mit einem bsf-sampler haben wir die hash-Berechnung "nachgebaut". Zusätzlich zur md5-Berechnung (md5.js) musste dass benutzte JavaScript noch etwas modifiziert werden (Formularfelder sind in JMeter ja nicht gefüllt, Benutzernamen kamen aus einer Tabelle). Ich werde die nächsten Tage mal eine Doku fertig machen mit einem Beispiel.
// aus TYPO3 Backend Login habe ich die Funktion doChallengeResponse übernommen und etwas modifiziert
function doChallengeResponse(superchallenged) { //
// karl@sitestress.eu, 10.02.2012 // www.sitestress.eu
//password = document.loginform.p_field.value;
//passwort kommt nicht mehr aus document.loginform.p_field.value sondern aus JMeter-Variablen "password"
password ='' + vars.get("password");
if (password) {
if (superchallenged) {
password = MD5(password); // this makes it superchallenged!!
}
// identisch mit challenge und username verfahren, aus JMETER Variablen herausholen
// str = document.loginform.username.value+":"+password+":"+document.loginform.challenge.value;
var str = vars.get("username") +":"+password+":"+challenge;
// document.loginform.userident.value = MD5(str);
var md5str = MD5(str);
// in JMeter zurückschreiben in Variable userident
vars.put("userident",md5str);
// document.loginform.p_field.value = "";
return true;
}
}
var challenge = '' + vars.get("challenge");
doChallengeResponse(1);
[/quote]