Zur Navigation

Lasttest für JSP-Umfrage

1 lava

Hallo,

eine von mir in JSP programmierte Umfrage ist bei zu vielen gleichzeitigen Zugriffen nicht korrekt gelaufen. Ich speichere bei einer mehrseitigen Umfrage, bei der man auch vor- und zurückblättern kann, die Zwischenergebnisse solange in Sessions, solange sie noch korrigiert werden können und zieh erst beim Absenden der letzten Seite aus den Session-Attributen heraus die Ergebnisse zum Speichern in eine Datenbank. Leider hatte ich nicht bedacht, daß Sessions zwischendrin sterben können, d.h. das evtl. beim Abschicken der letzten Seite in der aktuellen Session nicht mehr alles drinsteht, was ich vorher hineingepackt hatte. Das ist jetzt insofern behoben, als ich jetzt immer auch die Session-ID in eine lokale Variable übergebe und mit der jeweils aktuellen Session-ID überprüfe, ob das noch dieselbe Session wie auf der ersten aufgerufenen Seite ist -> wenn nicht, wird der Umfrageteilnehmer aufgefordert, seine Daten erneut einzugeben. Jetzt weiß ich aber nicht, wie ich das testen kann. Klar kann ich gucken, was passiert, wenn eine aufgerufene Seite ewig offen ist und dann erst nach dem Session Timeout abgeschickt wird, ob dann die Aufforderung zur Neueingabe kommt. Aber Sessions sterben ja wohl nicht nur beim Timeout, sondern auch bei Überlastung durch besonders hohe gleichzeitige Teilnehmerzahlen - wie kann ich einen Lasttest durchführen? Genügt es, so ein Lasttest-Tool zu nehmen, was einfach viele Sessions öffnet (das meint eine Kollegin), oder müßte ich ein Programm habe, was wirklich die Aktionen durchführt, die ein möglicher Teilnehmer durchführen könnte (also Dinge eintrage, abschicken, zurückgehen, ändern etc. - was ja jeweils in den jeweiligen Sessions noch Attribute einführt, verändert etc.) ??? Und welches Tool ist zu empfehlen? Oder kann ich mir auch selber einen Lasttest schreiben?

16.06.2008 17:11

2 Jörg Kruse

Hallo lava,

Das ist jetzt insofern behoben, als ich jetzt immer auch die Session-ID in eine lokale Variable übergebe und mit der jeweils aktuellen Session-ID überprüfe, ob das noch dieselbe Session wie auf der ersten aufgerufenen Seite ist -> wenn nicht, wird der Umfrageteilnehmer aufgefordert, seine Daten erneut einzugeben. Jetzt weiß ich aber nicht, wie ich das testen kann.

Mit JSP kenne ich mich leider weniger aus. Von PHP werden die Sessions als einzelne Text-Dateien in einem bestimmten Verzeichnis gespeichert. Ich habe in solchen Test-Fällen einfach die betreffende Session-Datei manuell gelöscht :). Vielleicht kann man bei JSP ähnlich verfahren?

Einen einfachen Lasttest kannst du auch selbst schreiben, indem du die lasterzeugenden Funktionen in einer Schleife aufrufst. Mit der Anzahl der Schleifendurchläufe kannst du die Last dabei regulieren

16.06.2008 17:58

3 lava

Hm, wie rufe ich denn von einem Programm aus z.B. das Ausfüllen und Absenden eines HTML-Formulars auf? Wenn ich dich richtig verstehe, müßte ich ja dann in einer beliebigen Programmiersprache (also z.B. C oder Java) ein Programm schreiben, was sich pro simuliertem Teilnehmer zunächst mit der Startseite der Umfrage verbindet, und dann dann randommäßig die Formulare ausfüllt und sich randommäßig vorwärts/rückwärts durchklickt.

17.06.2008 10:57

4 Jörg Kruse

Den Umweg über die Formulare benötigst du denke ich in diesem Fall nicht - ich würde einfach die Funktionen aufrufen, die die Session starten und Daten in die Session schreiben. Die Sessions werde ja vermutlich gelöscht, weil zuviel Sessions eröffnet wurden und nicht, weil zu viele Formulare abgesendet wurden?

Und wenn es nur darum geht, eine Test-Bedingung zu schaffen, in der eine bestimmte Session geleert wird, wäre es zudem einfacher, diese eine Session gezielt zu beenden. Wie man das in JSP bewerkstelligen kann, weiß ich nicht. In PHP kann man wie gesagt die dazughörige Session-Datei einfach löschen. Dann gibt es dort noch die etwas sauberere Möglichkeit, die Session aus einem andern Script heraus zu übernehmen und dort zu beenden

17.06.2008 11:13

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]