ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 149
Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 81
Abonament PDF

Automatizarea proceselor folosind UFT și Jenkins

Anda Sorina Laakso
anda-sorina.laakso@microfocus.com



PROGRAMARE

Unified Functional Testing este un tool de testare automată, folosit în testarea funcțională a aplicațiilor desktop, web sau mobile. UFT-ul acoperă o gamă largă de tehnologii, precum: Java, .Net, Oracle, Web Forms, Qt etc. Testarea se bazează pe un limbaj de scripting pentru automatizarea aplicațiilor, numit VBScript. Furnizează atât funcții de record cât și funcții de replay. Poate fi integrat cu tooluri precum ALM Quality Center.

Continuous integration

Prin continuous integration înțelegem setul de practici prin care dezvoltatorii software integrează în mod frecvent codul dezvoltat de obicei într-un repository comun. Fiecare integrare de cod este ulterior verificată prin builduri automate, detectând în acest fel, posibilele erori într-un timp foarte scurt. 

Practici:

Cum se realizează acesti pași:

Procesele de continuous integration (CI) și continuous delivery (CD) au devenit parte integrantă a seturilor de "best practices", făcând astfel aplicațiile în curs de dezvoltare gata de lansare în orice moment și oferind posibilitatea livrării rapide în producție a noilor feature-uri/schimbări.

Diferența dintre CI și CD

Continuous Integration

Procesul de integrare continuă se referă la modul de integrare a schimbărilor provenite de la mai mulți developeri, chiar și de câteva ori pe zi. Combinat cu testarea automată, integrarea continuă asigură fiabilitatea codului dezvoltat.

Continuous Delivery

Livrarea continuă se referă la modalitatea prin care te asiguri că aplicația dezvoltată este mereu gata de lansare în mediul de producție. Aceasta înseamnă că developerii nu sunt singurii implicați în acest proces de livrare, alături de ei fiind și testeri, administratori de baze de date, administratori de sistem și utilizatori. Procesul de CD reprezintă o extensie a continuous integration, însemnând că pe lângă automatizarea buildului și a testelor, este automatizat și procesul de release, iar aplicația poate fi lansată în orice moment.

Jenkins

Jenkins este un server open-source dezvoltat în Java, care este utilizat pentru automatizarea proceselor de dezvoltare software. Jenkins este de fapt toolul prin care se realizează procesul de continuous integration.

ALM Quality Center

ALM Octane (Application Lifecycle Management) este o platformă web de gestionare a ciclului de viață al aplicațiilor, care permite echipelor să colaboreze cu ușurință, să gestioneze pipeline-ul de livrare a produselor și să vizualizeze impactul schimbărilor realizate. Este un tool care oferă suport în dezvoltarea aplicațiilor de la faza de planificare, preluare cerințe, până la testare și lansare.

Pluginul Application Automation Tools

Acest plugin realizează integrarea dintre Jenkins și diverse produse Micro Focus. Folosind pluginul, userul poate crea și utiliza servicii virtuale, poate executa teste de performanță cu Performance Center sau LoadRunner, teste funcționale cu ajutorul UFT. De asemenea, execută teste în propriul laborator (ALM Lab Management) și realizează teste pe device-uri mobile. Pluginul permite încărcarea rezultatelor testelor în ALM Octane. De asemenea, utilizatorii ALM Octane pot să urmărească joburile de tip pipeline direct din interfața Jenkins.

Pluginul a fost implementat în Java, fiind un proiect de tip Maven. Cel care lansează UFT-ul pentru a rula testele un tool numit HpToolsLauncher, aplicație de sine stătătoare dezvoltată în C#. Pentru rapoarte UFT din interfața Jenkins, cât și formurile prezente la build step sunt implementate în jelly.

Toate datele introduse la build step, în pagina de configurare a unui job, sunt preluate și salvate într-un fișier text (exemplu  de denumire de fișier: props04032019102215010.txt), acesta fiind folosit ca input data de către aplicație. HpToolsLauncher creează un scheduler, lansează UFT-ul, se rulează testele, iar la final, colectează rezultatele acestor teste într-un alt fișier, în format xml (exemplu: Results04032019102215010.xml).

După cum am menționat anterior, fișierul de proprietăți conține setările din interfață completate la build step. Dintre acestea, cea mai importantă proprietate se referă la run type (File system sau ALM), care afectează modul în care se comporta aplicația.

Exemplu de fișier de proprietăți:

RunType=Alm
almRunHost= localhost
almTimeout=-1
almDomain=Default
almProject=Test_project
almPassword=Fov/e1Vq1y+3C/cr2+KtSw\=\=
TestSet1=Root\\Nike\\NikeTS\\OpenNotepad
almRunMode=RUN_LOCAL
almUserName=admin
almServerUrl= http://:8080/qcbin 
resultsFilename=Results24022017093804464.xml 

