7 Tosca Commander Tipps, die Ihnen Zeit und Geld einsparen

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.

Technical IDs können dynamisch sein

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.

Wenn das SUT plötzlich andere Resultate liefert

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».

Verifizierung von Bufferinhalten

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.

XB – oder wie man nur Teile eines Textes buffern kann

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:

RegEx kann auch buffern – und zwar mehrfach

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.

… oder Texte kürzen

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:

CALC geht in Rente

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]}:

  • Liefert den InputText als klein geschriebenen Text zurück

{STRINGTOUPPER[InputText]}:

  • Liefert den InputText als gross geschriebenen Text zurück

{TRIM[InputText][Optionale Parameter]}:

  • Entfernt Leerschläge am Anfang und am Ende des InputTexts

{BASE64[InputText]}:

  • Codiert InputText im Base64-Format

{STRINGREPLACE[InputText][Pattern][NewValue][Optionaler Parameter1, Optionaler Parameter2]}:

  • Ersetzt Werte innerhalb des InputText mit NewValue

{NUMBEROFOCCURRENCES[InputText][Pattern][Optionaler Parameter]}:

  • Liefert die Anzahl von Vorkommnissen des Pattern innerhalb von InputText

{STRINGLENGTH[InputText]}:

  • Liefert die Anzahl Zeichen des InputTexts zurück

Genaure Infos inkl. Beispiele finden sich unter folgender Tricentis Dokumentationsseite

Fazit

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!

Trainings zu diesem Thema

Alle anzeigen
No items found.

Wir sind bereit für Ihren nächsten Schritt!

Sie möchten unsere Expertise nutzen und technologische Innovationen umsetzen?

Diese Webseite
verwendet Cookies

Cookies werden zur Benutzerführung und Webanalyse verwendet und helfen dabei, diese Webseite zu verbessern. Sie können hier unsere Cookie-Erklärung anzeigen oder hier Ihre Cookie-Einstellungen anpassen. Durch die weitere Nutzung dieser Webseite erklären Sie sich mit unserer Cookie-Richtlinie einverstanden.

Alle akzeptieren
Auswahl akzeptieren
Optimal. Funktionale Cookies zur Optimierung der Webseite, Social-Media-Cookies, Cookies für Werbezwecke und die Bereitstellung relevanter Angebote auf dieser Website und Websites Dritter sowie analytische Cookies zur Verfolgung von Website-Zugriffen.
Eingeschränkt. Mehrere funktionale Cookies für die ordnungsgemässe Anzeige der Website, z. B. um Ihre persönlichen Einstellungen zu speichern. Es werden keine personenbezogenen Daten gespeichert.
Zurück zur Übersicht

Sprechen Sie mit einem Experten

Haben Sie eine Frage oder suchen Sie weitere Informationen? Geben Sie Ihre Kontaktinformationen an und wir rufen Sie zurück.

Vielen Dank. Wir haben Ihre Anfrage erhalten und werden uns im angegebenen Zeitraum bei Ihnen melden.
Oops! Something went wrong while submitting the form.