- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Performance Test - First Spirit CMS
Hallo zusammen,
Ich stehe gerade vor der Aufgabe einen Perfomance Test von First Spirit CMS durchzufรผhren.
Ziel des Tests:
Es soll ermittelt werden wieviele Redakteure sich gleichzeitig einloggen und Ihre Bereiche bearbeiten kรถnnen. (HTML sowie JAVA Client)
Der Hintergrund: Ermittlung ob die vorhanden Hardware Ressourcen ausrreichen.
Erster Testansatz:
รber die Access API sollen folgende Zugriffe erfolgen:
- Anmeldung eines Benutzers
- Aufruf der benรถtigten Seite
- Bearbeitung des Contents
Die Daten fรผr die Bearbeitung stammen aus einem Dokument (test.txt) oder werden im Falle von Bilder direkt angegeben.
Aus dem Text Dokument werden einzelne Char entnommen und in den Content (mit Zeitverzรถgerung die das Eintippen simulieren) eingepflegt.
Das Einpflegen soll solange erfolgen bis der Test abgebrochen wird (Text wird innerhalb des Tests auch wieder gelรถscht das der Contnent im รผblichen Rahmen bleibt).
Danach werden schrittweise neue Benutzer am System angemeldet die eine andere Seite bearbeiten.
Die Programmierung des Test erfolgt in Java.
Nun meine Frage:
Bevor ich mich in die Access API einarbeite wรผrde mich interessieren ob man dies รผberhaupt durch die API lรถsen kann.
Anregungen und Hinweise nehme ich gerne entgegen.
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
ein interessantes Thema und ein interessanter Ansatz. Meine รuรerung ist aber nur als Meinung eines Anwenders zu sehen - e-spirit hat da sicherlich grundsรคtzlichere Antworten parat.
Aus meiner Erfahrung mit der API aus dem Client heraus kann man alles ab "Aufruf ..." (siehe Liste) in einem Client-Script innerhalb des Java-Clients laufen lassen. Man hat dann auch realistische Bedingungen, weil das Client-Script ja nichts anderes macht als des User, wenn er den Java-Client verwendet - von der lokalen Darstellung der Client-GUI mal abgesehen, aber das sollte im Server- Lasttest eh keine Rolle spielen.
Aus meiner Sich kann man damit aber nicht:
- Automatisch einen User anmelden. Das Client-Script lรคuft im User-Context, mit der Anmeldung des Users.
- Den Webedit-Client (und damit den Overhead fรผr die Erzeugung des HTML-Outputs) testen. Selbst wenn der Client Script-fรคhig ist, laufen trotzdem die Scripte ohne Update der HTML-Ausgabe ab, und manipulieren nur die Datenbasis auf dem Server.
Natรผrlich kรถnnte man einen solchen Lasttest auch serverseitig als Modul realisieren, aber da stellt sich dann die Frage, wie aussagekrรคftig das in Bezug auf die Praxis ist, weil beispielsweise die Netzwerk-Kommunikation und die lokale Speicherverwaltung des Clients als Faktoren wegfallen.
Evtl. kรถnnte man auch ein Java-Standalone-Programm schreiben und die API-Klassen verwenden - auch da stellt sich mir aber die Frage nach der Ausagekraft, d.h. WAS testet man denn damit รผberhaupt?
Deshalb auch meine Antwort - mich wรผrde interessieren, was als Test Sinn macht. Bei uns (fast nur Verwendung des Java-Clients) wรผrde ich das so machen: Client-Script mit den entsprechenden Manipulationen schreiben, Projekt auf 3-4 Rechnern jeweils in 3-4 Clients laden, dann nach und nach in den Clients starten und sehen, was auf dem Server passiert. Gleichzeitig wรผrde ich in den Clients die Reaktionszeiten des Servers loggen.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Um den JavaClient zu simulieren, wรผrde man die Access-API verwenden. Einfach entsprechend viele Connections zum Server aufbauen und die gewรผnschten Aktionen durchfรผhren (Anlegen von Inhalten, bearbeiten, lรถschen etc.). Das machen wir bei unseren Tests auch so.
Man testet damit natรผrlich nicht die Oberflรคche des JavaClients, sondern ob bei einer bestimmten Zahl von Objekten im System die Performance leidet (Aktionen dauern lรคnger) oder wie das System skaliert (bei X gleichzeitigen Operationen entstehen Bottlenecks, Speicherprobleme etc.).
Den WebClient testet man wie eine klassische Webapplikation. Zum Beispiel per JMeter und entsprechender Logik um die Formulare abzuschicken und Buttons zu klicken. Selenium und Konsorten kann man natรผrlich auch verwenden. Hier testet man primรคr die Ladezeiten der Seiten und ab welcher Anzahl von gleichzeitigen Anfragen das System einbricht.
Eventuell ist es sinnvoll vorher noch mal mit uns Rรผcksprache zu halten. Es wurden erst kรผrzlich, im Rahmen eines Auswahlprozesses, Tests durchgefรผhrt. Vielleicht sind diese Ergebnisse schon ausreichend, wobei ich erst in Erfahrung bringen muss, ob wir diese weitergeben dรผrfen. Sie wurden von einer anderen Firma durchgefรผhrt und ausgewertet. In der Regel stehen wir bei solchen Szenarien beratend zur Seite, damit gewรคhrleistet ist, dass die Tests auch ihren Anforderungen entsprechen und somit aussagekrรคftig sind.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Verhรคlt sich die Simulation des Java Clients รผber die Access API genauso wie ein tatsรคchlich eingeloggter User?
Sprich der Datenverkehr zwischen Javaclient bzw. Access API und dem Server sollte in beiden Fรคllen gleich sein.
Gerne halte ich auch Rรผcksprache mit Ihnen bezรผglich der Tests, vorausgesetzt Sie dรผrfen die Ergebnisse bekannt geben.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Der Java-Client benutzt die API, d.h. mann kann mit einem API-basiertem Test das Verhalten ziemlich genau simulieren. Natรผrlich hat der JC an einigen Stellen ein zusรคtzliches Caching (z.B. werden Knoten รผber die offenen Arbeitsbereiche referenziert und dadurch nicht vom Garbage Collector weggerรคumt). Aber auch das kann man simulieren, bzw. wenn man es nicht macht ergibt sich durch den Test eben ein etwas schlechteres Bild, als man es in der Realitรคt bekommen wรผrde (weil z.B. hรคufiger nachgeladen wird).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Sydow,
zusรคtzlich zu den Hinweisen zu den Tests รผber die API, hier einige Informationen zu anderen Testmรถglichkeiten:
Um die Auslastung durch viele parallel arbeitende Redakteure am Web- und Java-Client zu simulieren verwenden wir intern und auch bei Kunden folgende Software:
Web-Client: JMeter: http://jakarta.apache.org/jmeter/
Java-Client: QF-Test: http://www.qfs.de/
JMeter kann auf einem normalen Desktop-Rechner (2-4 CPU-Cores, 16 GByte RAM) schon mehrere hundert parallel aktive Redakteure simulieren. Die Erstellung eines Testskripts ist aber zeitaufwendig und benรถtigt fรผr jemanden, der sich bereits allgemein mit JMeter auskennt ca. 1 PT pro zu simulierendem Arbeitsschritt, wobei ein Arbeitsschritt z.B. das Erstellen einer neuen Seite und Eingabe von Text wรคre.
QF-Test fรผr den Lasttest mit Java-Client erfordert mehr Hardware-Ressourcen, da eine Instanz des Java-Client ca. 200 MByte RAM benรถtigt und ca. 5 Clients pro CPU-Core im Normalbetrieb akzeptabel sind. Die Erstellung des Testskript ist dann aber relativ einfach, da QF-Test im Gegensatz zu JMeter einfach zu bedienen ist und man den Client beim Erstellen direkt sieht, und damit ca. um den Faktor 5 schneller als bei JMeter. Der Hersteler bietet auf Anfrage zeitbeschrรคnkte Lizenzen von z.B. nur wenigen Wochen an, so dass die Kosten รผberschaubar sind.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Vielen Dank fรผr die hilfreichen Antworten.
Aufgrund der sehr spรคrlichen Beschreibung der Access API habe ich nun schon verschiedene andere Mรถglichkeiten ausprobiert aber bisher ohne Erfolg.
รber HTML (selenium) und den Java standalone Client (Eclipse Jubula) komme bis zur Editier Funktion eines Contents.
Einloggen>Seite aufrufen>Content auswรคhlen>in den Editmodus wechseln
Innerhalb der Editierfunktion kann ich alle Inhalte ansprechen (รberschrift, Fett, Kursiv usw.) nur die eigentliche Editierbox kann ich nicht ansprechen (eintragen des angezeigten Textes).
Hier ist mit allen Tools Schluร da diese Box nicht erkannt wird.
Hat hier noch einer eine Idee wie ich dies ohne die Access API lรถsen kรถnnte?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
> Hat hier noch einer eine Idee wie ich dies ohne die Access API lรถsen kรถnnte?
Siehe meine Antwort vom 08.08.2011 14:04. Bei Verwendung der beschriebenen externen Standard-Software zum Test von Web-Anwendungen oder Java-Anwendungen ist keine Kenntnis der API notwendig.

