Test automatici con Jubula

Test automatici con Jubula

Eclipse Jubula è un nuovo tool di testing automatico che si aggiunge all’universo Eclipse, permettendo la creazione e l’esecuzione di test automatici delle GUI.
Jubula è costituito da un insieme di plugins che permettono il testing anche di applicazioni basate su architetture RCP.
In questo tutorial vedremo come lavorare con Jubula per creare, organizzare ed eseguire test di interfaccia su un semplice prodotto RCP.

Il tutorial è suddiviso in tre sezioni:
– La creazione di una applicazione RCP minimale
– Impostare correttamente l’AUT agent per operare tramite Jubula. (L’AUT agent è il meccanismo con cui Jubula comunica con l’applicazione che vogliamo testare.)

Step 1: Impostazioni iniziali

Come primo passo è necessario scaricare la versione di Eclipse orientata al Test:
Eclipse for Testers (Indigo Packages) The Eclipse Jubula Download
Download_Eclipse_Jubula

e l’applicazione Jubula Standalone da: The Jubula StandAlone Download
Download Jubula Standalone

Step 2: Creazione del progetto

Per iniziare creiamo il nostro progetto. Da una istanza di eclipse seguiamo i seguenti passi:
Dal menu “File” selezioniamo New” e poi “Plug-in Project”
(File/New/Project/Plug-in Development/Plug-in Project):

Nominiamo il plugin”com.rcpvision.rcpmailsampleÔÇØ.

Poi, confermiamo l’intenzione di creare una “rich client application”

E, in ultimo, scegliamo il template: ÔÇ£RCP Mail TemplateÔÇØ :

Possiamo decidere, selezionando “Yes”, di cambiare prospettiva e visualizzare la prospettiva dedicata allo sviluppo tramite plugin.
Viene così mostato il “MANIFEST.MF” con le informazioni indicanti le dipendenze da altri progetti e le opzioni per gli exports.
Da questa pagina è possibile gestire il progetto e lanciarlo: basta un semplice click su “LaunchÔÇØ come mostra la figura:

Step 3: Creazione del prodotto

Per usare Jubula è necessario creare il prodotto della nostra applicazione.
Iniziando con
(File/New/Product Configuration)

creiamo la configurazione per il prodotto. Nominiamolo “SimpleMail.product” e per concludere click su Finish e nel plugin com.rcpvision.rcpmailsample apparirà il file SimpleMail.product.

A questo punto bisogna esportare il Plugin Project:


E il risultato sarà un prodotto come questo illustrato in figura:

Step 4: Preparare e lanciare l’AUT Agent

AUT (Application Under Test) Agent è il demone di Jubula che fornisce il punto di aggancio tra l’esecutore del test e l’applicazione da testare.
Una volta che l’AUT Agent è stato avviato, è possibile realizzare un mapping degli oggetti grafici ed è possibile iniziare la fase di osservazione ed esecuzione dei test.

Step 4.1: Preparare l’AUT Agent

Lanciare ÔÇ£setup.exeÔÇØ per installare l’AUT AGENT.

Accettare e poi cliccare sul bottone “Next”

ancora “Next” ed infine…

Step 4.2: Lanciare l’AUT Agent

Per eseguire l’AUT Agent su Windows è necessario avere i diritti di amministrazione:

Ad installazione avvenuta sarà presente un icona verde sulla toolbar.

Step 4.3: Configurare un Prodotto per Jubula

Per permettere a Jubula di lavorare con l’applicazione RCP Mail è necessario estrarre l’archivio rcp-support.zip dalla directory di installazione di Jubula (AUT Agent) e copiare il contenuto nella cartella del prodotto (plugins folder).
Questo aggiungerà il plugin di aggancio di Jubula al prodotto, dopo averlo attivato modificando il file configuration/config.ini nella directory del prodotto.
C’è una lunga riga nel file che contiene la lista dei osgi.bundles, ed è necessario aggiungere il plugin Jubula alla fine di essa:

Infine, dopo tutti questi passi, Jubula sarà pronto per lavorare!

Step 5: Working with Jubula

Siamo finalmente pronti per aprire Jubula e creare i primi test.

Step 5.1: Avviare Jubula

Lanciare Jubula:

Step 5.2: Creazione di un nuovo Test Project

Guardando sulla Problem view, si troverà un suggerimento su cosa è necessario fare:

Anche se non dice come creare un nuovo progetto, si può trovare la seguente voce sul Test menu:
(Test/New)

Dare un nome al progetto e scegliere ÔÇ£rcpÔÇØ come toolkit e cliccare sul bottone ÔÇ£NextÔÇØ.

