Automatyzacja testów aplikacji Flash / Flex
zapotrzebowanie na testowanie aplikacji Flash / Flex stało się znacznie większe w ciągu ostatnich kilku lat. Wskazuje to na coraz szersze wykorzystanie tej technologii, co z kolei ilustruje potrzebę zautomatyzowanego testowania tych aplikacji. Potrzeba ta rodzi jednak kilka pytań i problemów, z których niektóre zostaną omówione w poniższym artykule.
w szczególności pierwsze pytanie, na które należy odpowiedzieć na temat automatyzacji aplikacji Flash/Flex, brzmi: jaka jest właściwa technika automatyzacji? Istnieją dwa różne sposoby:
natywna mysz & integracja z klawiaturą-dobra w sytuacjach, w których wymagana jest minimalna interakcja z Flashem.
integracja na poziomie API-dobra w sytuacjach, w których wymagana jest duża interakcja z Flashem.
natywna mysz & integracja klawiatury – w tym miejscu symulowany jest ruch myszy, kliknięcie myszy lub działanie klawiatury na poziomie systemu operacyjnego. Odtwarza najbardziej realistyczną symulację użytkownika, rejestrując działania oparte na GUI, dzięki czemu jesteśmy bardzo blisko „rzeczywistego” korzystania z naszej aplikacji. Jednak korzystanie z tej metody ma pewne problemy. Na przykład testowanie aplikacji Flash wymaga specjalnego przygotowania aplikacji i środowiska testowego. Istnieją różne sposoby testowania aplikacji Flash, w zależności od używanego narzędzia testowego i środowiska programistycznego. Niektóre narzędzia, takie jak TestComplete, Rational Robot i QTP wymagają, aby dedykowana biblioteka (zwykle dostarczana przez dostawcę narzędzia) była osadzona w aplikacji Flash podczas kompilacji lub podczas uruchamiania. Specyfikę tego procesu można zazwyczaj znaleźć w dokumentacji tych narzędzi.
Przechwytywanie obiektów w aplikacji Flex / Flash samo w sobie jest problematyczne. Aby rozwiązać ten problem, istnieją dwa główne podejścia:
- Przechwyć wyświetlacz z urządzenia i wykorzystaj rozpoznawanie obrazu, aby zlokalizować pożądane elementy na ekranie, automatyzując aplikację w sposób czarny. Bakłażan jest dobrym przykładem narzędzia, które wykorzystuje to podejście. Jest to również sposób działania SilkPerformer w środowisku Citrix.
- analizuje używane obiekty do właściwości i używa ich do zlokalizowania obiektu. Jest to takie samo podejście, które jest stosowane w repozytoriach obiektów QTP. Typowe właściwości obiektów Flash, takie jak stan, nazwa i tekst, są używane zarówno do lokalizowania obiektów, jak i sprawdzania, czy pewne działania zostały wykonane. Rational Robot jest dobrym przykładem tego podejścia; wykorzystuje 11 różnych punktów weryfikacji, aby sprawdzić, czy pewne działanie miało miejsce lub sprawdzić stan obiektu. Takie podejście jest idealne dla tych, którzy chcą symulować stosunkowo proste interakcje z GUI, takie jak kliknięcie przycisku „Odtwórz” filmu lub interakcja z oknem potwierdzenia, ponieważ w bardziej skomplikowanej aplikacji podejście to zwykle zawodzi.
integracja na poziomie API-w przypadku aplikacji, które mają znacznie bardziej złożone interfejsy użytkownika Flash/Flex lub aplikacje, które są w 100% oparte na pamięci Flash, trudno jest użyć przechwytywania GUI, ponieważ może być kruche i trudne do potwierdzenia, że pożądana funkcjonalność zadziałała. W tym celu można użyć integracji na poziomie API. Aby wykonać ten rodzaj automatyzacji, należy być w stanie przekompilować/zmodyfikować podstawowe obiekty Flash.
sposób postępowania zależy od tego, czy używasz Flasha, czy Flexa, ponieważ Flex udostępnia pewne interfejsy API automatyzacji, które w przeciwnym razie będą musiały zostać odtworzone, jeśli używasz czystego Flasha. Aby to zrobić można: