Automatizarea testelor pe aplicațiile Flash / Flex
cererea de testare a aplicațiilor Flash/Flex a devenit mult mai semnificativă în ultimii ani. Acest lucru indică extinderea utilizării acestei tehnologii, care la rândul său ilustrează necesitatea testării automate a acestor aplicații. Cu toate acestea, această nevoie ridică câteva întrebări și probleme, dintre care unele vor fi discutate în următorul articol.
mai exact, prima întrebare la care trebuie să se răspundă despre automatizarea unei aplicații Flash/Flex este: care este tehnica corectă de automatizare? Există două moduri distincte de a merge:
mouse nativ & integrarea tastaturii – bună pentru situațiile în care este necesară o interacțiune minimă a blițului.
integrare la nivel API-bun pentru situațiile în care există o mulțime de interacțiune Flash necesare.
mouse nativ & integrarea tastaturii – aici se simulează o mișcare a mouse-ului, un clic de mouse sau o acțiune a tastaturii la nivelul sistemului de operare. Reproduce cea mai realistă simulare a utilizatorului prin înregistrarea acțiunilor bazate pe GUI, apropiindu-ne foarte mult de utilizarea „vieții reale” a aplicației noastre. Cu toate acestea, utilizarea acestei metode are unele probleme. De exemplu, testarea unei aplicații Flash necesită ca aplicația și mediul de testare să fie pregătite într-un mod special. Există diferite moduri de a face aplicația Flash testabilă, în funcție de instrumentul de testare utilizat și de mediul de dezvoltare. Unele instrumente precum TestComplete, Rational Robot și QTP necesită ca o bibliotecă dedicată (de obicei furnizată de furnizorul instrumentului) să fie încorporată în aplicația Flash în timpul compilării sau în timpul rulării. Specificul acestui proces poate fi găsit de obicei în documentația acestor instrumente.
capturarea obiectelor într-o aplicație Flex/Flash este problematică pe cont propriu. Pentru a rezolva acest lucru, există două abordări principale:
- capturați afișajul de pe dispozitiv și folosiți recunoașterea imaginii pentru a localiza elementele dorite pe ecran, automatizând aplicația într-o manieră black-box. Vinetele sunt un bun exemplu de instrument care utilizează această abordare. Este, de asemenea, modul în care SilkPerformer funcționează într-un mediu Citrix.
- analizați obiectele utilizate în proprietăți și utilizați aceste proprietăți pentru a localiza obiectul. Aceasta este aceeași abordare care este utilizată în depozitele de obiecte QTP. Proprietățile tipice ale obiectelor Flash, cum ar fi starea, numele și textul, se utilizează atât pentru a localiza obiecte, cât și pentru a verifica dacă au avut loc anumite acțiuni. Robotul rațional este un bun exemplu al acestei abordări; folosește 11 puncte de verificare diferite pentru a verifica dacă a avut loc o anumită acțiune sau pentru a verifica starea unui obiect. Această abordare este perfectă pentru cei care doresc să simuleze interacțiuni GUI relativ simple, cum ar fi să facă clic pe butonul „Redare” al unui film sau să interacționeze cu un dialog de confirmare, deoarece într-o aplicație mai complicată această abordare tinde să eșueze.
integrare la nivel API-pentru aplicațiile care au interfețe de utilizator Flash/Flex mult mai complexe sau aplicații care sunt 100% bazate pe Flash, este greu de utilizat capturarea GUI așa cum este prezentat, deoarece poate fi fragil și dificil de confirmat că funcționalitatea dorită a funcționat. Pentru aceasta, se poate utiliza integrarea nivelului API. Pentru a face acest tip de automatizare, trebuie să puteți recompila/modifica obiectele flash subiacente.
modul în care procedați de aici depinde dacă utilizați Flash sau Flex, deoarece Flex expune unele API-uri de automatizare care, în caz contrar, vor trebui reproduse dacă utilizați Flash Pur. Pentru a face acest lucru se poate: