Dies ist eine Anwendung zur Überprüfung von Leistungstests. Einfach im Konzept, schwierig zu beschreiben. Bild:
1) Interaktionen mit einem WPF-Programm aufzeichnen, so dass die Eingänge wiedergegeben werden können.
2) Wiedergabe der Eingaben während einer fortlaufenden Bildschirmaufnahme.
3) Erfassung der Wandzeit sowie der kontinuierlichen CPU-Anteile während der Wiedergabe.
4) Wiederholen Sie die Schritte (2) und (3) mehrmals.
5) Das relevante Material in die Datei / db schreiben.
6) Lesen Sie es und legen Sie alles in eine ausgefallene Benutzeroberfläche für die einfache Überprüfung / Analyse.
Der Mörder für mich ist (2). Ich könnte einige Hinweise zu einem guten, möglicherweise kommerziellen Screen Capture SDK verwenden. Ich würde auch die Nachricht begrüßen, dass mein ganzes Problem bereits eine Lösung hat. Und natürlich wären auch Gedanken zur Gesamtidee groß.
Danke.
Ed
Sie können die Bildschirmaufnahme in Ihrer eigenen Anwendung mit DirectShow machen.
Weitere Informationen zur Videoaufnahme finden Sie unter Video Capture Verwenden von DirectShow und Links zu Beispielcode. Um speziell vom Bildschirm zu erfassen, benötigen Sie den Filter "Screen Capture filter" in wmpsrcwp.dll, der in neueren Windows-Versionen gefunden wurde und auch als Teil des Windows Media Encoders heruntergeladen werden kann.
Obwohl die Benutzeroberflächenautomatisierung zur Wiedergabe von Ereignissen verwendet werden kann, kann sie nicht aufnehmen. Wenn Sie Systemereignisse aufzeichnen müssen, empfehle ich Ihnen, Windows Hooks zu verwenden sowohl Aufnahme als auch Wiedergabe.
DirectShow ist am einfachsten in C ++ / CLR statt C # durchzuführen, da Sie problemlos C ++ - Headerdateien und nicht verwaltete Aufrufe einfügen können und Windows-Hooks nur in systemeigenem Code ausgeführt werden sollten.
Erstellen Sie ein Leistungstestprodukt oder testen Sie Ihr Produkt auf Leistung?
Wenn Letzteres angezeigt wird, können Sie das Feature-Set für Team Foundation Server 2010, insbesondere die Testtools, anzeigen. Es scheint einige nette Funktionen für das historische Debugging, Profiling und QA-Team-Integration zu geben (Test Session Video Playback, etc).
Ansonsten, wenn Sie nur nach Vidcap-Tool suchen, habe ich SnagIt schon immer gemocht.
Es klingt für mich so, als ob Sie nach einem automatisierten Testwerkzeug suchen, das UI-Interaktionen ausführen kann. Wir verwenden TestComplete was meiner Meinung nach viel von den funktionalen UI-Tests und Aufzeichnungen, die Sie suchen, tun wird. Es gibt auch andere. Ich frage mich, ob Sie den Bildschirm tatsächlich aufzeichnen müssen, während der Test ausgeführt wird, wenn Sie die gleiche Interaktion leicht reproduzieren können, wenn etwas fehlschlägt.
Da Sie sich für eine kommerzielle Erfassung von Screenshots interessieren, würde ich empfehlen, die gesamte Suite kommerziell zu betrachten: Ich würde Microsoft Test Manager 2010 empfehlen (siehe Funktionen hier: Ссылка ). Es nimmt Videos und Aufzeichnungen auf und gibt Eingaben wieder, was der Großteil dessen ist, an dem ich arbeite, aber es greift auch direkt auf .NET-Anwendungen für Intellitrace-Debugging-Zwecke zu, integriert sich in das Fehlermeldungssystem von Team Foundation Server usw. Sie können es mit WPF, XNA, ASP.Net oder anderen Sprachen verwenden, wenn Sie bereit sind, die Intellitrace-Funktionen zu opfern. Es wird sogar die Wiedergabe von Eingängen automatisieren und Ausgänge für kontinuierliche Integrationstests nach Ihren Spezifikationen überprüfen.
Sie sagen, der schwierige Teil für Sie ist:
2) Währenddessen die Eingaben zurückspielen eine kontinuierliche Bildschirmaufnahme.
Sie können ein Automatisierungs- und Scripting-Tool wie AutoIt oder AutoHotKey in Betracht ziehen. Mit jedem dieser Tools können Sie Ihre Interaktionen mit einer Windows-Anwendung aufzeichnen. Sie können ein Basisszenario aufzeichnen und später die Details und das Timing im Editor anpassen. Eine nette Eigenschaft von AutoIt ist die Fähigkeit, Ihr Makro zu einer eigenständigen ausführbaren Datei zu "kompilieren".
Soweit ich das beurteilen kann, wird keines dieser Tools Video aufnehmen. Denken Sie an etwas wie Fraps, ein Video-Bildschirm, der von Videospielern populär gemacht wird. Sie sollten in der Lage sein, eines der oben genannten Skripting-Tools zu verwenden, um Fraps zu starten und zu stoppen.
Viel Glück mit Ihrem Projekt.