Keywords
Allgemein
create dataset
Parameter
Keine
Aktion
Startet die Neuanlage eines Datensatzes der geöffneten Entität
Beispiel
create dataset
create dependent dataset
Parameter
Keine
Aktion
Startet die Neuanlage eines abhängigen Datensatzes (d.h. über den Unterbereich) auf der aktuell geöffneten Relation (der aktive Tab im Unterbereich).
Beispiel
create dependent dataset
open parameter dataset
Parameter
1st|2nd|3rd|10th
Aktion
Öffnet den i-ten Datensatz oder den ersten, der alle angegebenen Suchkriterien erfüllt, aus der gerade sichtbaren Tabelle (Suchergebnis- oder Unterbereichstabelle).
Beispiel
open 1st dataset
open 2nd dataset
open 3rd dataset
open 10th dataset from subdata
open dataset from subdata matching {
field "ActTypeKey.Activity" matches ~/.*/ // regex pattern
field "Subject.Activity" equals "Mein Betreff"
}
open dataset matching { ... }
open entity "entityName"
Parameter
entityName technischer Name der Entität
Aktion
Öffnet über das Bereich-/Dateimenü eine leere Maske der übergebenen Entität. Je nach Konfiguration des Systems wird die Einfeldsuche oder die Suchmaske geöffnet. Kann die Entität über das Bereich-/Dateimenü nicht geöffnet werden, wird sie über die COMMAND-Suche geöffnet. Voraussetzung dafür ist, dass die Entität auch für die COMMAND-Suche freigegeben ist.
Die "Bereiche" in der Seitenleiste müssen für dieses Keyword geöffnet sein. Sollten sie zusammengeklappt sein, schlägt das Keyword fehl.
Um die "Bereiche" dauerhaft aus zuklappen, muss sich mit dem Test-Benutzer am CRM angemeldet werden und das Ausklappen einmal händisch durchgeführt werden. Beim Abmelden wird die Änderung gespeichert.
Beispiel
open entity "Customer"
open searchmask
Parameter
Keine
Aktion
Öffnet die Suchmaske ("Erweiterte Suche") einer Entität. Dies funktioniert nicht aus der Detailmaske heraus.
Beispiel
open searchmask
open listview
Parameter
Keine
Aktion
Öffnet die Listenansicht einer Entität. Dies funktioniert nur aus einer Detailmaske heraus.
Beispiel
open listview
open subdata listview
Parameter
Keine
Aktion
Öffnet die Listenansicht der im Unterbereich zugeordneten Entitäten. Dies funktioniert nur aus einer Detailmaske heraus.
Beispiel
open subdata listview
open tasklist
Parameter
Keine
Aktion
Öffnet die Liste der offenen Tasks für den aktuellen Benutzer. Ist die Taskliste bereits geöffnet, wird sie geschlossen und erneut geöffnet.
Beispiel
open tasklist
prompt tester interaction steps
Parameter
steps Liste von Strings, die beschreiben, welche Schritte der Anwender vornehmen muss, um den Testlauf fortzusetzen.
Aktion
Pausiert den Testlauf für manuelle Eingaben des Anwenders, falls die zu testenden Funktionen noch nicht über das Test Studio abgedeckt werden. Es wird eine Meldung angezeigt, die dem Anwender die notwendigen Schritte erläutert. Bestätigt der Anwender die Meldung, wird der Testlauf fortgesetzt.
Steht nicht in der automatischen Ausführung (Headless-mode) zur Verfügung. Falls es dennoch genutzt wird, bricht der Test an dieser Stelle ab.
Beispiel
prompt tester interaction "Wählen Sie den ersten Datensatz im Unterbereich aus", "Entfernen Sie ihn aus dem Unterbereich", "Setzen Sie den Testlauf fort"
reload dataset
Parameter
Keine
Aktion
Lädt den aktuellen Datensatz erneut.
Beispiel
reload dataset
save dataset
Parameter
Keine
Aktion
Speichert den geöffneten Datensatz.
Beispiel
save dataset
delete dataset
Parameter
Keine
Aktion
Löscht den geöffneten Datensatz.
Beispiel
delete dataset
deselect all rows
Parameter
Keine
Aktion
Deselektiert alle Zeilen einer Tabelle.
Beispiel
deselect all rows
select parameter
Parameter
1st row | rows matching {...} | all rows
Aktion
Markiert additiv einen (mehrere) Datensatz (Datensätze) in einer Tabelle. Die ausgewählten Enträge werden also zu den bereits selektierten Datensätzen hinzugefügt.
Erfolgt entweder auf Index-Basis oder nach Suchkriterien. Es werden alle Zeilen markiert, die die Bedingungen erfüllen. Für die Auswahl eines Datensatzes.
Tipp
Falls sichergestellt sein soll, dass nur die ausgewählten Zeilen selektiert sind, sollte vorher die Aktion 'deselect all rows' genutzt werden.
Zum Markieren aller Meiers und Mustermanns wird das Keyword zweimal aufgerufen.
deselect all rows
select rows matching {
field "Name1.Customer" equals "Meier"
}
select rows matching {
field "Name1.Customer" equals "Mustermann"
}
Beispiel
select 1st row
select 2nd row
select 3rd row
select 4th row
select rows matching {
field "Name.Entity" equals "someString"
field "Name.Entity" == "someString" // Alternative zur vorigen Zeile.
field "Name.Entity" matches ~/.*AB/ // java.util.regex.Pattern
}
select all rows // alle Zeilen, Paginator-übergreifend
select tab "tabName"
Parameter
tabName Dargestellter Name des gewünschten Tabs auf der Maske. Ab einer CRM-Version von 23.2 kann zusätzlich der technische Name verwendet werden.
Aktion
Wechselt zum Tab auf der Maske mit dem übergebenen Namen bzw. Beschriftung. Falls der Name nicht eindeutig ist, wird der zuerst gefundene Tab verwendet. Das Auswählen findet im Falle einer übergebenen Beschriftung ohne Beachtung der Groß- und Kleinschreibung statt.
Bei Verwendung des technischen Namens, muss dieser jedoch genau übereinstimmen.
Beispiel
select tab "DETAILS"
select tab "CampaignTab"
toggle collapsible "collapsibleName"
Parameter
collapsibleName Interner Name des gewünschten Collapsibles auf der Maske
Aktion
Wechselt den Status des über den übergebenen internen (technischen) Namen identifizierten Collapsibles. Ein ausgeklapptest Collapsible wird hiermit eingeklappt, ein eingeklapptes Collapsible ausgeklappt.
Das Keyword ist insbesondere dann notwendig, wenn Collapsible-Elemente standardmäßig eingeklappt sind, da das Test-Studio genau wie ein menschlicher Benutzer nicht auf "weggeklappte" Elemente zugreifen kann.
Beispiel
toggle collapsible "C0InvolvedPersonsCollapsible"
Abbildung
enter edit mode
Parameter
Keine
Aktion
Wechselt den aktuellen Datensatz in den Bearbeitungsmodus.
Beispiel
enter edit mode
enter read mode
Parameter
Keine
Aktion
Wechselt den aktuellen Datensatz in den Lesemodus.
Beispiel
enter read mode
execute "libraryMethodName"
Parameter
libraryMethodName Name der auszuführenden Bibliotheksmethode. Dieser setzt sich zusammen aus dem Namen der Bibliothek und der gewünschten Bibliotheksmethode.
Aktion
Führt eine Bibliotheksmethode, welche keine weiteren Parameter benötigt, aus.
Beispiel
execute "AssignmentLib.removeAllDatasets"
execute "libraryMethodName" using { parameter }
Parameter
libraryMethodName Name der auszuführenden Bibliotheksmethode. Dieser setzt sich zusammen aus dem Namen der Bibliothek und der gewünschten Bibliotheksmethode.
parameter Parameter, die in der ausgewählten Methode definiert sind.
Aktion
Führt eine Bibliotheksmethode unter Verwendung der dazugehörigen Parametern aus.
Beispiel
execute "BPMUtils.startProcess" using {
parameter processName : "Mein Prozess"
parameter occasion: "Mein Anlass"
// ggf. weitere Parameter
}
Befüllen
fill mask using values
Parameter
values Liste von Feldwerte, die gesetzt werden sollen
Aktion
Füllt die aktuelle Maske mit den übergebenen Feldwerten.
Beispiel
fill mask using {
lookup "PersontypeKey.Customer": "H"
textfield "Name1.Customer": "Mustermann"
datefield "DateOfOrigin.Customer": "01.01.1970"
}
set lookupfield "fieldname" through searching using searchParameter
Parameter
fieldname Name des zu füllenden Nachschlagefeldes
searchParameter Felder auf der Suchmaske, die gefüllt werden sollen
Aktion
Das angegebene Nachschlagefeld wird durch die dahinter liegende Nachschlagesuche gefüllt. Dabei wird immer der erste ermittelte Datensatz in das Feld eingetragen. Innerhalb von searchParameter können mehrere Felder gefüllt werden.
Beispiel
set lookupfield "DefaultContactPerson.Activity" through searching using {
field "LastName.ContactPerson": "Mustermann"
field "FirstName.ContactPerson": "Max"
}
set field "fieldName" to "value"
Parameter
fieldname Name des zu setzenden Textfeldes
value gewünschter Wert
Aktion
Setzt das angegebene Feld (Text, Zahl) auf einen gewünschten Wert.
Die Maske sollte sich dafür bereits im Bearbeitungsmodus befinden.
Beispiel
set field "Subject.Activity" to "Mein Betreff"
set field "Subject.Activity" to "12345"
Tipp
Auch Nachschlagefelder können mit diesem Keyword gefüllt werden. Der notwendige Lucene-Index könnte allerdings nicht so schnell gesetzt worden sein. Um spätere Fehlermeldung zu vermeiden, empfiehlt sich, direkt nach der Eingabe des Feld eine Feldprüfung vorzunehmen.
Weitere Informationen siehe Bekannte Einschränkungen
set field "Subject.Activity" to "Mein Betreff"
field "Subject.Activity" should be "Mein Betreff"
set field "Subject.Activity" to "12345"
field "Subject.Activity" should be "12345"
clear fieldType "fieldName"
Parameter
fieldname Name des zu setzenden Textfeldes
fieldType datefield|textfield|lookup|textarea|htmlarea|booleanfield oder field
Aktion
Leert bzw. deselektiert das angegebene Feld.
Beispiel
clear field "EndDate.Activity" // das Test-Studio ermittelt selbst, um was für einen Feldtyp es sich handelt
clear datefield "EndDate.Activity"
clear textfield "Subject.Activity"
clear lookupfield "PersontypeKey.Customer"
BPM
assign process to me
Parameter
Keine
Aktion
Weist den geöffneten Prozesstask dem aktuellen Benutzer über den "Mir zuweisen"-Button zu.
Beispiel
assign process to me
cancel process
Parameter
Keine
Aktion
Bricht den aktuellen Prozess ab, indem auf den Abbrechen-Button geklickt und die darauf folgende Meldung bestätigt wird.
Beispiel
cancel process
fill bpm selection mask using searchParameter
Parameter
searchParameter Feldwerte für die Suchmaske
Aktion
Füllt die Eingabefelder einer Suchmaske mit den übergebenen Werten. Die Suche muss mit dem Keyword execute-search ausgeführt werden.
Beispiel
fill bpm selection mask using {
lookup "PersontypeKey.Customer": "H"
textfield "Name1.Customer": "Mustermann"
}
Fortsetzen eines gestarteten BPM-Prozesses
Eine BPM-Prozessaktion kann in der Taskliste auf zwei Arten gefunden werden:
Über den Namen des Tasks (im Screenshot rot markiert)
Über die Beschreibung ("Instanzinfo") der Prozessaktion (im Screenshot blau markiert)
Die entsprechenden Keywords sind nachfolgend ausgeführt.
open bpm task "taskname"
Parameter
taskname Name des zu öffnenden Tasks
Aktion
Öffnet einen Prozess aus der Taskliste, wenn diese bereits geöffnet ist.
Beispiel
open bpm task "Kampagnenphase und Outbound hinzufügen"
open bpm task "Kampagne anlegen"
open bpm instance "instanceDescription"
Parameter
instanceDescription Beschreibung des zu öffnenden Tasks
Aktion
Öffnet einen Task aus der Taskliste, wenn diese bereits geöffnet ist.
Beispiel
open bpm instance "Anlage der Kampagne [Das CURSOR-Test-Studio]"
open bpm instance "Kampagnendaten pflegen"
start internationalized process "processName"
Parameter
Keine
processName internationalisierter Name des zu startenden Prozesses
Aktion
Startet einen Prozess aus dem Prozessmenü anhand des sichtbaren internationalisierten Prozessnamens.
Das Menü "Prozesse" in der Seitenleiste müssen für dieses Keyword sichtbar und geöffnet sein. Sollte es nicht sichtbar oder zusammengeklappt sein, schlägt das Keyword fehl. Um das Menü "Prozesse" dauerhaft auszuklappen, muss sich mit dem Test-Benutzer am CRM angemeldet werden, das Menu eingeblendet werden und das Ausklappen einmal händisch durchgeführt werden. Beim Abmelden wird die Änderung gespeichert.
Beispiel
start internationalized process "Kampagne anlegen"
current bpm phase should be <path>
Die Phasen werden teils abgeschnitten und wie hier mit "..." dargestellt dargestellt. In Diesem Fall ist statt des Originalnamens der Phase "..." zu verwenden, also:
current bpm phase should be "..." >> "Phase3" >> "Phase4" >> "..." >> "Teilphase4" >> "Teilphase5"
Parameter
<path> dargestellter Name der Phasen bis zu der zu prüfenden Phase.
Aktion
Überprüft ob der angegeben Pfad übereinstimmt und ob die zuletzt angegebene Phase aktiv ist.
Beispiel
current bpm phase should be "Phase1" >> "Phase2" >> "Phase3"
borrow document and restore
>=24.3
Parameter
Keine
Aktion
Überspringt das Herunterladen und Speichern eines Dokuments in einem BPM-Usertask
Beispiel
1 borrow document and restore
Damit das Keyword korrekt funktioniert, muss die erweiterte Dateibehandlung für den ausführenden User deaktiviert sein.
Interaktion
click button "buttonID"
Parameter
buttonID internen Name des Buttons
Aktion
Klickt auf den Button mit dem übergebenen technischen Namen.
Die gewünschten Buttons müssen sich auf der Maske befinden.
Toolbar-Buttons können mit dieser Variante nicht betätigt werden
Beispiel
click button "btn_medium_strom"
click action "actionID"
>=24.4
Parameter
actionID interner Name des Aktionsboxschalters
Aktion
Klickt auf den Aktionsboxschalter mit dem übergebenen internen Namen. Die Aktionsbox muss dafür bereits aufgeklappt sein.
Beispiel
click action "C0createCommon"
click myCrm path
Parameter
path Pfad zum gewünschten Element
Aktion
Klickt das Element im gewünschten Pfad.
Beispiel
click myCrm >> "Mein Ordner" >> "Noch ein Ordner" >> "Mein Prozess"
click myEvi >> "Mein Ordner" >> "Noch ein Ordner" >> "Mein Prozess"
click myTina >> "Mein Ordner" >> "Noch ein Ordner" >> "Mein Prozess"
confirm task
Parameter
Keine
Aktion
Setzt den aktuellen Prozess fort, indem auf den Fortsetzen-Button geklickt wird.
Beispiel
confirm task
execute search
Parameter
Keine
Aktion
Führt die Suche der aktuellen Suchmaske aus.
Beispiel
execute search
pick internationalized task option "buttonCaption"
Parameter
buttonCaption Inhalt eines Buttons als String
Aktion
Drückt einen Button einer Meldung
Bei User-Task vom Typ "Dialog" : pick dialog option "ButtonCaption"
Beispiel
pick internationalized task option "zweiter Schalter"
pick task option option
Parameter
option Button-Option: OK, YES, NO oder Integer: 0,1,2,... oder String: "firstButton", "secondButton",...
Aktion
Drückt einen Button einer Meldung eines BPM-Prozesses
Beispiel
pick task option OK
pick task option 0 // der erste Button ist der 0te
pick task option 1
pick task option YES
pick task option "firstButton"
pick dialog option option
Parameter
option Button-Option: OK, YES, NO oder Integer: 0,1,2,... oder String: "firstButton", "secondButton",...
Aktion
Drückt einen Button einer Meldung eines BPM-Prozesses
Beispiel
pick dialog option YES
pick dialog option NO
pick dialog option OK
pick dialog option CANCEL
pick internationalized dialog option "firstButton"
suspend task (and save|discard)
Parameter
Keine
Aktion
Pausiert den aktuellen Prozess, indem auf den Pausieren-Button geklickt wird.
Beispiel
suspend task
suspend task and save
suspend task and discard
Tipp
War der aktuelle Prozess-Schritt eine Maske, auf der Feldwerte geändert wurden, so erscheint ein Dialog, ob diese Werte zwischengespeichert werden sollen.
Dieser muss durch den Zusatz and save
respektive and discard
behandelt werden. Wurden keine Werte geändert, erscheint der Dialog nicht.
start internationalized action "actionName"
Parameter
actionName Beschriftung des Buttons in der Aktionsbox
Aktion
Startet eine Aktion mit dem übergebenen Namen aus der Aktionsbox.
Beispiel
start internationalized action "Kampagne anlegen"
copy dataset
Kopiert den Datensatz ohne Dokumentenzuordnung und verknüpft diesen mit dem Original.
copy activities with copies
Kopiert sowohl die Aktivität als auch zugeordnete Dokumente. Verknüpft anschließend die Kopien der Dokumente und die ursprüngliche Aktivität mit dem neuen Datensatz.
copy activity with documents
Kopiert die Aktivität mit den bestehenden Dokumentenzuordnungen und verknüpft die Kopie mit dem Original.
copy activity without documents
Kopiert die Aktivität ohne Dokumentenzuordnung und verknüpft die Kopie mit dem Original.
Überprüfen
current view should be parameter
Parameter
parameter listview | detailmask | bpm user task | searchmask | mail | desktop
Aktion
Prüft, ob die aktuelle Ebene ein(e) Listenansicht|Detailmaske|BPM-Usermaske|Suchmaske|E-Mail|der CRM-Desktop ist. Über die zweite Variante "belong to" ist es möglich, zu prüfen, ob die Ebene zur gewünschten Entität gehört.
Beispiel
open entity "Activity"
current view should be detailmask|searchmask|bpm user task|listview|desktop
current view should belong to "Activity" // aktuelle Ebene gehört zu Entität "Activity"
current view should belong to EntityName
Parameter
EntityName technischer Name der zu prüfenden Entität
Aktion
Prüft, ob die aktuell geöffnete Maske zu einer definierten Entität gehört.
Beispiel
open entity "Activity"
current view should belong to "Activity" // aktuelle Ebene gehört zu Entität "Activity"
Die zugehörige Entität von Suchmaske/Listenansicht kann mit dem Keyword "current view belongs to EntityName" nicht überprüft werden.
field "fieldName" should be value
Dies ist die allgemeine Variante des Keywords, da der genaue Feldtyp nicht angegeben werden muss, sondern von Test-Studio selbstständig ermittelt wird.
Parameter
fieldName Name des zu prüfenden Datumsfeldes
value gewünschter Wert
Aktion
Prüft das angegebene Datumsfeld auf einen gewünschten Wert. Folgende Werte können verwendet werden:
"Wert": Tatsächlicher Wert des Feldes
enabled / disabled
: Schreibbar / gesperrtvisible / invisible
: Sichtbar / ausgeblendet auf der Maskemandatory / nonmandatory
: Pflichtfeld / kein Pflichtfeldblank / filled
: Feld vollständig geleert (bei Nachschlagefeldern bedeutet dies, dass nicht einmal der Leerschlüssel eIngetragen ist) / irgendein Wert steht drin (das schließt den Leerschlüssel mit ein)emptykey / anything
: Der Leerschlüssel ist eingetragen / irgendein Wert, der nicht der Leerstring oder der Leerschlüssel ist, steht in dem Feld .
Steht nur bei Nachschlagefeldern zur Verfügung. Erzeugt auf anderen Feldern eine Fehlermeldung.
datefield "fieldName" should be value
Parameter
fieldName Name des zu prüfenden Datumsfeldes
value gewünschter Wert
Aktion
Prüft das angegebene Datumsfeld auf einen gewünschten Wert. Folgende Werte können verwendet werden:
"Wert": Tatsächlicher Wert des Datumsfeldes
enabled / disabled
: Schreibbar / gesperrtvisible / invisible
: Sichtbar / ausgeblendet auf der Maskemandatory / nonmandatory
: Pflichtfeld / kein Pflichtfeldblank / filled
: Feld vollständig geleert (bei Nachschlagefeldern bedeutet dies, dass nicht einmal der Leerschlüssel eIngetragen ist) / irgendein Wert steht drin (das schließt den Leerschlüssel mit ein)
Ist nicht der gewünschte Wert eingetragen bzw. das Feld im gewünschten Status, wird dies als Fehler gewertet.
Beispiel
datefield "BeginDate.Activity" should be enabled // schreibbar
datefield "EndDate.Activity" should be "24.12.2018" // 24.12.2018 als Datum im Feld eingetragen
datefield "EndDate.Activity" should be "24.12.2018 12:00" // 24.12.2018 12:00 als Datum mit Uhrzeit im Feld eingetragen
datefield "Begin.Activity" should be mandatory // Pflichtfeld
lookupfield "fieldName" should be value
Parameter
fieldName Name des zu prüfenden Nachschlagefeldes
value gewünschter Wert/Eigenschaft
Aktion
Prüft das angegebene Nachschlagefeld auf einen gewünschten Wert. Folgende Werte können verwendet werden:
"Wert": Tatsächlicher Wert des Feldes
enabled / disabled
: Schreibbar / gesperrtvisible / invisible
: Sichtbar / ausgeblendet auf der Maskemandatory / nonmandatory
: Pflichtfeld / kein Pflichtfeldblank / filled
: Feld vollständig geleert (bei Nachschlagefeldern bedeutet dies, dass nicht einmal der Leerschlüssel eIngetragen ist) / irgendein Wert steht drin (das schließt den Leerschlüssel mit ein)emptykey / anything
: Der Leerschlüssel ist eingetragen / irgendein Wert, der nicht der Leerstring oder der Leerschlüssel ist, steht in dem Feld .
Ist nicht der gewünschte Wert eingetragen bzw. das Feld im gewünschten Status, wird dies als Fehler gewertet.
Beispiel
lookupfield "DefaultContactPerson.Activity" should be enabled // schreibbar
lookupfield "DefaultContactPerson.Activity" should be "MUSTERMANN" // MUSTERMANN als Schlüssel im Feld eingetragen
lookupfield "DefaultContactPerson.Activity" should be mandatory // Pflichtfeld
textfield "fieldName" should be value
Parameter
fieldName Name des zu prüfenden Feldes
value gewünschter Wert
Aktion
Prüft das angegebene Feld (Text, Zahl, Boolean) auf einen gewünschten Wert. Folgende Werte können verwendet werden:
"Wert": Tatsächlicher Wert des Feldes
enabled / disabled
: Schreibbar / gesperrtvisible / invisible
: Sichtbar / ausgeblendet auf der Maskemandatory / nonmandatory
: Pflichtfeld / kein Pflichtfeldblank / filled
: Feld vollständig geleert (bei Nachschlagefeldern bedeutet dies, dass nicht einmal der Leerschlüssel eIngetragen ist) / irgendein Wert steht drin (das schließt den Leerschlüssel mit ein)
Ist nicht der gewünschte Wert eingetragen bzw. das Feld im gewünschten Status, wird dies als Fehler gewertet.
Beispiel
textfield "Subject.Activity" should be enabled // schreibbar
textfield "Subject.Activity" should be "Betreffzeile" // Betreffzeile als Text im Feld eingetragen
textfield "Subject.Activity" should be mandatory // Pflichtfeld
label "theLabel" should be value
Parameter
theLabel interner Name des Labels (Eigenschaft Name im GUI Builder)
value gewünschter Wert
Aktion
Prüft das angebene Label auf einen gewünschten Wert. Folgende Werte können verwendet werden:
"someValue": Angezeigter Text
visible / invisible
: Sichtbar / ausgeblendet auf der Maske
Beispiel
label "customerSatisfaction" should be "Happy"
label "customerSatisfaction" should be visible
label "customerSatisfaction" should be invisible
button "buttonID" should be value
>=24.4
Parameter
buttonID interner Name des zu prüfenden Buttons
value gewünschter Wert
Aktion
Prüft das angebene Button auf einen gewünschten Wert. Folgende Werte können verwendet werden:
"Wert": Tatsächlicher Wert des Feldes
enabled / disabled
: Aktiviert (Kann ich den Button anklicken?) / deaktiviertvisible / invisible
: Sichtbar / ausgeblendet auf der Maske
Beispiel
button "buttonID" should be enabled
button "buttonID" should be disabled
button "buttonID" should be visible
button "buttonID" should be invisible
button "buttonID" should be "Click me!"
action "actionID" should be value
>=24.4
Parameter
actionID interner Name des zu prüfenden Aktionsboxschalters
value gewünschter Wert
Aktion
Prüft den angebenen Aktionsboxschalter auf einen gewünschten Wert. Folgende Werte können verwendet werden:
"Wert": Tatsächlicher Wert des Feldes
enabled / disabled
: Aktiviert (Kann ich den Button anklicken?) / deaktiviertvisible / invisible
: In der Aktionsbox sichtbar / nicht sichtbar
Beispiel
action "actionID" should be enabled
action "actionID" should be disabled
action "actionID" should be visible
action "actionID" should be invisible
action "actionID" should be "Click me!"
advanced right template should contain { group "groupName" permitted values }
Parameter
groupName der zu prüfenden Gruppe
values read, write, confidential, edit
Aktion
Prüft für jede angegebene Gruppe die Rechte auf dem derzeitigen Datensatz:
"Werte": Liste aller Rechte welche die jeweilige Gruppe besitzt. Alle nicht angegebenen Rechte werden auf fehlendes Recht geprüft.
read
: Die Gruppe besitzt Leserechtwrite
: Die Gruppe besitzt Schreibrechtconfidential: Die Gruppe besitzt das Recht für vertrauliche Felder
edit: Die Gruppe darf Rechte auf dem Datensatz ändern
Beispiel
advanced right template should contain {
group "ADMINISTRATION" permitted read, write, confidential, edit
group "default" permitted read, write, edit
group "GUEST" permitted read, write
group "USERS" permitted read, write
}
advanced right template should not contain groups values
Parameter
values Name aller Gruppen, welche der Datensatz nicht enthalten soll.
Aktion
Prüft für jede angegebene Gruppe ob diese im Rechtedialog eines Datensatzes unter den Tab 'Erweitert' gefunden werden kann.
Beispiel
advanced right template should not contain groups "DOESNOTEXIST", DOESNOTEXISTASWELL"
current view should be mail
>=24.3
Beispiel
current view should be mail
Navigation
go back
Parameter
Keine
Aktion
Geht in der CRM-History einen Eintrag zurück. Mit dieser Aktion ist es zum Beispiel möglich aus einer im Unterbereich geöffneten Entität wieder zurück auf die ursprüngliche Entität zu springen.
Die Funktionalität entspricht der des rot markierten Buttons, siehe Screenshot.
Beispiel
go back
close level (and save|discard)
Parameter
Keine
Aktion
Schließt die aktuelle Ebene. Falls diese ein geänderter Datensatz ist, besteht die Möglichkeit die Änderungen mit save zu speichern oder mit discard zu verwerfen.
Beispiel
close level
close level and save
close level and discard
Der Zusatz “and save/discard” ist nicht zum Schließen von Maildialogen geeignet. Hierfür ist die Kombination close level + pick task option YES zu verwenden.
open subdata entity "entityName"
Parameter
entityName Name der Entität
Aktion
Öffnet eine Entität aus dem Unterbereich.
Beispiel
open subdata entity "Activity"
open subdata entity "Activity" using "rCoPeAc|interner Relationsname"
open subdata searchmask
Parameter
Keine
Aktion
Öffnet die Suche für die verknüpften Datensätze der im Unterbereich ausgewählten Entität.
Beispiel
open subdata searchmask
Abbildung
open linked dataset from "fieldName"
Parameter
fieldName interner Name des Nachschlagefeldes
Aktion
Öffnet einen verknüpften Datensatz basierend auf dem angegebenen Feldnamen. Dies funktioniert nur auf Nachschlagefeldern.
Beispiel
open linked dataset from "DefaultContactPerson.Activity"
Abbildung
Zuordnungsbrowser
assign (all|rows) datasets found using {searchCriteria}
Parameter
all|Zahl|Zahlenfolge Angabe, welche Zeilen zugeordnet werden sollen
all alle Datensätze, die gefunden werden
Zahl ein Index für die Zeile, deren Datensatz zugeordnet werden soll.
0 ist die erste ZeileBereich
Start..Ende
(z.B.1..4
) Alle indizes zwischen Start und Ende (einschließend)Zahl und Bereich Können kombiniert werden, z.B.
1, 4, 7 .. 13
searchCriteria Suchkriterien für die Suche
Aktion
Ordnet alle/einige Datensätze zu, die die Suchbedingungen erfüllen.
Beispiel
assign all datasets found using {
textfield "Subject.Activity": "*"
// other search criteria
}
// Nur bestimmte Zeilen
assign 1,4,7..13 datasets found using {
// Suchkriterien
}
assign (all|rows) datasets with attributes {attributes} found using {searchCriteria}
Parameter
Zusätzlich zu denen von assign (all|rows) datasets found using {searchCriteria
}:
attributes Werte für den Beziehungstyp
Aktion
Ordnet alle/einige Datensätze zu, die die Suchbedingungen erfüllen, und setzt den Beziehungstyp auf attributierten Relationen.
Beispiel
//Aktivitäten über den Unterbereich eines Mitarbeiters zuordnen:
assign all datasets with attributes {
booleanfield 'DelegatedToFlag.Activity': true
lookup "RelationTypeKeyEm.Activity": "BCC"
} found using {
textfield "Subject.Activity": "*"
// other search criteria
}
//Verknüpfen eines Geschäftspartners zu einem Projekt mit der Projektrolle Anlagenbetreiber:
assign all datasets with attributes {
lookup "ProjectRoleKey.Customer" : "ANLAGENBETREIBER"
} found using {
field "Name1.Customer" : "Meier"
}
Schlüssel
resolve key name of "somePrimaryKey"
Parameter
somePrimaryKey eindeutiger PK des Schlüssels
Aktion
Namen von Schlüsseln können dynamisch aus dem Testsystem ausgelesen werden und in Variablen gespeichert werden. Der jeweilige Schlüssel wird dabei über seinen Primärschlüssel identifiziert
Das Keyword steht ab Version 21.2.09 zur Verfügung. Um die Verständlichkeit der Tests nicht zu beeinträchtigen, empfehlen wir, das Keyword sparsam und primär beim Modulbau in C1 einzusetzen.
Übersteuerungen von C0-Schlüsseln über Anwendungsvariablen werden bei diesem Mechanismus ebenfalls berücksichtigt.
Beispiel
@Shared
def aktivitaetInArbeit = resolve key name of 'S_ACTSTATUS-A' //A
@Shared
def strom = resolve key name of 'c51v611baip25hgS_Keytab' //01 BITTE AENDERN
resolve key description of "somePrimaryKey"
Parameter
somePrimaryKey eindeutiger PK des Schlüssels
Aktion
Beschreibungen von Schlüsseln können dynamisch aus dem Testsystem ausgelesen werden und in Variablen gespeichert werden. Der jeweilige Schlüssel wird dabei über seinen Primärschlüssel identifiziert
Das Keyword steht ab Version 21.2.09 zur Verfügung. Um die Verständlichkeit der Tests nicht zu beeinträchtigen, empfehlen wir, das Keyword sparsam und primär beim Modulbau in C1 einzusetzen.
Übersteuerungen von C0-Schlüsseln über Anwendungsvariablen werden bei diesem Mechanismus ebenfalls berücksichtigt.
Beispiel
@Shared
def aktivitaetInArbeit = resolve key description of 'S_ACTSTATUS-A' //In Arbeit
@Shared
def strom = resolve key description of 'c51v611baip25hgS_Keytab' //Strom
Vorbereitung
Es gibt die Möglichkeit Variablen mit bestimmten dynamischen Werten zu füllen. Diese Variablen werden nach dem Testnamen und vor dem ersten Testschritt deklariert, um diese an späterer Stelle des Testfalls verwenden zu können.
generate unique identifier
>=24.3
Generiert einen eindeutigen Bezeichner, um diesen Variable anschließend in den Testschritten verwenden zu können.
Beispiel
@Shared
def myIdentifier = generate unique identifier
@Shared
def myName = "myName $myIdentifier"
generate unique IBAN
>=24.3
Generiert eine eindeutige IBAN.
Beispiel
@Shared
def myIban = generate unique IBAN
resolve current date
>=24.3
Ermittelt das aktuelle Datum des Systems.
Dies kann zu einem Fehler führen, wenn die Variable um 11:59:50 ermittelt wird, der Testfall jedoch z. B. eine neue Aktivität um 12.01:10 erstellt und dann versucht das Erstelldatum der Aktivität mit der Variable zu vergleichen. Darüber hinaus wird das Datum des Systems ermittelt, wo das Test-Studio gestartet wurde. Wenn ein Server in einer anderen Zeitzone zum Testen genutzt wird, kann es ebenfalls zu Fehlern kommen. (Sehr unwahrscheinlich)
Beispiel
@Shared
def currentDate = resolve current date