Narzędzia do automatyzacji aplikacji desktopowych Windows Forms

Jakich narzędzi można użyć do automatyzacji aplikacji desktopowych, działających w systemie Windows (Windows Forms, WPF)?

Na szczęście istnieje wiele rozwiązań, dzięki którym pisanie testów automatycznych może być całkiem skuteczne. Poniżej kilka propozycji. Większość z nich jest darmowa – poza licencją na Visual Studio (w przypadku pierwszej grupy, opartej o .NET Framework lub rozwiązań Microsoftu).

Inspect - świetne narzędzie pomagające w automatyzacji aplikacji desktopowych

Zapraszam do lektury:

Narzędzia z grupy .NET:

  1. Microsoft UI Automation (znane również jako UIA).Przykładowe testy używające UIA będą miały namespace: System.Windows.Automation.
    Garść linków z przykładowym kodem:

  2. Microsoft Coded UI Tests – rozbudowane narzędzie oparte o  Microsoft UI Automation i wiele innych technologii, dzięki czemu umożliwia m.in. testowanie aplikacji Silverlight, Windows Forms czy WPF. Możliwe jest zarówno pisanie testów ręczne, jak i nagrywanie testów i na tej podstawie generowanie kodu w C#. Niestety wymaga Visual Studio w wersji Ultimate lub Premium.
    Przykładowe testy używające Coded UI będą miały namespace: Microsoft.VisualStudio.TestTools.UITesting.
    Trochę linków na ten temat:

  3. TestStack White Framework. Mój wybór. Świetny framework opensource do testów aplikacji desktopowych, podobny nieco do Selenium. White wymaga .NET Framework w wersji 4.0. Świetnie sprawdza się solo, a także w razie potrzeby połączenia testów aplikacji webowej z aplikacją desktopową. Wystarczy do projektu w Selenium dołączyć pliki .dll White i można korzystać z funkcjonalności oferowanych przez obydwie biblioteki.
    Linki:

  4. Windows Automation API – zbudowane na COM, „wymaga dużego doświadczenia w programowaniu w C”.
  5. Twin – framework stworzony w eBay, oparty o Selenium WebDriver.
    Link: https://code.google.com/archive/p/twin – na ten moment wygląda raczej na projekt archiwalny.
  6. Winium.Desktop – kolejna propozycja z rodziny Selenium WebDriver, dla aplikacji WPF i WinForms. Testy można pisać w C#. Co istotne, projekt jest żywy i wciąż się rozwija (co pewnie jest spowodowane rozwojem bliźniaczego rozwiązania Winium dla testowania WindowsPhone).
    Link: https://github.com/2gis/Winium.Desktop

Narzędzia z innym podejściem:

  1. Sikuli. Ciekawe narzędzie, w którym programuje się w sposób graficzny. Opiera się na wykonywaniu zrzutów ekranu i sprawdzaniu, czy zadany fragment screena jest widoczny na ekranie. Możliwe jest także użycie mechanizmu OCR (rozpoznawania tekstu z obrazu). Plotki mówią, że ktoś tego używa 😉
  2. AutoIt. Skryptowy język programowania stworzony do automatyzacji i wszelakich skryptów. Jako typowy język skryptowy umożliwia automatyzację różnych procesów (kopiowanie plików, instalacje softu, pingowanie, symulacja klawiatury, myszy i wiele innych), a we współpracy z biblioteką UI Automation pisanie automatycznych testów GUI. Skrypty można pisać w edytorze SciTE, który podpowiada składnię. Dużo przykładów można znaleźć na forum.
  3. Robot Framework + AutoIt + Python. Ciekawe połącznie, zgrabnie omijające użycie rozwiązań Microsoftu.

„Inspektory”

Poza narzedziami umożliwiającymi pisanie testów, niezbędne są także „inspektory”, umożliwiające odnajdywanie identyfikatorów kontrolek w testowanej aplikacji:

  1. Snoop Wpf – http://snoopwpf.codeplex.com/
  2. CodedUI – wyszukiwarki są wbudowane.
  3. Inspect – świetne narzędzie Microsoftu z Windows SDK („Windows SDK for Windows 7”). Jak dotąd najlepiej poradziło sobie z testowaną przeze mnie aplikacją – https://msdn.microsoft.com/en-us/library/dd318521(v=vs.85).aspx

Dodatkowo rozwiązania płatne:

  • Test Automation FX.
  • TestComplete.
  • HP Quick Test Pro.
  • Telerik Test Studio.

Jedna myśl nt. „Narzędzia do automatyzacji aplikacji desktopowych Windows Forms

  1. Pingback: Podsumowanie roku 2016 | Mój skrawek Sieci

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *