Ich arbeite mit Robot Framework und kann eine Schleife erstellen, die bestimmte Seiten meiner Website überprüft. In dieser Schleife kann ich mehrere Überprüfungen durchführen. Beispiel:Wie kann ich in Robotframework ein Schlüsselwort mit einer for-Schleife erstellen, das Argumente auf seine Iterationen anwendet?
*** Test Cases ***
Check all cat pages
Get all cats
:FOR ${cat} IN ${cats}
/Go to catpage ${cat}
/Check if page has ${cat}
/Check if page is fluffy
/Check if page haz burger
*** Keywords ***
Get all cats
[some irrelevant magic that gives me all cats]
Go to catpage
[Arguments] ${cat}
Go to ${SERVER}/catpages/${cat}.html
Check if page has
[Arguments] ${cat}
[do some irrelevant magic with the variable ${cat}]
Check if page is fluffy
[do some irrelevant magic]
Check if page haz burger
[do some irrelevant magic]
Jetzt will ich das Teil für-Schleife tatsächlich haben, in einem separaten Schlüsselwort, das ich anrufen kann, wonach die Kontrollen zu jeder Iteration der Schleife angewendet werden, wie folgt aus:
*** Test Cases ***
Check if the cats are fluffy
Check all cat pages
[Check if page is fluffy]
Check what the cats have
Check all cat pages
[Check if page has ${cat}]
[Check if page haz burger]
*** Keywords ***
Check all cat pages
Get all cats
:FOR ${cat} IN ${cats}
/Go to catpage ${cat}
/[the keywords applied here]
[...]
Also, im zweiten Beispiel würde die for-Schleife zweimal angewendet werden. Zuerst würde es alle Katzenseiten durchlaufen und für jede Katzenseite prüfen, wie flauschig es ist. Bei der zweiten Schleife würde es erneut über alle catpages iterieren und prüfen, ob jede catpage $ {cat} hat, und ob es haz burger ist. Natürlich könnte ich für beide Testfälle eine neue for-Schleife schreiben, aber um die Dinge lesbar zu halten, würde ich lieber ein Schlüsselwort mit der Schleife aufrufen und einige Schlüsselwörter darauf anwenden. Ich wäre dann in der Lage, neue Keywords einfach hinzuzufügen (zum Beispiel, wenn ich ein neues Keyword wie "Check if page has photo" erstelle, kann ich es zum Test "Check what the cats have" hinzufügen, und alle Seiten sind dann überprüft, ob sie ein Foto hat
Wie kann ich eine solche Einrichtung erreichen
Fragen Sie, wie Sie eine Liste von Stichwörtern erstellen (zB: "[überprüfen Sie, ob die Katzen flauschig sind", "überprüfen, was die Katzen haben"]), und dann jedes dieser Schlüsselwörter für jede Seite ausführen können ? –
Hm, vielleicht war es der Freitagnachmittag, aber ich hatte nicht daran gedacht, eine Liste der verschiedenen Schlüsselwörter zu erstellen und diese Liste dann als Variable zu verwenden, um das Schlüsselwort, das die for-Schleife enthält, auf jeder Seite zu verwenden. Lassen Sie mich das versuchen: Wie funktioniert es, wenn ein Schlüsselwort in der Liste eine Variable für sich selbst benötigt, zB ["prüfen, ob die Seite $ {cat}" enthält]? – Monnikje
Sie können festlegen, dass alle benutzerdefinierten Schlüsselwörter alle möglichen Variablen erwarten (verwenden Sie jedoch nur die, die Sie benötigen). In diesem Fall könnten Sie einfach die Liste der Schlüsselwörter iterieren und 'Keyword ausführen $ {kw} $ {cat} $ {cat_size} $ {cat_color}' – jim