Whitepaper
Die Herausforderungen bei Mobil-Belastungstests bewältigen

EINLEITUNG

Mobile Anwendungen und Websites sind zu einem wichtigen Geschäftskanal geworden, denn sie verbessern die Mitarbeitereffizienz, die Kommunikation und die Erreichbarkeit der Verbraucher. In der Vergangenheit kam mobilen Lösungen in Bezug auf Geschäftsanwendungen eine geringere Bedeutung zu, weswegen Performance-Probleme und Ausfälle keine große Rolle spielten. Das ist längst nicht mehr so. Heute sind Umsatzeinbußen, Markenschädigung und reduzierte
Mitarbeiterproduktivität die direkte Folge von derartigen Schwierigkeiten mit mobilen Anwendungen.

Anwendungsentwickler sind sich der Notwendigkeit von Lasttests, die sicherstellen, dass herkömmliche Desktop WebAnwendungen unter Belastung mit der erwarteten Anzahl von Benutzern ordnungsgemäß funktionieren, seit langem bewusst. Die Grundsätze von Lasttests sind mit dem Aufkommen mobiler Anwendungen und Websites unverändert geblieben. Mobile Lasttests bringen jedoch besondere Herausforderungen mit sich, denen die Lasttestlösung Ihrer Wahl gerecht werden muss.

Die gute Nachricht ist: Da mobile Apps und Anwendungen für Desktop-Web-Browser die gleichen zugrunde liegenden Technologien nutzen, sind auch die meisten Lasttest-Aufgaben und – Anforderungen die gleichen. Das bedeutet, Sie benötigen nicht unbedingt ein brandneues, auf mobile Lösungen ausgerichtetes Lasttest-Tool. Was Sie jedoch brauchen, ist ein hochwertiges Tool, das auf die Feinheiten von Lasttests mobiler Apps abgestimmt ist. Mit einem Tool, das Sie in die Lage versetzt, klassische und mobile Web-Anwendungen zu testen, können Sie vorhandene interne Kompetenzen für die Gestaltung und Parametrisierung Ihrer Skripte, die Durchführung Ihrer Tests und die Analyse der Ergebnisse einsetzen.

Abgesehen von den Ähnlichkeiten zwischen herkömmlichen und mobilen Lasttests gibt es drei Hauptunterschiede:

  • Unterstützung eines breiten Spektrums von Geräten: Angesichts der zahlreichen verschiedenen Arten mobiler Geräte auf dem Markt sind Web-Anwendungsentwickler dazu übergegangen, Inhalte basierend auf den Funktionen der Plattform des Kunden maßzuschneidern. Dies birgt Herausforderungen für die Aufzeichnung und das Abspielen von Testszenarien.
  • Simulation von Netzwerkbedingungen für Drahtlos-Protokolle: 3G-Mobilgeräte stellen im Vergleich zu Desktops oder Laptops in der Regel eine langsamere Internetverbindung mit geringerer Qualität her. Dies wirkt sich auf die Antwortzeiten auf der Client-Seite und auf den Server selbst aus, was Sie bei der Testerstellung und der Ergebnisanalyse berücksichtigen müssen. Darüber hinaus erhalten die Faktoren Latenzzeit und Paketverlust beimobilen Anwendungen ein größeres Gewicht, was bedacht werden muss.
  • Aufzeichnung auf mobilen Geräten: Mobile Anwendungen werden, wie der Name schon sagt, auf mobilen Geräten ausgeführt, was die Aufzeichnung von Testszenarien schwierig machen kann, insbesondere im Hinblick auf geschützte Anwendungen, die HTTPS verwenden.

In diesem Artikel geht es um die Herausforderungen in Verbindung mit Lasttests für mobile Anwendungen sowie um Lösungen und bewährte Praktiken für die Aufzeichnung mobiler LasttestSzenarien, die Durchführung realitätsnaher Tests und die Ergebnisanalyse.

Name
Mobile Load Testing Challenges
Type

Try NeoLoad, the most automated performance testing platform for enterprise organizations continuously testing from APIs to applications.

 