Pitfall: Assicurarsi che il test specifichi una configurazione di tastiera English (United States) o German (Germany). Questi sono le sole due configurazioni fornite out-of-the-box in Jubula al momento.

Ora è necessario dire a Jubula qual è l’oggetto del test (Jubula lo chiama ÔÇ£AUTÔÇØ):
Dare un nome all’AUT Agent e scegliere “rcp” come toolkit.

Cliccare “Proceed” per chiudere la dialog e continuare a lavorare sulla dialog dello wizard del New Project.
Ora è possibile specificare la configurazione dell’AUT semplicemente cliccando su “Next” oppure su “Finish” per terminare la configurazione momentaneamente e poi concluderla successivamente tramite “Project -> Properties”.

Per chiudere il menu di configurazione scegliere “Finish”.
Si può notare che un nuovo progetto “SimpleMailtest” è presente nella sezione “Test Browser”

Step 5.3: Configurare AUT per Test Project

Selezionando “Simple Test Mail” cliccare su

Test-> Properties

Click su “Edit”

Poi su “Add”

Digitare un nome per l’AUT Agent Host e selezionare il file .exe del prodotto nel campo “Executable File Name”.

Cliccando su “OK” viene creato il test Project. Per connettere l’AUT agent è necessario cliccare sulla freccia nera accanto all’icona , scegliere l’opzione “localhost: 600000”.

Ora, nella barra degli strumenti, cliccando sul tasto ÔÇ£Connect to AUT AgentÔÇØ, si stabilisce la connessione con l’AUT agent configurato precedentemente:

Confermare

Cliccare su “Proceed” per ottenere il prodotto “RCP Mail Template”.

 

Step 6: Test Con Jubula

Alla fine di questa sezione vedremo come creare ed eseguire alcuni test cases. Come prima azione testiamo l’apertura di una nuova “Message View”.

Ci sono tre modi differenti per aprire una nuova “Message View”:

Caso 1:
Usando la Menu Bar: “File-> Open Another Message View Command”

Caso 2: Usando il bottone nella barra degli strumenti

Caso 3: Usando la shortcut: CTRL+2

Test Case 1

Obiettivo del primo test case è riprodurre l’azione:
File  Open Another Message View

registrando il comando con Jubula.
Precondizioni: L’applicazione da testare (RCP Product) deve essere attiva.

Passi:
Dall’ambiente di test Jubula cliccare su l’icona a forma di telecamera JubulaCameraICon.png
Nominare il test case ÔÇ£OpenNewMessageViewÔÇØ

e confermare la scelta cliccando sul bottone ÔÇ£OkÔÇØ.
Jubula aprirà la perspective ÔÇ£TestCaseÔÇØ con il tab ÔÇ£OpenNewMessageViewÔÇØaperto nell’editor e nella view ÔÇ£Test Case BrowserÔÇØ comparirà l’elemento ÔÇ£OpenNewMessageViewÔÇØ

Dopo qualche secondo la finestra ÔÇ£Observation ConsoleÔÇØ verrà aperta nell’angolo basso dello schermo. In questa finestra saranno elencati tutti i passi compiuti durante la registrazione. Ora non resta altro che selezionare il prodotto da testare (RCPMail) e selezionare ÔÇ£File-> Another Message ViewÔÇØ. Verrà così creato una nuova Message View nel prodotto RCPMail

e nella ÔÇ£Observation ConsoleÔÇØ saranno aggiunti due nuovi steps:

Per terminare la registrazione cliccare sull’icona .
Salvare il test case e nella prospettiva Test Case saranno aggiunti due steps al primo test creato.
Ora non rimane altro che creare una nuova Test Suite: dalla view ÔÇ£Test Suite BrowserÔÇØ, tasto destro sulla cartella ÔÇ£Test SuitesÔÇØ e cliccare su:

New-> New Test Suite

Rinominarla in ÔÇ£First Test SuiteÔÇØ e confermare cliccando su ÔÇ£OKÔÇØ.

Doppio click sulla ÔÇ£First Test SuiteÔÇØ appena creata per aprire l’editor e trascinare il test case ÔÇ£OpenNewMessageViewÔÇØ nella test suite. Salvare il test project:

Per eseguire il test registrato cliccare sull’icona verde nella view ÔÇ£Test Suite BrowserÔÇØ e scegliere ÔÇ£First Test Suite’

Test Case 2

Ripetere i passi precedenti per creare un nuovo Observed test case, registrare i passi per simulare il click sull’icona a forma di + verde e il risultato sarà simile a quello illustrato in figura:

Test Case 3

Per creare questo test case è necessario scegliere un paio di template dalla cartella dei test case nella views “Test Case Browser”. Seguire queste semplici istruzioni: Dalla cartella ÔÇ£Test CasesÔÇØ in ÔÇ£Test Case BrowserÔÇØ aprire ÔÇ£unbound_modules_concrete-> Actions (basic)  Input via Keyboard  Application  Key CombinationÔÇØ e selezionare i due test cases
<ub_app_pressAnyKeyCombination_CTRL[BASE_KEY]>
e
<ub_app_pressAnyKey>[MODIFER_KEYS;BASE_KEY]>.

Il risultato sarà:

Per completare la configurazione del test case
<ub_app_pressAnyKeyCombination_CTRL[BASE_KEY]> modificare

Parameter Name = BASE_KEY
e
Parameter Value = 2

Per il test case
<ub_app_pressAnyKey>[MODIFER_KEYS;BASE_KEY]>

inserire:
Parameter Name = MODIFIER_KEYS
Parameter Value = control

Parameter Name = BASE_KEY
Parameter Value = BASE_KEY

Test Suite

Il primo test case può essere rinominato in “OpenNewMessageView_FileMenu”.
Aggiungere i Test Case 2 and Test Case 3 nella Test Suite e si otterrà una situazione simile a quella in figura:

Eseguendo la Suite di Test saranno aperte tre Message Views nel prodotto RCPMail .

Buon divertimento con Jubula!

2015-04-22T15:35:23+00:00By |

9 Comments

  1. Ken 27 marzo 2012 at 00:04 - Reply

    Hi,

    I am trying this with an eclipse RCP workspace based application. The recording pieces all work for me, but my application doesn’t seem to be listening when I try to execute the tests. Do you have any ideas I might try?

    • Francesca Mastinu 29 marzo 2012 at 16:53 - Reply

      Hi Ken,
      have you checked off that your application appears in the “Running AUT’s” view?
      If no, probably you have to verify that the AUT Agent configurations are correct, in addition you should be sure that the “org.eclipse.rc.rcp” plugin has been added in the config.ini file.
      I hope this will help.

  2. Federico Alcantara 2 maggio 2012 at 19:18 - Reply

    Why is this SOOOOO complicated and prompt to not working.
    I tried Jubula last year and couldn’t make any useful test.

    Won’t touch it until it has more sense.

  3. Oliver 15 maggio 2012 at 14:48 - Reply

    Hi,

    recorded a test successfully, but if I enter a url like “http://localhost:8080”, the test inserts “http;77localhost;8080”. There is something wrong with shift key.

    Regards
    Oliver

  4. Eugene 26 agosto 2012 at 12:14 - Reply

    It will be good if you talked through how to use the Eclipse Juno Add-On for Jubula (i.e what you will use from within Eclipse). Another point is, this focuses on Windows only and I use Mountain Lion and Ubuntu. (No exes)

  5. Robert 19 dicembre 2012 at 13:12 - Reply

    Hi,

    I don’t know how the situation was back in January, but following your download instructions now (Dec 12) I couldn’t work through the tutorial:

    – Jubula standalone now seems to be the same as Eclipse for Testers
    – Using Eclipse for Testers, you can not create the plugin project you mention. For that, you need Eclipse for RCP/RAP developers.

    Maybe you would like to correct the intro of your article. The rest of the tutorial is very good to get a first set of tests running. Thank you!

  6. Katu 20 dicembre 2012 at 11:43 - Reply

    Hi,
    great tutorial very easy to follow and detailed. I did everything using windows 7 64 bits and the RCP_MAIL_Product works fine.
    I can record some steps like expanding the mails tree. However, when I’m recording and opening the File menu or clicking a toolbar icon, I get the following error:

    An error has occurred. See error log for more details.
    org.eclipse.ui.internal.PartPane.getToolBar()Lorg/eclipse/swt/widgets/Control;

    Any idea to solve this? thank you.

    It would be great a similar tutorial for swing applications.

  7. chandra sekhar 2 gennaio 2013 at 11:17 - Reply

    I am about to execute my RCP application( sample mail app), i have loaded my project but it is not finishing…. any reason why it is not loading comletely ……… i have waited around 10 mins but i could not make,

    I have executed the same steps with a swing app it is executing fine… so can any one tell me what would be the reason or sugest me what i have to do to execute the test case.

  8. Santosh Bhutkar 31 gennaio 2013 at 10:34 - Reply

    I want to check the check-box in table in RCP from Jubula. Can anybody help?

Leave A Comment