QF-Test sieht mit Bordmitteln nur vor, Screenshots einer Client-Anwendung in das Testlaufprotokoll zu schreiben. Das geht über den Knoten “Nachricht” oder die Prozedur qfs.run-log.screenshots.logScreenshot
aus der qfs.qft-Standardbibliothek.
Screenshots in einer Datei speichern
Manchmal möchte man aber einen Screenshot nicht im Testlaufprotokoll ablegen, sondern für andere Dinge weiterverwenden und dafür erst mal in einem Verzeichnis abspeichern. Das geht mit QF-Test natürlich auch, aber dafür braucht es ein Skript (nur ein ganz kleines):
from imagewrapper import ImageWrapper
from java.io import File
screenshot = ImageWrapper(rc).grabImage(rc.getComponent("#Window:"))
screenshot.writeToFile(File(str(rc.groups.qftest.suite.dir) + "/screenshot.png"))
Dieses Jython-SUT-Skript verwendet den exakt gleichen Mechanismus zum Erstellen von Bildschirmabbildern, der auch für das Testlaufprotokoll verwendet wird.
rc.groups.qftest.suite.dir
ist eine nützliche Abkürzung, um das Verzeichnis der aktuellen Testsuite zu ermitteln. Sie können writeToFile()
aber natürlich auch mit einem beliebigen anderen Pfad aufrufen. "#Window:"
ist eine SmartID und steht für das erste Fenster Ihrer Anwendung. Hier können Sie auch eine spezifischere Komponente angeben, um einen Screenshot von einem bestimmten Teil der Anwendungs-UI zu erstellen.
Mehr über die ImageWrapper
-Klasse erfahren Sie hier im QF-Test Handbuch: Die ImageWrapper
-Klasse.