Ich kenne die Grundlagen der Optimierung von Robot Framework für Geschwindigkeit bei normalen Anwendungen, aber dies ist keine normale Anwendung. Es geht nicht darum, so schnell wie möglich zu verfahren, denn wenn der Code in einer Angular-Anwendung zu schnell ausgeführt wird, versucht er, auf ein Element zu klicken, das nicht aktiviert oder sichtbar ist, oder auf ein Element, das noch nicht existiert. Zeitprobleme gibt es reichlich, und das Ergebnis ist, dass ich ein Schlüsselwort (unten) verwende, um mein Programm allgemein zu verlangsamen. Das Problem ist, dass es hart codiert ist, und ich suche nach einer "programmatischen" (programmatischen? Ich weiß nicht den genauen Begriff) Lösung, die darauf wartet, dass ein Element anklickbar ist und dann so schnell wie möglich darauf klickt ist.Wie kann ich Robot Framework optimieren, um das Testen einer Angular-Anwendung zu beschleunigen?
Dies ist das Schlüsselwort ich nach jedem Klick verwenden (${SLOW_TIME}
eine globale Variable 0.5s
gesetzt ist):
Slow Down
# EXAMPLE USAGE
# Slow Down ${SLOW_TIME}
[Arguments] ${SLOW_TIME}
Sleep ${SLOW_TIME}
Dies ist meine aktuelle Lösung, die, dass ein Element bereit, um zu überprüfen, geschrieben wurde, ist zu sein für Testüberprüfungszwecke angeklickt, nicht Geschwindigkeit. Es ist nicht vollständig (needs „Ist Clickable“) und verursacht gelegentlich das Programm länger warten, als es muss:
Verify Element Is Ready
# EXAMPLE USAGE
# Verify Element Is Ready id=myElementId
# Click Element id=myElementId
[Arguments] ${element}
Variable should exist ${element}
Wait until element is visible ${element}
Wait until element is enabled ${element}
Ich bin mir bewusst, dass Robot Framework nicht auf Geschwindigkeit ausgelegt ist, aber für lange Tests I‘ Ich bin es leid, 10 Minuten lang nichts zu tun, bis es fertig ist, nur um zu sehen, dass ich eine falsche [Fail]
habe. Wenn die Lösung Python, Javascript oder Java enthält, kann ich das in.
BEARBEITEN: Ich verwende derzeit ExtendedSelenium2Library, aber seine impliziten Wartezeiten funktionieren nicht immer, also wollte ich eine zweite Schicht warten, aber nur so lange wie nötig.
Dies ist nicht wirklich eine Antwort - aber Sie sagten, Sie 10 Minuten warten, wenn zu sehen es schlägt fehl oder passiert. Warum nicht eine kleine "Sandbox" erstellen, die diesen neuen Test erstellt hat, und sehen, ob das funktioniert. Wenn es fehlschlägt, wissen Sie innerhalb weniger Sekunden, und wenn es passiert, können Sie es am Ende der Hauptdatei hinzufügen. Wenn das Sinn macht? Wenn es dann zur Hauptdatei hinzugefügt wird, sollte es korrekt funktionieren, wenn das Setup und die Teardowns korrekt ausgeführt werden. – Goralight
Es macht Sinn und ich mache das normalerweise, aber manchmal verursacht die Integration mit der Hauptdatei selbst Fehler, obwohl es nicht sollte, und das Ausführen des gesamten Tests, um zu sehen, ob es zusammenarbeitet, benötigt so viel Zeit. –
Warum rufen Sie sofort nach dem Warten darauf, dass das Element sichtbar sein sollte? Das scheint überflüssig. –