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!

This entry was tagged . Bookmark the permalink.

9 Responses to Test automatici con Jubula

  1. Ken says:

    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 says:

      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 says:

    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 says:

    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 says:

    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 says:

    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 says:

    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 says:

    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 says:

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

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *


*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>