Wie viele Stunden verbringen Sie mit der Wartung Ihrer Tosca-Commander-Testfälle? Wahrscheinlich mehr als Ihnen lieb ist, oder?
Tosca Commander ist eines der besten Testautomatisierungswerkzeuge auf dem Markt. Aber Sie müssen die von Ihnen erstellten Testfälle trotzdem pflegen.
Dieser Blog enthält einen kleinen Auszug von Erfahrungen, Tipps und Tricks, die unsere Automation Genius im Laufe der Jahre gesammelt und verfeinert haben. Diese können Ihnen in Zukunft viele Stunden an Kopfschmerzen und Wartungsaufwand ersparen.
Der Testfall ist erstellt und er läuft perfekt. Aber sobald Sie das System Under Test (SUT) neu starten, funktioniert nichts mehr! Was ist passiert?
Um ein Element in einem SUT zu steuern, benötigt Tosca Commader technische IDs, um dieses zu identifizieren. In einigen Fällen haben die technischen IDs jedoch ein dynamisches Element integriert, z.B. eine Nummer. Dieses Element kann sich von Zeit zu Zeit oder nach einem Neustart des SUT oder einem erneuten Deployment ändern.
Dies erschwert die Identifizierung des Elementes und Sie benötigen eine Möglichkeit, dies zu kompensieren. Eine sehr einfache Möglichkeit hierfür ist die Integration von Platzhaltern oder Regular Expressions (RegEx) in die technische ID.
Der folgende Screenshot zeigt ein RegEx-Beispiel, bei dem die Caption, also der Titel des Fensters, als technische ID benutzt wird. Die RegEx erlaubt die Identifikation des Fensters in zwei Sprachen.
Es ist nach 17 Uhr und plötzlich schlagen Ihre Tosca-Testfälle fehl! Vermutlich verhält sich Ihr SUT zu bestimmten Tageszeiten anders. Das kann bspw. daran liegen, dass das SUT nach dem Ende des Arbeitstages eine Verarbeitungsänderung erfährt.
In einem solchen Fall kann es Sinn machen, zwei Testfälle zu erstellen: einen für vor 17 Uhr und einen für nach 17 Uhr.
Allerdings erfordert dies eine detaillierte Kenntnis des SUT, eine genaue Dokumentation, eine gute Planung und einen funktionierenden Scheduler. Nach dem Pareto-Prinzip kommen Sie vielleicht zu dem Schluss, dass der Aufwand für diese 2 Testfälle Ihr ohnehin schon knappes Budget übersteigt.
Wenn Ihre Tester erfahren genug sind, werden sie diese Grenzen kennen. In diesem Fall wäre kann es sinnvoll sein, zwei verschiedene Ergebnisse in einem Testfall als korrekt zuzulassen und die zusätzliche Planung, die Einrichtung eines Schedulers, die erweiterte Dokumentation und sogar die Erstellung eines zweiten Testfalls vollständig zu vermeiden.
Hierfür können Sie wiederum RegEx verwenden, hier ein Beispiel:
{REGEX["Platziert|Erledigt"]}
Gültige Werte für den Status sind nun «Platziert und «Erledigt».
Die Verifizierung ist der wichtigste Teil eines Testfalls. Dies geschieht oft durch die Verifizierung eines Wertes in einem Text der Applikation. In manchen Testszenarien müssen Werte in Buffern verifiziert werden, da es keine Kontrollelemente gibt, in denen dies direkt überprüft werden kann. Wie kann man nun Buffer verifizieren?
Es klingt ein wenig kontraintuitiv, aber hierbei verwendet man am einfachsten das Modul «TBox Set Buffer». Sie geben den Namen des Buffers an, den Sie überprüfen wollen, und «Value» enthält den Wert, dem er entsprechen soll. Sie verwenden jedoch den ActionMode «Verify» anstelle von «Input».
In folgendem Beispiel wird der Buffer «Status» auf den Wert «Zahlung erfolgreich» überprüft.
Nach dem vorherigen Tipp gehen wir mit diesem hier einen Schritt weiter. String-Operationen sind ein sehr wichtiger Teil, um Text im SUT zu verarbeiten. Um Ihre Strings von Ihrem SUT zu erhalten, müssen Sie diese buffern. Oft wird dabei mehr Text gebuffert als nötig. Beispielsweise braucht es aus dem Text «Summe: CHF 350.00» nur die «350.00».
Der einfachste Weg ist die Verwendung des dynamischen Ausdrucks {XB}. Mit diesem Ausdruck können Sie Teile eines festen Satzes zwischenspeichern und ihn gleichzeitig verifizieren. Hier wird obengenanntes Beispiel verifiziert und die Summe in den Buffer «Sum» extrahiert.
Die resultierenden Buffer haben folgende Werte erhalten:
Eine fortschrittlichere Methode, Teile einer Zeichenkette zu buffern, ist auch hier die Verwendung von Regular Expressions. RegEx sucht nach Mustern und nicht nach einem festen Text und ist daher flexibler.
Es lassen sich zudem «Capturing Groups» definieren. Diese wiederum hat Tosca so umgesetzt, dass die gefundenen «Capturing Groups»-Werte in Buffer übernommen werden.
Hier ist ein Beispiel für eine Regular Expression, die eine Adresse in seine Bestandteile buffert:
Und hier die resultierenden Buffer:
Bonus-Tipp: Infometis Youtube
Michael Weiglein liefert in seinem YouTube-Video ein grossartiges Beispiel mit detaillierter Erklärung: https://youtu.be/q9cQTuo_oD4.
Will man einen String auf eine optionale Länge kürzen, dann kann man dies sehr bequem mittels RegEx umsetzen. Optional, da vielleicht vorher nicht feststeht, ob die Ausgangslänge des Basisstrings kürzer oder länger als die des Zielstrings ist. Die Längenangabe {0,15} gibt dabei an, dass der Zielstring auf 15 Zeichen gekürzt wird, wenn der Basisstring länger als 15 Zeichen ist. Ist der Basisstring kürzer als 15 Zeichen, dann entspricht der Zielstring genau dem Basistring.
Resultierende Buffer:
Wenn Sie bisher v.a. mit der CALC-Funktion von Tosca Commander gearbeitet haben, bieten die neuen TBox-Funktionen in den meisten Fällen nun eine bessere Alternative dazu an. Die vorangegangenen Tipps sind gute Beispiele, wie dies ohne CALC funktioniert. Zum einen benötigen Sie kein vorinstalliertes Excel mehr und zum anderen wird die Ausführung mit TBox Dynamic Expressions um einiges performanter.
Seit Version 14.2 unterstützt Tosca Commaner nun «String Operations» mit Hilfe von Dynamic Expressions. Mit diesen kann auch ein Grossteil der CALC-Funktionalität abgelöst werden.
Hier ist nur eine kurze Übersicht der neu zur Verfügung stehenden Operationen:
{STRINGTOLOWER[InputText]}:
{STRINGTOUPPER[InputText]}:
{TRIM[InputText][Optionale Parameter]}:
{BASE64[InputText]}:
{STRINGREPLACE[InputText][Pattern][NewValue][Optionaler Parameter1, Optionaler Parameter2]}:
{NUMBEROFOCCURRENCES[InputText][Pattern][Optionaler Parameter]}:
{STRINGLENGTH[InputText]}:
Genaure Infos inkl. Beispiele finden sich unter folgender Tricentis Dokumentationsseite
In diesem Blog haben wir Ihnen 7 Tipps inkl. Bonustipp präsentiert, wie man elegant Probleme der Automatisierung mit Tosca lösen kann. Den Automation Genius haben diese Tipps bereits Stunden an Wartungsarbeit erspart und wir hoffen, dass dies bei Ihnen auch der Fall sein wird.
Falls Sie noch mehr Tipps zu Tosca möchten, könnte Sie auch folgender Artikel interessieren:
Top 5 mistakes Tosca beginners do and how to avoid them
Zudem bieten wir Tosca-Trainings mit Zertifizierung an, bei denen wir Ihnen unser Wissen und unsere Erfahrung gerne vertieft vermitteln.
Happy Automation!
Sie möchten unsere Expertise nutzen und technologische Innovationen umsetzen?
Haben Sie eine Frage oder suchen Sie weitere Informationen? Geben Sie Ihre Kontaktinformationen an und wir rufen Sie zurück.