GRUNDLAGEN MOBILER LASTTESTS

 

Wie Sie vielleicht wissen, emuliert ein typischer automatischer Funktionstest für eine mobile Anwendung Benutzeraktionen (darunter Tippen, Wischen, Zoomen, Texteingabe etc.) auf einem echten Gerät oder einem Emulator. Der Zweck von Lasttests besteht jedoch nicht darin, die Funktionalität einer Anwendung für einen einzigen Benutzer zu testen. Vielmehr soll die Performance der Server-Infrastruktur bei der Bearbeitung von Anfragen einer großen Anzahl von Benutzern beobachtet und nachvollzogen werden, wie Antwortzeiten durch andere Benutzer beeinflusst werden, die mit der Anwendung interagieren.

Ein effektiver Lasttest simuliert eine große Menge gleichzeitiger Benutzer, die über Ihre Anwendung auf Ihren Server zugreifen. Der Einsatz von echten Geräten oder Emulatoren für diese Aufgabe ist unpraktisch, da dies die Anschaffung, Konfigurierung und Synchronisierung Hunderter oder Tausender realer Geräte oder Rechner erfordert, die Emulatoren ausführen.

Die Lösung ist natürlich die Anwendung eines Lasttest-Ansatzes, der eine bedarfsgerechte Skalierung ermöglicht. Mit einer Client-basierten Herangehensweise werden Benutzeraktionen im Browser oder der nativen Anwendung aufgezeichnet und abgespielt. Im Gegensatz dazu beinhaltet ein Protokoll-basierter Ansatz die Aufzeichnung und Reproduktion des Netzwerkverkehrs zwischen dem Gerät und dem Server. Wenn es darum geht, die Performance unter großer Last zu verifizieren, sind Tools, die Protokoll-basierte Tests ermöglichen, Lösungen überlegen, die nur Client-basierte Tests Herausforderungen mobiler Lasttests unterstützen, da sie für Millionen von Benutzern skaliert werden können, während Fehler und Antwortzeiten für jeden Benutzer überprüft werden.

Protokoll-basierte Lasttests für mobile Anwendungen laufen im Allgemeinen wie folgt ab:

  1. Aufzeichnung des Netzwerkverkehrs zwischen dem Gerät und dem Server
  2. Abspielen der Netzwerkanfragen für eine große Anzahl virtueller Benutzer
  3. Ergebnisanalyse

Das klingt zunächst wenig kompliziert, jedoch sind bei jedem Schritt Herausforderungen zu

Automate API and end-to-end application performance testing with NeoLoad, the continuous performance testing platform.

 

AUFZEICHNUNG MOBILER LASTTEST-SZENARIEN

 

Um ein mobiles Testszenario zu erstellen, müssen Sie zunächst bestimmen, welcher Art die zu testende Mobilanwendung ist. Herausforderungen in Verbindung mit der Erfassung des Datenaustauschs zwischen einer mobilen Anwendung und dem Server sind von dem Design der Anwendung abhängig:

  • Native Anwendungen. Diese Anwendungen sind in einer gerätespezifischen Programmiersprache (Objective-C für iOS, Java für Android) geschrieben und nutzen eine gerätespezifische API. Als solche sind sie an eine Mobilplattform geknüpft und werden über einen Online-Shop oder -Marktplatz installiert.
  • Web-Anwendungen. die anhand von Web-Technologien (wie HTML und JavaScript) entwickelt wurden, kann von jedem mobilen Browser zugegriffen werden. Anspruchsvollere Web-Anwendungen bieten gegebenenfalls fortschrittliche Funktionen wie Positionsbestimmung oder Online-Speicher für Daten oder beinhalten Möglichkeiten zur besseren Anpassung an den verwendeten Browser. Zwei beliebte WebAnwendungen sind http://touch.linkedin.com und http://m.gmail.com.
  • Hybridanwendungen. Bei einer in eine native Anwendung eingebetteten Web-Anwendung handelt es sich um eine Hybridanwendung. Der native Teil der Anwendung ist auf einige Benutzeroberflächenelemente wie das Menü oder Navigationsschaltflächen und Funktionen wie automatische Anmeldung beschränkt. Die wichtigsten Inhalte werden in einer eingebetteten Webbrowser-Komponente angezeigt. Die Facebook-Anwendung, die über einen Online-Shop oder -Marktplatz installiert wurde, ist ein typisches Beispiel.

 

