Haben Sie sich bereits mit Lasttests für eine Cloud-Anwendung befasst? Mit soapUI oder loadUI? Auf der Salesforce-Plattform? Oder sehen das auf sich zukommen? Dann könnte dieser Artikel für Sie interessant sein. Dies ist ein etwas technisch angehauchter Blogartikel.

logicline hat eine Cloud-Lösung für Drehkreuzautomaten (wie sie an Raststellen zu finden sind) erstellt (unser Thema „Internet der Dinge“). Die Automaten lassen sich in der „Easy Entrance Network“ Anwendung verwalten, steuern und überwachen.

Da dieses Szenario für die Salesforce-Plattform noch recht innovativ ist, soll geprüft werden ob die Cloud-Plattform die von den Drehkreuzen erzeugte Last performant handhaben kann.
Dieser Artikel behandelt nicht die verschieden Lasttestszenarien, die verwendete Methodik oder gar die Ergebnisse der Tests, sondern fokussiert vielmehr auf einige technischen Aspekte bei der Erstellung eines Lasttestszenarios für diese Cloud-Plattform.

Lasttestszenario

Gemessen werden soll die Last welche auf Salesforce-Seite erzeugt wird, wenn 150 Drehkreuze im Normalbetrieb laufen. Die Messung der Last wird durch Force.com übernommen. Wir befassen uns daher hier nur mit der Lasterzeugung.

Verwendet werden sollen SoapUI und LoadUI, einerseits um die Requests an Easy Entrance Network  zu senden andererseits um dies in hinreichender Frequenz zu tun.

soapUI

Hier werden 3 Testcases erstellt. Diese Testfälle können anschließend über LoadUI gestartet und überwacht werden. Die folgende Abbildung zeigt die soapUI Testcases:

soapUI Testfälle

soapUI Testfälle

  • LoginTestcase führt eine Anmeldung an das Easy Entrance Network durch und speichert das Security Token, so dass folgende Requests Authentifiziert sind.
  • Worker verwendet die bei der Anmeldung erstellten Credentials und führt verschiedene Operationsaufrufe durch.
  • LogoutTestcase meldet den Benutzer wieder ab.

Die Beschreibung der Implementierung mit soapUI nebst einiger Details finden sich in einem gesonderten Salesforce-Plattform Tests mit soapUI.

loadUI

Dieses Werkzeug erlaubt es Lasttestszenarien aufzubauen, diese zu überwachen und zu steuern. Mittels Virtual User (VU) Generatoren werden Benutzer simuliert welche das Zielsystem benutzen. Mit „Runners“ können Anfragen an Webseiten oder über soapUI erzeugt werden. Weitere Elemente erlauben die Steuerung der „Runners“.  Die folgende Abbildung zeigt wie wir unseren Test 150 mal starten und so die 150 Drehkreuze simulieren:

loadUI Scheduler und FixedRate VU Generator

loadUI Scheduler und FixedRate VU Generator

Die oben abgebildete Konstruktion erlaubt es eine bestimmte Anzahl an Drehkreuzen zu erzeugen. In unserem Fall stellen wir am Scheduler ein Intervall von 150 Sekunden ein, der dahinter geschaltete „Fixed Rate VU Generator“ erzeugt 1 Ereignis pro Sekunde. Somit wird 150 Sekunden lang 1 Ereignis/Sekunde erzeugt, was in insgesamt 150 erzeugten Ereignissen resultiert. Diese Ereignisse starten dann die eigentlichen Requests, wie im Folgenden beschrieben. Der Lastest wird entsprechend der folgenden Abbildung orchestriert:

loadUI Lastest Orchestrierung

loadUI Lastest Orchestrierung

Zunächst wird der soapiUI Testcase für den Easy Entrance Network Login aufgrufen, anschließend beginnt eine Schleife in der Requests (diesmal mit Hilfe des soapUI Worker Testcase) an Easy Entrance Network abgegeben werden. Das Flow Element „Delay“ sorgt dafür, dass die Requests nur alle 7 Minuten an Easy Entrance Network gesendet werden.

Über den Schleifenzähler kann konfiguriert werden wie oft ein Automat requests sendet. Sobald die schleife verlassen wird erfolgt ein Abmelden vom Easy Entrance Network.

Zusammengefasst

Die Erstellung von einfachen Lasttests mit LoadUI ist relativ einfach. Das gezeigt Szenario inkl. der soapUI Anteile konnte innerhalb eines Tages ohne große Vorkenntnis der benutzten Werkzeuge erstellt werden.

Einzig die Erzeugung einer fixen Anzahl an Ereignissen, welche unser Testzenario starten, stellte sich als etwas trickreich heraus. LoadUI stellt hierfür keine dedizierte Komponente zu Verfügung.