Qytera News

Fiddler - Überblick und Nutzen des Web Debugging Proxy für Ihre Webseiten Tests

Lesedauer: 2 Minuten

Auch wenn es für mich als Softwaretester nicht im Fokus steht, die Ursache von Problemen herauszubekommen, ist es aber beim Testen von Webseiten immer wieder wichtig die eigentliche Datenkommunikation auswerten zu können. Hierzu gibt es verschiedene Tools, die den Netzwerkverkehr mitschneiden und damit analysierbar machen.

Ich möchte hier das Tool Fiddler Everywhere vorstellen, da dies für meine Arbeit mit Webseiten und Webservices ein leicht zu verstehendes und hilfreiches Werkzeug war. Auch gerade für die Analyse von HTTPS-Verbindungen, die sich inzwischen als Standard durchgesetzt haben.

Ansatz von Fiddler

Der PC, auf dem Fiddler installiert wird, muss die Datenpakete erhalten, die sonst direkt zwischen den Kommunikationspartnern ausgetauscht werden. Hier nutzt Fiddler die Möglichkeit eines Proxys, der in den Einstellungen des Client-PCs gesetzt wird. Damit wird der gesamte Datenverkehr über diesen Fiddler-Proxy gelenkt, der diese Datenpakete in der Oberfläche anzeigt.

Dies ist sehr einfach für unverschlüsselte HTTP-Verbindungen möglich, für HTTPS-Verbindungen gibt sich Fiddler als Man-In-The-Middle aus, d.h. es kann durch die verwendeten self-signed Zertifikate die verschlüsselten Verbindungen dekodieren und somit lesbar machen.

Somit kann eine Fiddler-Installation recht schnell und einfach in das Netzwerk integriert werden, ohne die Infrastruktur zu verändern oder andere Abhängigkeiten zu besitzen.

Erste SchritteEinrichtung Fiddler

Die Installation unter Windows und macOS gestaltet sich über ein sehr einfaches Installationsprogramm. Das Setup kann ohne Änderung an den Standardwerten durchgeführt werden. Eine alternative Installation unter Linux wäre möglich, wurde aber bisher von mir nicht vorgenommen.

Die Konfiguration innerhalb des Programmes beschränkt sich auf einige wenige Punkte. So ist das vertrauenswürdige Root-Zertifikat zu installieren, das Mitschneiden des HTTPS-Datenverkehrs zu aktivieren, den Port zu definieren und die Erlaubnis, eine Verbindung von Remote-Computern zuzulassen, zu setzen. Nun muss nur noch die eigene IP Adresse ermittelt werden und die Einrichtung des Clients kann erfolgen.

Einrichtung Client

Entweder in den Betriebssystem Netzwerkeinstellungen oder auch in der Applikation (z.B. Firefox) sind die Proxyserver für HTTP- und HTTPS-Verbindungen zu setzen. Hier ist die IP-Adresse mit der Fiddler-Installation und der in Fiddler konfigurierte Port anzugeben.

Für das Auslesen von HTTPS-Verbindungen muss noch zusätzlich das Fiddler-Root-Zertifikat installiert werden. Dies erfolgt über die URL http://ipv4.fiddler:[Ihr Proxy-Port] und je nach Betriebssystem weiteren Konfigurationen in der Zertifikatsverwaltung bzw. Netzwerkeinstellungen. Sind diese korrekt durchgeführt, können nun auch HTTPS-Verbindungen aufgebaut werden und der PC mit Fiddler schneidet diese nun mit.

Einsatzbeispiel

Es lassen sich alle Datenpakete, die zwischen dem Client PC und x-beliebigen Seiten stattfinden, mitschneiden. Anhand der Webseite httpvshttps.com lässt sich gut zeigen wie Fiddler eingesetzt werden kann. Die Seite kann entweder als HTTP oder HTTPS Variante aufgerufen werden.

Für meinen Test habe ich dies jeweils 1x durchgeführt. Jeder Aufruf hat jeweils ca. 400 Datenpakete verursacht, die in Fiddler erscheinen. Der Überwiegende Teil der Kommunikation fand direkt mit der Webseite statt, aber auch teilweise mit eingebetteten Inhalten, wie Twitter, Google und Facebook, die gar nicht offensichtlich auf der Seite erscheinen. Filtere ich nun nach dem Protokoll HTTP und den Host httpvshttps.com bleiben 363 Pakete übrig. Filtere ich weiter nach check.png in der URL erhalte ich 360 Pakete. Genauso viele Bilder lädt die Webseite nach ihrer Beschreibung herunter.

Möchte ich nun aber die eigentliche HTML Seite erhalten, muss ich den URL-Filter “does not contain” check.png verwenden und erhalte u.a. ein Datenpaket, das in der URL nur ein “/” stehen hat. Hier lässt sich der HTML-Seiteninhalt im Response Text einsehen (siehe Screenshot).

Bild: HTML-Seiteninhalt im Response Text. (Klicken zum Vergrößern) [Quelle: Fiddler Everywhere] × Zusammenfassung

Fiddler habe ich als ein sehr einfach zu installierendes und leicht zu bedienendes Programm zum mitschneiden von HTTP/HTTPS-Verkehr kennengelernt. Die Filtermöglichkeiten sind sehr vielfältig und damit lassen sich die hohe Anzahl an Datenpaketen auf das Wesentliche reduzieren. Und über die hier beschriebene Funktionalität bringt Fiddler weitere Möglichkeiten mit, die Kommunikation zu manipulieren. Somit lassen sich Pausen einbauen, die Antworten verwerfen oder mit eigenen, alternativen Antworten in die Kommunikation eingreifen.

04. März 202104. März 2021Finden Sie weitere interessante Artikel zum Thema:  Artikel weiterempfehlen:

Testmanagement mit Jira - Xray

Lesedauer: 4 Minuten

In diesem Artikel möchten wir Ihnen die App “Xray” für Jira vorstellen.

Was ist Jira?

Jira ist eine Webanwendung für agiles Projektmanagement, Fehlerverwaltung und Problembehandlung. Ursprünglich wurde Jira vor allem in der Softwareentwicklung verwendet, hat sich jedoch mittlerweile auch in vielen anderen Bereichen eine Anwendung gefunden.

In Jira werden Projekte durch Aufgaben bzw. Vorgänge (Issues) dargestellt. Aufgaben können in Projekten organisiert, Benutzern zugewiesen und mit Deadlines versehen werden. Dargestellt werden können diese Aufgaben mittels agiler Boards (wie etwa Scrum- und Kanban-Boards), was Jira gerade für agile Teams zu einem interessanten Tool für das Projektmanagement macht.

Die Architektur von Jira ist darauf ausgelegt, dass Drittanbieter das Tool mit eigenen Erweiterungen ausstatten können. Eine dieser Erweiterungen - das Tool Xray zur Fehlerverwaltung - möchten wir Ihnen in diesem Artikel vorstellen.

Motivation von Xray

Bei Xray handelt es sich um eine Erweiterung der Jira-Plattform, die zum Verwalten von Testprojekten entwickelt wurde. Xray zeichnet sich durch seine Skalierbarkeit und seine Möglichkeiten aus, mehrere Benutzer an einem Projekt mitarbeiten zu lassen.

In einem komplexeren Testprojekt ist es vonnöten, den Testprozess durch ein geeignetes Modell abzubilden. So müssen u.a. zu Beginn des Projektes Anforderungen an den Testprozess gesammelt und dokumentiert werden. Aus den Anforderungen werden in einem weiteren Schritt Testbedingungen und Testfälle abgeleitet. Schlussendlich werden die Testfälle zu Testplänen zusammengestellt, welche sich automatisiert ausführen lassen können. Weiterhin sollten die Ergebnisse der Tests dokumentiert werden und die Rückverfolgbarkeit der Testfälle zu den Anforderungen gewährleistet bleiben.

Xray unterstützt hierbei den gesamten Prozess von der Planung der Testfälle bis hin zu deren Ausführung und dem Reporting. Hierbei wird dem Tester die Arbeit abgenommen, eine eigene Infrastruktur für ein Testprojekt aufbauen zu müssen, beispielsweise mittels Dokumentation der Testfälle in Word-/Excel-Files und einer Kommunikation über E-Mails. Die Nutzung von Xray führt zu einer deutlichen Zeitersparnis und somit einer Steigerung der Qualität und der Effizienz eines Testprojektes.

Xray für das Testmanagement mit Jira

