2011-01-20 12 views
18

Szukam oprogramowania łączącego rejestrowanie makr z funkcjami wykonywania zrzutów ekranu.Automatyczne wykonywanie zrzutów ekranu okna programu

Mamy podręcznik oprogramowania z wieloma zrzutami ekranu. Po wydaniu nowej wersji oprogramowania musimy zaktualizować większość zrzutów ekranu i musimy to zrobić ręcznie. Teraz rozpoczęliśmy tłumaczenie podręcznika na kilka języków i liczba zrzutu ekranu wzrosła dziesięciokrotnie. Chcielibyśmy zautomatyzować ten proces.

Pojawi się zarejestrowane makro lub coś, co kliknie przycisk w naszym oprogramowaniu i wykona zrzuty ekranowe okna programu. Co więcej, możemy określić nazwę każdego zrzutu indywidualnie, choć jest to mniej ważne.

Czy coś takiego istnieje?

+0

Proponuję skierować docelowy interfejs API automatyzacji Microsoft UI w tym konkretnym scenariuszu, ponieważ masz pełne kody źródłowe i suppport cyklu życia aplikacji w organizacji. Musisz nagrywać skrypty interfejsu użytkownika, korzystając z niestandardowego dostawcy automatyzacji, zdolnego do nagrywania i odtwarzania automatów interfejsu użytkownika, a następnie możesz dodać swoje niestandardowe zachowanie, takie jak zrzuty ekranu, ponieważ api automatyzacji ma 3 sposoby na programową ocenę interfejsu użytkownika: według właściwości AutomationId, za pomocą ekranu punkty (kliknięcia myszy) i element drzewa wizualnego (przechodzenie interfejsu użytkownika). –

Odpowiedz

3

Używam AutoIt oraz captdll.dll dla wszystkich moich zadań automatyzacji GUI Windows.

Przykład:

Run("Notepad.exe", @WindowsDir, @SW_MAXIMIZE) ; Open NOTEPAD 
Sleep(1000) 
Send("Just a Test") ; Send some text to notepad 

; Save the screen to test.jpg 
$anPos = WinGetClientSize("") 
$nLeft = 0 
$nTop = 0 
$nRight = $anPos[0] 
$nBottom = $anPos[1] 

$sFileName = "test.jpg" 
DllCall("captdll.dll", "int:cdecl", "CaptureScreen", "str", $sFileName, "int", 85) 