Fișierul rezultat conține următoarele informații:

Perechea fișier de proprietăți-fișier de rezultate se creează simultan, astfel încât ele pot fi identificate prin același timestamp comun: props04032019102215010.txt, Results04032019102215010.xml. Ambele fișiere sunt disponibile în folderul workspace din directorul de instalare Jenkins:

C:\Program Files (x86)\Jenkins\workspace\Job name

Tot în acest workspace este copiat și executabilul. Pentru fișierul rezultat, datele sunt colectate fie din results.xml sau run_results.xml, ambele generate de către UFT (results.xml pentru RunResultsViewer și run_results.xml pentru raportul HTML).

Cerințe:

Ce oferă pluginul Application Automation Tools

Printre feature-urile cele mai interesante ale acestui plugin, referitor la partea de integrare cu UFT-ul, se regăsesc următoarele:

Abilitatea de a obține rezultatele testelor în Jenkins chiar și atunci când un job a fost oprit anormal.

Tipologia de teste care pot rula cu acest plugin

Exista patru tipuri de teste rulate cu ajutorul acestui plugin: din file system, din ALM Octane, din ALM Lab Management și din ALM Lab Environment Preparation.

În continuare, se vor prezenta fără a se insista asupra detaliilor, două categorii de teste și setările necesare pentru rularea acestor teste: rularea de pe file system și rularea din ALM.

Rularea testelor din file system

Procesul prin care putem rula teste funcționale de UFT este următorul:

  1. Crearea unui nou job și a unui proiect de tip free-style-project ;

  2. Alegerea tipului de task : Execute Micro Focus tests from file system (Build -> Add build step) ;

  3. Completarea pathului testelor;

  4. Click Apply pentru a salva configurarea aleasă;

  5. Adăugarea un pas suplimentar precum arhivarea rezultatelor:

a. Salvarea rezultatelor pentru testele care nu au trecut;

b. Salvarea rapoartelor indiferent de rezultatul testelor;

c. Fără salvarea rapoartelor.

6 Rularea sau programarea rulării testelor la fel ca orice alt job de Jenkins.

La test path se poate specifica un singur test, un set de teste sau un fișier de tip mtbx care conține mai multe teste ce urmează a fi rulate.

Un exemplu de astfel de fișier aveți mai jos:

<Mtbx>
 <Test name="test1" path="c:\tests\APITest1">
  <Parameter name="A" value="abc" type="string"/>
 </Test>
 <Test name="test2" path="${WORKSPACE}\test2">
  <Parameter name="p1" value="123" type="int"/>
  <Parameter name="p4" value="123.4" type="float"/>
 </Test>
</Mtbx>

Acest tip de fișier poate conține și același test multiplicat, dar având parametri diferiți.

Rularea testelor în paralel în mai multe environmenturi (parallel runner)

Jenkins poate fi configurat astfel încât să ruleze o serie de teste secvențial pe web sau mobil, în mai multe medii în paralel.

Când este configurat, fiecare test este executat secvențial. În timpul executării fiecărui test, environmenturile multiple sunt testate în paralel. Pentru aceasta opțiune se alege la build step ca tip de task "Execute Micro Focus tests from file system" și se selectează opțiunea "UFT parallel running mode". După aceasta, se definesc testele și environmenturile paralele.

Pentru a defini testele paralele:

Selectarea environmenturilor paralele:

Pentru a vizualiza rezultatele testelor rulate:

Rularea testelor funcționale din ALM

Pentru a rula teste funcționale din ALM, în secțiunea de build alegeți ca build step opțiunea "Execute Micro Focus functional tests from Micro Focus ALM".

Completați formul cu toate informațiile necesitate de ALM, printre care cele importante sunt: serverul (preconfigurat anterior Jenkins -> Manage Jenkins -> Configure system), credențialele, domeniul și proiectul.

Dacă este specificat și timeoutul, după expirarea acestuia, jobul va eșua. Rularea prin ALM oferă posibilitatea rulării testelor local, remote sau pe un host specificat. În cazul rulării pe un host remote, acesta trebuie să aibă instalat UFT.

Concluzii

Acest plugin oferă o modalitate ușoară de a vă integra testele UFT cu Jenkins, astfel încât să puteți beneficia de toate avantajele integrării continue a rapoartelor testelor și datelor anterioare. De asemenea, vă permite vizualizarea rezultatelor direct in interfață, dar și arhivarea și descărcarea lor.

Resurse suplimentare

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects