Loadrunner Script für ein phpBB Forum
Die phpBB Forumssoftware funktioniert wie eine klassische Web Anwendung. Es gibt kaum aktive Inhalte und die Struktur ist über eine kleine hand von PHP Seiten und den verwendeten Query String abgebildet. So ist man für fast alle Aktionen nicht auf den Kontext der vorherigen Aktionen angewiesen.
Herrlich einfach also. Die einzige Ausnahme bildet hier die Anmeldung. Um vom Board entsprechende Rechte zu erhalten muss man angemeldet sein. Das Board verwendet Cookies zur Identifikation. Verwendet man Loadrunner braucht man sich darum nicht zu kümmern, wenn man die entsprechenden Run-Time-Settings verwendet.
Zur Anmeldung muss ein Post auf die Seite ucp.php ausgeführt werden:
Führt man diesen aus, weist der Server den Client im Response an Cookies zu Speichern. Dies kann man im Log einsehen:
Action.c(92): Set-Cookie: phpbb3_jzxns_u=2682; expires=Sat, 30-Mar-2019 08:55:27 GMT; path=/; domain=myHost.de; secure; HttpOnly\r\n
Action.c(92): Set-Cookie: phpbb3_jzxns_k=; expires=Sat, 30-Mar-2019 08:55:27 GMT; path=/; domain= myHost.de; secure; HttpOnly\r\n
Action.c(92): Set-Cookie: phpbb3_jzxns_sid=123456789abcdef; expires=Sat, 30-Mar-2019 08:55:27 GMT; path=/; domain= myHost.de; secure; HttpOnly\r\nLocation: https://www.myHost.de/index.php?sid=123456789abcdef\r\n
Wie gesagt, dies Verwaltet der Loadrunner automatisch. Verwendet man andere Scripting Tools, muss man dieses Cookie ggf. manuell speichern.
Einen echten Fallstrick gibt es jedoch noch, der mich etwas Zeit gekostet hat: Um einen Beitrag zu speichern muss man im Grunde nur einen Post auf ein Formular der Seite posting.php absetzten. In etwa so:
Zuvor muss man das entsprechende Formular jedoch geladen haben. Soweit so einfach. Wenn man dieses Script nun ausführt, funktioniert alles wunderbar, aber im Forum ist kein neuer Beitrag zu sehen. Dies hat mich ein wenig Zeit und eine kleine Recherche gekostet. Die Ursache dafür ist, dass die phpBB Software einen rudimentären Spam Schutz implementiert hat. Die Entwickler gingen davon aus, dass kein menschlicher Benutzer einen Beitrag in sehr kurzer Zeit erstellen kann (was ja normalerweise auch stimmt), daher werden alle schnellen postings von der Software kurzerhand verworfen. Im Script ist das nicht erkennbar. Man muss es einfach wissen.
Die Lösung dieses speziellen Problems ist so einfach wie der Spam Schutz selbst. Einfach eine Wartezeit von 10 Sekunden vor dem Post und alles funktioniert wie geplant.
Schreibe einen Kommentar