ten sposób można zautomatyzować cały screenshot proces przechwytywania:

  • Uruchom aplikację z Run
  • wybrać każdą z opcji menu ze Wyślij
  • kompletna dane każdego ekranu również przy pomocy Send
  • przechwytywania przy pomocy DllCall ("captdll. dll”....)

Można również dodać logikę warunkowe, pętle itp

2

Tak. Chcesz automatycznego oprogramowania do testowania, które może to wszystko zrobić i przetestować swój produkt.

http://en.wikipedia.org/wiki/List_of_GUI_testing_tools

+0

Wiele zależy od narzędzi, do których jesteś przyzwyczajony. Istnieją narzędzia, które można zaprogramować we wszystkim, od Perla, Javy, C#, VB i JavaScriptu po Ruby. Rozważmy AutoIt na przykład, jak w tym pytaniu: http://stackoverflow.com/questions/370673/taking-screenshots-of-an-application-using-wsh-script – Ben

+0

Ben, znam się na narzędziach do testowania GUI. Moje pytanie nie dotyczy testów, ale jest blisko. Pytanie brzmi, które oprogramowanie może przejść przez oprogramowanie Windows i wykonać zrzuty ekranowe okna programu. –

+0

Powinieneś wcześniej wspomnieć o platformie. Miałem zamiar wspomnieć o xmacro ... – Quaternion

2

Testing Anywhere wydaje się mieć funkcjonalność, czego potrzebujesz. Niektóre słowa z ich strony internetowej:

„Zaawansowane funkcje nagrywania GUI i bez konieczności programowania interfejs użytkownika pozwala testerom szybko skonfigurować nawet skomplikowanych przypadków testowych” ...

„, donosi dziennik wizualne: Testowanie Anywhere potężna opcja wizualizacji wykonuje zrzuty ekranu, aby tworzyć wizualne dzienniki w czasie wykonywania. " (see here)

Można również wypróbować coś prostszego i (tańszego!), Takiego jak Jitbit Macro Recorder, który pozwala na odtwarzanie nagranych makr (klawiatury i myszy), a następnie użyj klawisza Shift-PrintScreen w makrze, aby zrobić zrzuty ekranu. Posiada również edytor skryptów makro.

2

Jeśli jest to aplikacja internetowa, możesz użyć Selenium. Istnieje podobne narzędzia dla Visual Studio zwany test Automation FX

2

yoiu może spojrzeć na istniejące Windows Automation API : UI Automation, dokumentacji MSDN

run-time Wymagania

UI Automation jest obsługiwane w następujących systemach operacyjnych: Windows XP, Windows Server 2003, Windows Server 2003 R2, Windows Vista, Windows 7, Windows Server 2008 i Windows Server 2008 R2.

Aplikacje klienckie, od prostych skryptów testowych po niezawodne narzędzia nagrywania i odtwarzania, mogą wymagać dostępu do elementów, które nie są obecnie tworzone, takich jak otwarte okno dialogowe lub pozycja menu, a zatem nie istnieją w drzewie automatyzacji interfejsu użytkownika. Te elementy można utworzyć tylko poprzez odtworzenie lub "odtworzenie" określonej sekwencji działań interfejsu użytkownika (UI) za pomocą właściwości automatyzacji interfejsu użytkownika, takich jak AutomationID, wzorce kontrolne i detektory zdarzeń. Zapoznaj się z artykułem Test Script Generator Sample, aby uzyskać przykład, który wykorzystuje technologię Microsoft UI Automation do generowania skryptów testowych na podstawie interakcji użytkownika z interfejsem użytkownika (UI).

Możesz użyć AutomationIdProperty wewnątrz istniejącego projektu Visual Studio.

wykonawcze UI Automation w aplikację testową

  • Dodaj odniesień UI Automation.

Ull Automation UI niezbędne dla klientów automatyzacji interfejsu użytkownika są wymienione tutaj.

UIAutomationClient.dll zapewnia dostęp do interfejsów API po stronie klienta automatyzacji interfejsu użytkownika.

UIAutomationClientSideProvider.dll umożliwia zautomatyzowanie kontrolek Win32. Zobacz Wsparcie automatyzacji interfejsu użytkownika dla kontroli standardowych.

UIAutomationTypes.dll zapewnia dostęp do określonych typów zdefiniowanych w automatyzacji interfejsu użytkownika.

  • Dodaj obszar nazw System.Windows.Automation.

Ta przestrzeń zawiera wszystko, czego użytkownicy interfejsu API Klienci muszą używać możliwości automatyzacji interfejsu użytkownika z wyjątkiem obsługi tekstu.

  • Dodaj obszar nazw System.Windows.Automation.Text.

Ta przestrzeń zawiera wszystko, co klienci automatyzacji interfejsu użytkownika muszą wykorzystać możliwości obsługi tekstu w automatyce interfejsu użytkownika.

  • Znajduj kontrole interesujące

zautomatyzowane skrypty testowe zlokalizować elementy UI Automation, które reprezentują kontrole interesów w drzewie automatyki.

Istnieje wiele sposobów na uzyskanie elementów automatyzacji interfejsu użytkownika z kodem.

Zapytanie do interfejsu użytkownika za pomocą instrukcji Warunek. Zwykle używa się neutralnej językowo właściwości AutomationIdProperty. Notatka Właściwość AutomationIdProperty można uzyskać za pomocą narzędzia, takiego jak UISpy.exe (UI Spy), które może wyszczególniać właściwości automatyzacji interfejsu użytkownika kontroli.

Użyj klasy TreeWalker do przechodzenia przez całe drzewo automatyzacji interfejsu użytkownika lub jego podzestaw.

Śledź ostrość.

Użyj hWnd formantu.

Użyj położenia ekranu, na przykład lokalizacji kursora myszy.

Zobacz Obtaining UI Automation Elements

  • Pobiera wzorce kontrolne

wzorce kontrolne wystawiać typowych zachowań dla funkcjonalnie podobnych kontroli.

Po zlokalizowaniu elementów sterujących wymagających testowania zautomatyzowane skrypty testowe uzyskują wzorce kontrolne będące przedmiotem zainteresowania z elementów automatyzacji interfejsu użytkownika. Na przykład wzorzec kontrolny InvokePattern dla typowych funkcji przycisków lub wzorzec sterowania WindowPattern dla funkcji okna.

Zobacz opis układów sterowania automatyki UI.

  • Automatyzacja UI

automatycznych skryptów testowych można teraz sterować dowolnym UI odsetek od ram UI z wykorzystaniem informacji i funkcjonalności wystawioną przez wzorców kontroli UI Automation.

Powiązane narzędzia i technologie

Istnieje szereg powiązanych ze sobą narzędzi i technologii, które obsługują automatycznego testowania z UI Automation.

UISpy.exe (UI Spy) to aplikacja graficznego interfejsu użytkownika (GUI), która może służyć do zbierania informacji o automatyzacji interfejsu użytkownika, zarówno dla rozwoju dostawcy, jak i klienta oraz debugowania. Spam UI jest zawarty w zestawie Windows Software Development Kit (SDK).

UIAutoCmd to narzędzie wiersza poleceń z funkcjami podobnymi do interfejsu użytkownika Spy.

MSAABridge udostępnia informacje o automatyzacji interfejsu użytkownika klientom Active Accessibility. Podstawowym celem mostowania automatyzacji interfejsu użytkownika do aktywnej dostępności jest umożliwienie istniejącym klientom Active Accessibility możliwość interakcji z dowolną strukturą, która ma zaimplementowaną automatyzację interfejsu użytkownika. Zabezpieczenia

Aby uzyskać informacje dotyczące bezpieczeństwa, zobacz Omówienie zabezpieczeń automatyzacji interfejsu użytkownika.

0

użyłbym Otwórz narzędzie Źródło Sikuli. Całkiem prosty język skryptowy lub możesz używać ich klas i pisać własny kod Java.

Oto dokumentacja porwać część ekranu: http://sikuli.org/docx/screen.html#capturing

Bonus jest to, że jest obsługiwane w systemie Windows, Linux i Mac!

Powiązane problemy