Skip to main content
Skip table of contents

Verwendung von Variablen in Testfällen

Motivation

Bei der Erstellung automatisierter Tests kann es notwendig werden, Werte für eingetragene Daten aus Variablen zu beziehen statt sie fest in den Test einzutragen. Außerdem kann es die Lesbarkeit erhöhen, wenn beim Umgang mit mehreren verknüpften Datensätzen etwa deren Kurzname über eine Variable referenziert statt überall dupliziert wird.

Definition einer Variable

Variablen müssen vor ihrer Verwendung im Test deklariert und definiert werden. Dies ist auf Ebene des Testfalls möglich. Die Syntax dazu lässt sich am einfachsten mit folgendem Beispiel erklären:

CODE
class MyTestWithVariables extends BaseWebClientSpec {

	@Shared
	def myCustomerName = "Testkunde für meine Tests"

	@Shared def myActivityName = "Name meiner Testaktivität"
	// Hier folgen die Testschritte
}

Dabei ist die Angabe von @Shared erforderlich, damit der Wert der Variable in allen Testschritten ordnungsgemäß verfügbar ist. Die Angabe von @Shared kann wie im Beispiel gezeigt eine Zeile über der Variablendeklaration oder in der gleichen Zeile erfolgen. In diesem Beispiel sind in der Testklasse dadurch die Variablen myCustomerName mit dem Wert "Testkunde für meine Tests" und myActivityName mit dem Wert "Name meiner Testaktivität" verfügbar.

Nutzung einer Variable

Variablen können an allen Stellen im Test genutzt werden, wo normalerweise feste Zeichenketten erwartet werden. Beispiele dafür sind etwa erwartete Werte für Feldwertprüfungen oder Werte, die in Felder eingetragen werden sollen.

Die Verwendung erfolgt dabei durch die Eingabe von ${variablenName}-Platzhaltern innerhalb der Anführungszeichen der Zeichenkette. Dabei wird dann der Platzhalter durch den Wert der angegebenen Variable ersetzt. Auch eine Kombination aus festen Werten und Variablenplatzhaltern ist möglich, wie das nächste Beispiel zeigt.

CODE
class MyTestWithVariables extends BaseWebClientSpec {

	@Shared def activityName = "Testaktivität"

	def "Demonstrate variable usage on Activity mask"() {
		given:

		open entity "Activity"
		create dataset

		set field "Subject.Activity" to "${activityName}"
		field "Subject.Activity" should be "Testaktivität"

		set field "Subject.Activity" to "Meine ${activityName}"
		field "Subject.Activity" should be "Meine Testaktivität"

		close level
		pick dialog option NO
	}
}

Bei der Verwendung von Variablen muss darauf geachtet werden, dass sie stets mit einem Kleinbuchstaben beginnen, wie in dem vorherigen Beispiel "activityName".

Anwender mit Scripting-Erfahrung, etwa durch die Arbeit mit BPM-Scripting oder Maskenscripting fragen sich möglicherweise, ob die Variablen auch "direkt" im Test-Script verwendet werden können, statt immer über die String-Ersetzung verwendet werden zu müssen.

Leider ist dies aufgrund der technischen Basis der Test-Studio "Programmiersprache" beziehungsweise Domain Specific Language (DSL) nicht zuverlässig möglich. In den meisten Fällen wird die Verwendung von Variablen außerhalb von Strings in Verbindung mit Test-Studio Keywords zu Fehlern beziehungsweise unerwartetem Verhalten führen und wird daher nicht unterstützt.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.