Aufzeichnung von Tests für native Anwendungen

 

Da native Anwendungen auf Ihrem Gerät oder innerhalb eines Emulators ausgeführt werden, müssen Sie zur Aufzeichnung eines Tests den Netzwerkverkehr abfangen, der von dem echten Gerät oder dem Emulator kommt.

Dazu muss die Ausrüstung zur Aufzeichnung des Datenverkehrs mit dem gleichen Netzwerk verbunden sein wie das Gerät. Befindet sich der aufzeichnende Rechner im Intranet hinter einer Firewall, ist es nicht möglich, ein Mobilgerät aufzuzeichnen, das mit einem 3G- oder 4G-Netz verbunden ist. Das Gerät, und der Rechner, auf dem der Recorder läuft, müssen mit dem gleichen Wi-Fi-Netz verbunden sein.

Die meisten Lasttest-Tools bieten einen Proxy-basierten Recorder, wobei es sich um die einfachste Methode zur Aufzeichnung des Netzwerkverkehrs einer Anwendung handelt. Um diesen Ansatz zu nutzen, müssen sie die Wi FiEinstellungen des Mobilgeräts so konfigurieren, dass der Datenverkehr über den Proxy-Recorder läuft. Manche mobilen Betriebssysteme, z. B.

iOS und Android 4, unterstützen diese Änderung, für ältere Android-Versionen gilt dies jedoch unter Umständen nicht. Einige Anwendungen stellen zudem eine direkte Verbindung mit dem Server her, unabhängig von den Proxy-Einstellungen des Betriebssystems. In beiden Fällen benötigen Sie ein Tool, das eine Alternative zu Proxy-basierten Aufzeichnungsmethoden auf der Grundlage von Netzwerkaufzeichnung oder Tunneln bietet.

Hinweis: Anhand des folgenden Tests können Sie ganz leicht herausfinden, ob die Anwendung mit einem Proxy aufgezeichnet werden kann. Nehmen Sie die Konfiguration der Proxy-Einstellungen an dem Gerät vor und zeichnen Sie Ihre Interaktionen mit einer beliebigen Website in einem mobilen Browser auf. Versuchen Sie danach, Interaktionen in der nativen Anwendung aufzuzeichnen. Wenn Ihr Test-Tool den Browser-generierten Datenverkehr erfolgreich aufzeichnet, den von der nativen Anwendung erzeugten Datenverkehr jedoch nicht, können Sie daraus schließen, dass die native Anwendung die Proxy-Einstellungen umgeht und eine alternative Aufzeichnungsmethode notwendig ist.

Aufzeichnung von Tests für Web-Anwendungen und mobile Versionen von Websites

 

Web-Anwendungen nutzen die gleichen Web-Technologien wie moderne Desktop-Browser. Daher können Sie Anwendungen oder die mobile Version einer Website über einen modernen Browser auf ihrem normalen Desktop-Rechner aufzeichnen, was eine einfachere und schnellere Alternative zur Aufzeichnung über das Gerät darstellt.

Viele Web-Anwendungen prüfen den Browser und die Plattform, die für den Zugriff auf diese Anwendungen verwendet werden. Dies ermöglicht der Anwendung, wenn der Zugriff auf sie von einem Mobilgerät erfolgt, die Umleitung zu einer mobilen Version des Inhalts, die gegebenenfalls weniger Text oder Bilder enthält. Um eine solche Anwendung vom Desktop aus zu testen, müssen Sie die Anfragen modifizieren, damit diese bei dem Server den Anschein erwecken, von einem Mobilgerät zu stammen. Anderenfalls testen Sie nicht die mobile Version der Anwendung, da der Server die Anfrage unter Umständen direkt an eine Desktop-Version umleitet. Einige Browser bieten die Möglichkeit, die Identität des Browsers zu ändern (durch die Modifizierung des User-AgentHeaders von Anfragen). In Recorder fortschrittlicher Lasttest-Tools ist außerdem die Unterstützung für dieses Merkmal direkt integriert.

Die Modifizierung der Browser-Identität ist nicht immer ausreichend. Natürlich können Sie auf diese Weise den Internet Explorer 6 nicht in einen HTML5-kompatiblen Browser umwandeln. Der Browser, den Sie auf dem Desktop verwenden, muss in der Lage sein, für mobile Browser gestaltete Inhalte zu parsen und zu rendern. Daher empfiehlt sich die Aufzeichnung mit einem modernen Browser wie Internet Explorer 9, Firefox 5, Chrome 15 oder Safari 5 (oder einer neueren Version dieser Browser, falls verfügbar). Beinhaltet die Anwendung WebKit-spezifische Merkmale, sollten Sie einen WebKitbasierten Desktop-Browser verwenden, vorzugsweise Chrome oder Safari.

Start testing with NeoLoad, the fastest, the most realistic, and the most automated continuous performance testing platform.

 

Aufzeichnung von Tests für Hybridanwendungen

 

Tests für native Anwendungen können natürlich nicht mit einem Desktop-Browser aufgezeichnet werden. Im Hinblick auf Tests für zahlreiche Hybridanwendungen ist dies jedoch kein Problem. Möglicherweise können Sie direkt auf die URL der Anwendung zugreifen, z. B. http://m.facebook.com für die Facebook-Anwendung, und Ihre Tests auf die gleiche Art und Weise aufzeichnen wie für eine klassische Web-Anwendung.

Aufzeichnung von Tests für geschützte native Anwendungen

 
Die Aufzeichnung von Tests für eine geschützte native Anwendung, d. h., eine Anwendung, die HTTPS für die Anmeldung oder beliebige andere Vorgänge verwendet, ist mit zusätzlichen Herausforderungen verbunden.

Standardmäßig werden alle HTTPS Aufzeichnungsmethoden, ob Proxy- oder Tunnel-basiert, von dem Gerät als Man-in-themiddle-Angriffe betrachtet. Dies löst in Desktop- oder mobilen Browsern eine blockierungsfreie Warnung aus, resultiert jedoch in nativen Anwendungen in einer vollständigen Verbindungsverweigerung, was die Aufzeichnung des geschützten Datenverkehrs unmöglich macht.

Die einzige Möglichkeit zur Aufzeichnung von Tests für geschützte native Anwendungen ist die Bereitstellung eines Stammzertifikats, das die Verbindung mit dem Proxy oder Tunnel autorisiert. Dieses Merkmal wird derzeit von verhältnismäßig wenigen Testlösungen unterstützt, ist jedoch für Lasttests nativer Anwendungen wesentlich, die HTTPS verwenden.

Hinweis: Das Stammzertifikat muss auf dem Gerät installiert sein. Bei iOS-Geräten lässt sich dies unkompliziert bewerkstelligen: Sie können das Zertifikat einfach per E-Mail senden und den Anhang auf dem Gerät öffnen. Bei anderen Plattformen, darunter Android, ist der Vorgang nicht so einfach und unter Umständen von der Version des Betriebssystems und dem Hersteller des Geräts abhängig.

 

DURCHFÜHRUNG REALITÄTSNAHER TESTS

 

 

Sobald Sie ein Testszenario aufgezeichnet haben, müssen Sie es parametrisieren, damit es während des Abspielens Benutzer mit verschiedenen Identitäten und Verhaltensweisen emulieren kann, um eine realitätsnahe Serverlast zu produzieren. Dieser Schritt ist für klassische und mobile WebAnwendungen erforderlich, und die Tools, die dazu eingesetzt werden, sind die gleichen. Das Abspielen der Testszenarien ist jedoch mit verschiedenen, für mobile Lasttests spezifischen Herausforderungen verbunden.

You have read 39% of the article