3. Ranorex tool – Core Component
• The core component of the • All the Ranorex automation
Ranorex Automation tools use this same core API
Framework is the Ranorex for all of their functionality.
Library.
• Ranorex API is extremely
• This .NET based API provides clean and intuitive
all the functionality needed to
automate application user
interfaces based on many • The API documentation is
different types of also excellent
technologies.
5. Flex applications
Adobe Flex Support for automation
• is a collection of technologies • automation delegate
for the development and set up implementations for the
of cross platform RIA framework components
•Automation.swc
• demand for more desktop-like •Automation_agent.swc
applications for the web •Automation_dmv.swc
• browser compatibility
• adds a fresh new face to legacy
applications
6. Testing Flex applications with Ranorex
• Flash/Flex Test Automation
Plugin provides a smooth
integration with the Ranorex
Automation Framework and its
tools.
Prerequisites:
• Install Flash Debug Player
• Ranorex Addon (Mozilla,
Chrome, Safari)
•Ranorex Preloader
instrumentation (recommended)
8. Android applications
Android is a Linux-based mobile Support for automation
operating system developed by
Google.
Testing Android apps:
Critical factors:
•Use of emulators and actual
devices
•Testing for mobile environment
and application complexity
•Use of test automation
9. Testing Android applications with
Ranorex
Support for real device or
emulator
Connection using Wi-Fi or USB
Prerequisites:
•The device has to have Ranorex
Service installed
•Instrument and deployment of
Android app (APK)
•Instrumentation with source code
11. Why use Ranorex tool? (1)
Object identification and
Support
recognition
• Wide range of technologies
• Excellent Object Recognition
• Mixed applications within one
Capabilities using custom Xpath
test automation project
• Legacy control support
• Entire power of .NET
• Image based test support
framework
Easy to use Reusability
• Test script language (C#, • Test case modularization
VB.Net, Python) • Separation of test code and test
• Intuitive interface data
• Very good recording • Provision for a test case repository
capabilities
12. Why use Ranorex tool? (2)
Cost
Flexibility
• Runtime, Professional and Premium
• Technology-independent
editions (maintenance included)
• Tests can be exported as (.exe)
• Node Locked licenses varies from
• Test actions can be edited and
€380 to €1480 and Floating licenses
fine tuned
varies from €780 to €3080
Integration with other tools
• Version control support (SVN)
• Test management tools: MTM,
HP QC
• Continuous Integration servers
like Jenkins
13. Why use Ranorex tool? (3)
Reporting Stability
• Comprehensive, detailed • Keep up with latest
technologies and releases
• One report at a time
• Relatively new tool
Test Control • Dedicated forums
• Test data driven • Very responsive and high-level
• Supports remote execution support team
• Portable, can be executed on
other machines
Cand s-a pus problema ce tool ar fi cel mai potrivit pentru testarea aplicatiilor web cu elemente flex pentru un client Levi9, Ranorex a fost alegerea; (decizia a luat-o clientul, el avand deja licenta pentru QTP) N-am folosit direct alte tooluri concurente, insa pot sa va spun ca Ranorex este o alternativa fezabila. Ma voi axa pe aplicatii flex (pentru care folosim toolul) dar am incercat in acelasi timp sa explorez si alte functionalitati si beneficii. Cum cererea pe piata a aplicatiilor Android este foarte mare, am ales aceasta tehnologie.
- Un mare avantaj pe care il are Ranorex, este ca se poate folosi pentru automatizarea testelor oricarui tip de aplicatie. De asemeni, suporta o mare varietate de tehnologii – pornind de la versiuni vechi VB 6, la tehnologii mai noi e.g. Qt, Ajax, Android… Desktop apps Support for Windows7, 8, XP, Vista, Server editions .Net, WPF(XAML), Win32, MFC, Windows Forms, Qt, Java,Delphi, VB6… Web apps Internet Explorer, Firefox, Chrome, Safari Adobe Flash/Flex/Air, HTML5, AJAX, Silverlight, ASP.net, Google Web Toolkit, Ext JS, Ext.Net, Java Applets, jQuery, DHTMLX Mobile apps Android 2.2 and higher coming soon iOS 5.1 and higher and mobile web testing
In ce priveste structura Ranorexului, la baza se afla un API (.NET), libraria Ranorexului, pe care s-a construit frameworkul Ranorex – toate componentele o folosesc Este intuitiv, si documentatia este destul de detaliata Librariile Ranorex pot fi integrate si folosite direct in Visual Studio
Ranorex Studio: un IDE ce incorporeaza functionalitatile generale a unui editor, plus integrarea cu toolurile Ranorex, Test project management Ranorex Repository – reprezinta efectiv colectia de obiecte (din aplicatia testata) care sunt incluse in teste, si recunoscute de Ranorex (adaptori) Identificarea obiectelor din aplicatie se face prin RanorexXPath (un xpath customizat), iar prin repository se mapeaza expresiile xpath cu numele obiectelor f util caci separa codul de obiectele din aplicatie – reduce timpul pe partea de mentenanta Ranorex Recorder: Inregistreaza si reda orice tip de actiune a userului asupra aplicatiei – in C#, VB Actiunile inregistrate pot fi modularizare si schimbate folosind editorul Ranorex Include si posibilitatea de validare (obiecte, imagini) automat La sfarsitul fiecarei rulari – genereaza raport Ranorex Spy: - Pentru explorarea si identificarea obiectelor, aplicatiilor testate Include posibilitatea de snapshots a informatiilor legate de obiectele aplicatiei (utilizat pentru e.g. suport, share intre colegi..etc)
Flex/Flash este o tehnologie folosita pentru aplicatiile web – pentru creare animatie, integrare video in paginile web, sau pentru dezvoltatea aplicatiilor RIA (aplicatii web care au functionalitatile unei aplicatii desktop traditionale) Aplicatiile Flex pot fi automatizate folosing suportul creat de Adobe – prin agenti si delegati (referinte catre metode care sunt declansate la aparitia unui eveniment) Urmatoarele librarii trebuie incluse in aplicatii si toolul de testare: Automation.swc(delegation implementations) Automation_agent.swc(faciliteaza comunicarea cu toolul) Automation_dmv.swc (delegates pentru charts si data grid-uri)
Ranorex a dezvoltat suportul pentru aplicatiile Flex, folosind acest suport de la Adobe. Pentru a crea teste automate pentru o aplicatie web cu elemente Flex/Flesh, este nevoie sa configurati browserul web (in cazul in care nu se foloseste IE) – adaugand Rannorez addon, instalare Flash debug player, si alegand una din cele 3 intrumentari ale aplicatiei testate: 1) PreLoader (recommended) Nu necesita modificarea palicatiei testate - Se seteaza automat folosind Instrumentation Wizard Sau: 2) Automation Lib 3) Module Care necesita inserarea unor librarii in aplicatiile flex Alaturi aveti tabelul cu suportul pentru aplicatiile flex, flash sau air. Pentru cei care nu stiu diferenta intre cele 3 tehnologii: AIR – un fel de runtime, ca java, folosit pentru a rula aplicatii flex, ca aplicatii ce ruleaza pe desktop Flex – se focuseaza pe partea de coding, nu include tool-uri pentru partea de design Flash – folosit mai mult pentru partea de design – animatii, games, banners, video
- Android – sistem de operare pentru mobile, tablete; pe Linux, dezvoltat de Google Testarea aplicatiilor mobile aduce un plus de complexitate ce tine in special de diversitatea environmentului– compatibility tests(multe versiuni a sistemelor de operare – releasuri dese; fragmentation, device-urilor, platforme, hardware). De aici apare si necesitatea automationului, si folosirea emulatoarelor (care nu intotdeauna sunt atat de sigure). Android SDK (software dev kit, folosit pentru dezvoltarea aplicatiilor Android) include un framework de testare – utilizat in special pentru crearea Juniturilor. Instrumentarea folosita de Android – este un set de controale care odata integrate in sistemul Android, intercepteaza si controleaza componentele Android independent de ciclul lor normal InstrumentationTestRunner – baza, folosit pentru creare, rularea testelor; nu detine suport real pentru crearea testelor de UI, insa pe baza lui se pot extinde frameworkuri cu capacitati limitate de testare a interfetei; Ranorex a adaugat suport pentru testare Android folosind partial clasa de instrumentare (e.g. pentru touch events), insa mare parte din frameworkul de testare este customizat.
Ranorex are suport doar pe partea de Android, urmand a include si iOS in viitoarele releasuri. Testele pot fi create, si rulate pe emulatoare sau dispozitive reale conexiunea la dispozitiv se face prin USB, sau WiFi Pentru a facilita conexiunea prin USB, este folosit Android Debug Bridge (tool folosit pentru comunicarea cu dispozitivul) inclus in Android SDK, deasemenea inclus si in kitul de instalare Ranorex. Setarile necesare pentru rularea testelor pe android: instalarea serviciului Ranorex pe dispozitiv addonuri pentru non IE browsers instrumentarea aplicatiei care va fi testata (automat – se inlclude Automation lib si se recompileaza) deployment – aplicatia testata pe dispozitiv
Ca si concluzie, totusi de ce am alege sa lucram cu Ranorex? Atunci cand cauti un tool, ai in vedere anumite aspecte, cum ar fi: Care sunt aplicatiile tinta, ce tehnologii suporta Cum am prezentat la inceput, are suport pentru orice tip de aplicatie Si poate fi folosit pentru o mare diversitate de tehnologii Folosirea unui limbaj ca .NETul ofera o flexibilitate mare in procesarea si manipularea datelor 2) Usurinta in folosirea toolului Pentru developeri, sau testeri cu cunostinte de programare – limbaje deja cunoscute (nu are propriul limbaj de scripting); Interfata este f intuitiva, insa librariile Ranorex pot fi incluse si folosite direct in Visual studio Pentru cei fara cunostinte prea multe de programare – partea de recording – f bine pusa la punct Experienta personala – dupa 5 ani cand nu am mai scris deloc cod, a fost putin mai greu la inceput insa acum am invatat sa il folosesc 3) Partea de identificare si recunoastere a obiectelor aplicatiei (experienta mea, de pe forumuri) – excelent suport Pentru tehnologiile vechi – cum ar fi VB6.0, Delphi or MFC, Ranorex are suport limitat in recunoasterea controalelor; penrtu a rezolva aceasta problema, se utilizeaza un plugin care mareste nivelul de recunoastere a obiectelor ce folosesc Windows GDI (este identificat textul din controale) Image based test – in cazul controalelor noi, pentru care nu ar fi suport – ca o varianta intermediara (deoarece astfel de teste sunt greu de mentinut) 4) Reutilizarea testelor (mentenanta) Modularizarea testelor – dupa ce sunt inregistrate, testele pot fi impartite in test case-uri, suite de teste, pentru rescrierea unor teste, nu este obligatoriu de refacut din nou toata partea de recording, ci doar ce trebuie modificat – teste pot fi editate; se pot ingloba module “user code” – pentru procesarea datelor Separatea datelor de test de partea de cod, prin Ranorex repository Partea de test driven – datele de intrare sa fie preluate din bd, excel..etc
5) Cat de flexibil este toolul Indiferent de tehnologie toolul are acelasi mod de utilizare, nu se simte diferenta cand treci de automatizarea unui tip de aplicatie la altul modul de manipulare a testelor, a datelor este flexibil deasemenea 6) Integrarea cu alte tooluri - Version control support - SVN Cele de management a testelor – MTM, QC continous integration server – Jenkins (derivat din Hudson) 7) Cost Nu este free, insa costa mai putin decat alte tooluri de top – e.g. QTP are 3 editii, 2 tipuri de licente
8) Reporting Destul de detaliat, informatiile sunt clare; posibilitatea de a customiza Ar necesita imbunatatiri ca de exemplu – posibilitatea de a verifica/urmari mai multe de un singur raport in acelasi timp; export direct in alte formate 9) Test control Aspecte amintite si mai inainte - plus partea de executie a testelor remote 10) Stabilitate Releasuri pentru tehnologiile noi care apar Este un tool relativ nou (~din 2007), insa are forumuri dedicate, incepe sa aiba tot mai multi useri – este recomandat pe forumuri, si de asemeni, in cerinte pentru angajare cei de pe suport – excelenti – raspund rapid, in aceeasi zi, sau te anunta daca dureaza mai mult