Xray erweitert Jira um vordefinierte Issue Types, um die Testentitäten abzubilden. Dies ermöglicht die einfache Interaktion von Xray mit anderen Erweiterungen für Jira. So können folgende Entitäten angelegt werden:

  • Tests: In dieser Entität wird der eigentliche Test festgehalten. Sie können definieren, welche Aktion der Testfall testen und wie das zu erwartende Ergebnis aussehen soll. Tests lassen sich in einzelne Schritte untergliedern. Auch für diese Schritte lassen sich Testbeschreibungen und erwartete Ergebnisse definieren.
  • Pre-Conditions: In dieser Entität können Sie festlegen, welche Vorbedingungen für einen Test erfüllt sein müssen, damit dieser ausgeführt werden kann. Beispielsweise kann eine Vorbedingung beinhalten, dass eine Testdatenbank mit vordefinierten Datensätzen eingerichtet und bereitstehen muss. Eine Vorbedingung kann mehreren Tests zugeordnet werden.
  • Test Set: Tests können in Gruppen, den Test Sets, zusammengefasst werden. Alternativ lassen sich Tests auch in einer Ordnerstruktur, den sogenannten Repositories organisieren.
  • Test Execution: Mittels dieser Entität lassen sich Testzyklen planen. Test Executions fassen eine Menge von Testfällen zusammen, welche entweder manuell oder automatisiert ausgeführt werden sollen.
  • Test Plan: Mittels der Entität Test Plan lassen sich Test Execution Entitäten zu einem übergreifenden Testplan zusammenfassen. Weiterhin ermöglicht dies ein übergreifendes Reporting der Tests, die während der Testausführung durchgeführt werden.
Rückverfolgbarkeit

Xray stellt die Rückverfolgbarkeit der Testfälle zu Ihren Anforderungen sicher, indem sich Testfälle mit den Aufgaben aus dem Scrum- bzw. Kanban-Board des Projektes verknüpfen lassen. Somit lässt sich u.a. die Testüberdeckung eines Features und die Qualität der Implementierung dieses Features leicht beurteilen.

Reporting

Nach dem Durchführen der Testfälle ist es nötig die Testergebnisse zu dokumentieren, um den Fortschritt des Testprojektes und die Qualität der getesteten Software beurteilen zu können. Hierfür stellt Xray eine graphische Oberfläche zur Verfügung, die den beteiligten Personen einen Überblick über die vorhandenen Testfälle und deren Ausführungsverlauf gewährt. Wir möchten Ihnen dieses Feature von Xray anhand eines Beispielprojektes demonstrieren.

In der folgenden Ansicht sehen Sie das sogenannte “Testing Board” von Xray, in dem eine Auflistung der Testfälle zu sehen ist. In diesem Fall wurden Tests in Form eines Repositories organisiert. Sie sehen die drei Testfälle mit den Bezeichnungen “QTAF-1”, “QTAF-2” und “QTAF-3”. Bei diesen Testfällen handelt es sich um manuelle Testfälle, d.h. dass diese von einem Tester manuell auf einem Gerät gestartet werden müssen. Die Ergebnisse des Testens lassen sich jedoch automatisiert über die REST-API-Schnittstelle von Xray eintragen. Diese drei Testfälle werden in unserem Beispielprojekt die Startseite von Google aufrufen, einen Text in das Suchfeld eintragen und anschließend diese Suchanfrage abschicken.

Bild: Xray Test Repository in Jira. (Klicken zum Vergrößern) [Quelle: Jira] ×

In der nächsten Graphik sehen Sie die Detailansicht des Testfalls “QTAF-1”. Dieser Testfall wurde in zwei Testschritte unterteilt. Die Testschritte beinhalten jeweils eine Beschreibung des Testschritts (Aktion), die für den Testschritt verwendeten Daten sowie ein weiteres Attribut, mit dem das erwartete Ergebnis dieses Testschrittes beschrieben werden kann.

Bild: Xray Testfall in Jira. (Klicken zum Vergrößern) [Quelle: Jira] ×

Bei jeder Ausführung des Testfalls werden die Resultate des Testfalls an die Xray-API übermittelt. Xray sorgt nun dafür, dass Sie die Resultate der vergangenen Testdurchläufe in einer tabellarischen Ansicht ansehen können. Hier sehen Sie eine Auflistung vergangener Testdurchläufe und deren Status.

Bild: Xray Testausführungs Übersicht in Jira. (Klicken zum Vergrößern) [Quelle: Jira] ×

Wir sehen, dass einige Durchläufe ohne Abweichung von den erwarteten Ergebnissen durchliefen (passed), es jedoch auch bei einigen Durchläufen zu Abweichungen kam (failed). Möchten wir nun detailliertere Informationen zu einem fehlgeschlagenen Durchlauf erhalten können wir dies durch Klicken auf den jeweiligen Durchlauf (beispielsweise “QTAF-239”) erfahren.

Bild: Xray Gesamtausfuehrungs-Status in Jira. (Klicken zum Vergrößern) [Quelle: Jira] ×

Wir können nun sehen, dass die Testfälle “QTAF-1” und “QTAF-2” das erwartete Ergebnis lieferten. Der Testfall “QTAF-3” jedoch schlug fehl. Durch Klicken auf “QTAF-3” erhalten wir nähere Informationen zu diesem fehlgeschlagenen Testfall.

Bild: Ausführungsdetails der Testschritte in Xray. (Klicken zum Vergrößern) [Quelle: Jira] ×

Hier lässt sich erkennen, dass es im zweiten Schritt des Testfalls “QTAF-3” zu einem Fehler kam. Der erste Schritt wurde noch erfolgreich ausgeführt (grün), der dritte wurde erst gar nicht durchgeführt (grau). Durch Klicken auf den Button “Tatsächliches Ergebnis” können mehr Details über den fehlgeschlagenen Schritt eingeblendet werden.

Bild: Fehlerhafter Testschritt in Xray. (Klicken zum Vergrößern) [Quelle: Jira] ×

Sie sehen, dass es offenbar zu folgendem Fehler kam: Es sollte ein Wert in das Google-Suchfeld eingetragen werden, jedoch konnte dieses Feld nicht gefunden werden, wie es aus der Fehlerbeschreibung hervorgeht. Weiterhin wurde ein Screenshot (google_search.jpg) angehängt, anhand dessen wir nachvollziehen können, wie die zu testende Seite zum Zeitpunkt des Fehlers aussah. Klicken wir diesen Screenshot nun an, sehen wir folgendes Bild:

Bild: Google Suche. (Klicken zum Vergrößern) [Quelle: Google] ×

Wir können sehen, dass die Startseite von Google offensichtlich aufgerufen und korrekt dargestellt wurde. Jedoch konnte kein Wert in das Textfeld eingetragen werden, denn das Suchfeld ist leer.

Zusammenfassung

In diesem Abschnitt wurde Ihnen ein Beispiel für das Testmanagement mittels Xray vorgestellt. Es lassen sich Testfälle definieren und in Form von Test Sets / Repositories organisieren. Testfälle können weiterhin in einzelne Schritte untergliedert werden. Xray ermöglicht es, dass die Resultate vergangener Testdurchläufe bis auf Testschrittebene in Form von Texten und Bildern dokumentiert werden können.

Testautomatisierung mit Selenium und Integration/Verknüpfung mit Jira Xray

Testergebnisse können über eine Rest-API-Schnittstelle von einem Testtool an die Xray-API übermittelt werden. Für einige Testwerkzeuge wie etwa Selenium bietet Xray eine eigene Schnittstelle zum importieren der von den Testwerzeugen erstellen Reportings an. Somit müssen Testergebnisse nicht manuell übertragen werden, sondern können über den Import der Reportings automatisiert erfasst werden.

Für Cucumber existiert sogar die Möglichkeit, Testfälle direkt in Xray zu implementieren und ausführen zu lassen. Hierfür hinterlegt ein Tester den entsprechenden Gherkin-Code in Xray, woraus Xray entsprechende Feature-Files zusammenbauen wird. Dies ermöglicht es Testern ohne Zugang zum Git-Repository eines Testprojektes neue Testfälle anzulegen. Lediglich die Step-Definitionen müssen manuell erstellt werden.

Weitere Testmanagement Apps / Plugins für Jira
  • TestFLO
  • Zephryr für Jira
  • TestRail für Jira Testmanagement
  • qTest Scenario für Jira
  • SpiraTest
Fazit

Der Einsatz von Xray in einem Testprojekt sorgt für eine erhebliche Zeitersparnis und eine Steigerung der Effizienz des Testprojektes durch eine strukturierte Verwaltung der Erstellung, Ausführung, Dokumentation und des Reportings der Testfälle.

02. Februar 202102. Februar 2021Finden Sie weitere interessante Artikel zum Thema:  Artikel weiterempfehlen: