Hallo zusammen,
ich wollte mich bei euch mal umhören, ob hier irgendjemand Erfahrung im Bereich Testautomation mit Python hat?
Es gab hierzu schon mal einen Thread von einem User, aber dieser Thread ist relativ früh "gestorben"... Nun ein neuer Anlauf..
Bin hierbei auch schon auf PyAutoGUI gestoßen (https://pyautogui.readthedocs.io/en/latest/index.html), hier kann man schon mal bestimmte Eingaben von Peripheriegeräten simulieren und auch Screenshots erstellen. Habe allerdings nichts gefunden um bestimmte Werte zu überprüfen.
Im Speziellen geht es mir um Folgendes:
* Ich will GUI Masken öffnen können und Maskeninhalte (Spaltenwerte, Bilder, ...) prüfen können
* Ggf. Werte aus Dateien (xml, xls) importieren
* Würde es gerne vermeiden Tools zu benutzen, aber wenn es nicht anders geht, dann kostenlose Tools. (Das Ganze ist für ein Freizeitprojekt)
* Alles möglichst unabhängig von Auflösung und anderen Eigenheiten von Testumgebungen gestalten, quasi möglichst robust
Hat hierzu wer Ideen, Tutorials oder gar eigene Erfahrungen?
Danke schon mal
Testautomation in Python
Spannend - ich antworte, weil es sonst keine Antwort gab; ich habe mich mit dem Problem noch nie befasst.
Es gibt m. E. für Python das Modul doctest oder das Modul unittest. Gefühlt würde ich sagen, dass Du mindestens unittest benötigst. Ich habe noch nicht gesehen, dass damit GUIs getestet wurden, Webanwendungen, da kenne ich einen, der das mal berichtet hat, weil das seine Hauptaufgabe in einem Projekt war.
Screenshots kann man mit PyScreeze (https://pypi.python.org/pypi/PyScreeze) machen, ist plattformunabhängig. Ich würde dann ggf. "PIL" oder "Pillow: the friendly PIL fork" einsetzen, um die Bilder weiterzuverarbeiten, wenn Du denn unbedingt an die Screenshots heran musst. Ich denke: Viel Programmieraufwand, je nachdem, was du haben willst/musst.
Noch 2 Gedanken: (1) Als ich noch GUIs (einfache) entwickelt habe, da habe ich die händisch getestet und geschaut, ob die das machen, was sie machen sollen. Das ist jetzt Jahre her. Eingaben könntest Du ja simulieren. (2) Du könntest mal Ausschau nach einem Projekt mit GUI-Einsatz halten und dort fragen, wie die das machen. (stackoverflow.com ist auch immer ein Tipp - Such-Funktion oder Posten).
Ich hoffe, weitergeholfen zu haben.
Es gibt m. E. für Python das Modul doctest oder das Modul unittest. Gefühlt würde ich sagen, dass Du mindestens unittest benötigst. Ich habe noch nicht gesehen, dass damit GUIs getestet wurden, Webanwendungen, da kenne ich einen, der das mal berichtet hat, weil das seine Hauptaufgabe in einem Projekt war.
Screenshots kann man mit PyScreeze (https://pypi.python.org/pypi/PyScreeze) machen, ist plattformunabhängig. Ich würde dann ggf. "PIL" oder "Pillow: the friendly PIL fork" einsetzen, um die Bilder weiterzuverarbeiten, wenn Du denn unbedingt an die Screenshots heran musst. Ich denke: Viel Programmieraufwand, je nachdem, was du haben willst/musst.
Noch 2 Gedanken: (1) Als ich noch GUIs (einfache) entwickelt habe, da habe ich die händisch getestet und geschaut, ob die das machen, was sie machen sollen. Das ist jetzt Jahre her. Eingaben könntest Du ja simulieren. (2) Du könntest mal Ausschau nach einem Projekt mit GUI-Einsatz halten und dort fragen, wie die das machen. (stackoverflow.com ist auch immer ein Tipp - Such-Funktion oder Posten).
Ich hoffe, weitergeholfen zu haben.
Das Einzige was mir bisher untergekommen ist und wahrscheinlich brauchbar ist: https://ldtp.freedesktop.org/wiki/
Wenn du es ausprobierst würde ich gern dein Fazit dazu hören.
Wenn du es ausprobierst würde ich gern dein Fazit dazu hören.
the more they change the more they stay the same
Ui, hätte nicht mehr damit gerechnet, danke euch beiden!
@ pixewakb:
Ich denke auch, dass ein Test fast ausschließlich über Screenshotabgleiche nicht wirklich das Gelbe vom Ei ist und auch ziemlich fehleranfällig wenn ich mir vorstelle, dass in bestimmten Masken gescrollt werden muss um alle Werte sichtbar zu machen die geprüft werden sollen, die Screenshots auch permanent im Laufe eines Softwarezykluses aktualisiert werden müssen, ...
Für kleinere Masken oder Teile davon ist es allerdings bestimmt eine Option die man zusätzlich einbauen kann.
@Dav1d:
Das Projekt hört sich sehr interessant und brauchbar an. Werde mich mal näher damit beschäftigen und schauen was damit auch in Kombination mit PyAutoGui und PyScreeze möglich ist und anschließend Rückmeldung geben.
@ pixewakb:
Ich denke auch, dass ein Test fast ausschließlich über Screenshotabgleiche nicht wirklich das Gelbe vom Ei ist und auch ziemlich fehleranfällig wenn ich mir vorstelle, dass in bestimmten Masken gescrollt werden muss um alle Werte sichtbar zu machen die geprüft werden sollen, die Screenshots auch permanent im Laufe eines Softwarezykluses aktualisiert werden müssen, ...
Für kleinere Masken oder Teile davon ist es allerdings bestimmt eine Option die man zusätzlich einbauen kann.
@Dav1d:
Das Projekt hört sich sehr interessant und brauchbar an. Werde mich mal näher damit beschäftigen und schauen was damit auch in Kombination mit PyAutoGui und PyScreeze möglich ist und anschließend Rückmeldung geben.