facebook-pixel

Adatvezérlés 3.

Robot Framework tippek trükkök

Bevezető

Akik kitartóak voltak, most elolvashatják a jól megérdemelt Robot Framework-ös megoldást az előző cikkekben felvetett problémákra. Az előző rész itt található.

Ismétlésféleképpen

Az előző részben egy egyszerű Python program-ot kezdtünk tesztelni. A program feladata az lenne, hogy argumentumnak megadott három hosszértékről eldöntse, hogy lehetnek-e egy háromszög oldalai. Az előző részben írtunk is erre egy tesztesetet és a tesztadatok variálásával még néhány tesztesetet megterveztünk.

Arra is rájöttünk, hogy „de jó lenne, ha szebben is lehetne”. Itt tartunk, innen folytatjuk.

Robot Framework és az adatvezérlés

Történelmi visszatekintés

Amikor anno tanultam az adatvezérlést, akkor a legtöbb eszközbe nem volt ilyen tudás beépítve, úgy kellett rábeszélni őket, hogy legyenek szívesek megcsinálni, amit szeretnénk. Ez lényegében néhány jól irányzott FOR ciklus megírását jelentette. A Robot Frameworkben is sokáig ez volt a megoldás. Mai napig is alkalmazható lenne, de van vele egy nagy gond, azon kívül, hogy nehézkes és csúnya megoldás. A gond az, hogy a tesztadatok által meghatározott teszteket egyetlen tesztesetként kezeli. Ha az egyik hibát dob, akkor az összes tesztünkre hibajelölő (FAILED) kerül. Ezután lehet a logból nyomozni, hogy melyik tesztadatokkal volt valójában gond.

Szerencsénkre van már egy nagyon jól használható könyvtár, ami a FOR ciklus írás tudományának a terhét leveszi a vállunkról.

Megjegyzés: Van egy beépített lehetőség a Robot Frameworkben, amivel lehet adatvezérelt teszteket írni, de ez nem képes külső adatforrásból beolvasni a tesztadatokat, így ezt a lépcsőfokot, most átugorva, rögtön a külső könyvtár használatát nézzük meg.

Telepítsük a Data Driver könyvtárat

Mielőtt belevágunk, fel kell telepítenünk egy könyvtárat, ami az adatvezérlést tudja megoldani. Ez a telepítés „szerteágazó” attól függően, hogy milyen verzióval rendelkezünk a Python-ból, vagy akarunk-e Excel táblát is kezelni. Itt a teljes leírás: https://github.com/Snooz82/robotframework-datadriver

Mi most úgy vesszük, hogy Python 3.6. vagy nagyobb verziónk van és szeretnénk Excelt is kezelni:

Becsaptalak, nem is igazi könyvtár

A Data Driver nem úgy viselkedik, mint egy rendes, valamirevaló könyvtár. A kulcsszókészlete annyira szegényes, hogy nincs is. J A DataDriver a rendes Robot Framework működést manipulálja úgy, hogy új teszteseteket hoz létre az adatvezérelt teszteléshez szükséges adatokat tartalmazó adatfájl alapján. Az adatfájlok .csv , .xls vagy .xlsx fájlok lehetnek.

Hogyan kell használni? (elmélet)

  1. Ha a DataDriver könyvtárt használod, akkor azokat a lépéseket, amiket tesztesetként szeretnél végrehajtani, bele kell tenni pontosan egy kulcsszóba, úgy, hogy a tesztadatoknak egy-egy paramétert feleltetünk meg.
  2. El kell készíteni a tesztadatokat tároló állományt.
  3. A Settings részben két dolgot kell megmondani:
    1. Hol éri el a robot a tesztadatokat. Ez lényegében a tesztadatodat tároló csv vagy Excel állomány megadását jelenti.
    1. Melyik az a kulcsszó, amit a teszteseteknél szeretnénk használni. (Amit 1. lépésben létrehoztunk)
  4. A tesztesetek (Test Cases) részben megadunk egy minta tesztesetet.

Hogyan kell használni? (gyakorlat)

Az előző részben használt (hibás) python programot fogjuk tesztelni. Ez így néz ki:

1.    Kulcsszó:

Az a jó hír, hogy az előző részben elkészített kulcsszó tökéletesen megfelelő lesz nekünk, nem kell semmit alakítani rajta. Szóval csinálj mindent úgy, mint „normál” esetben.

2.    Tesztadat állomány

Ez sem túl nehéz 🙂

Akár csv, akár Excel megoldást választasz, az első sor a fejléc sor. Ez sorban a következő elemeket tartalmazza:

Fejlécsor tartalmaMegjegyzés
*** Test Cases ***Konkrétan ez a mező neve. Ebben az oszlopban lesznek a tesztesetek nevei. Ha nem akarjuk elnevezni a tesztesetet, akkor üresen hagyható.
Paraméterek neveiA minta (template) kulcsszó paraméterei. pl.: ${expected_result} Ezekben az oszlopokban lesznek a paraméterekhez tartozó értékek

Egy minta táblázat (Itt csak az olvashatóság miatt formáztuk, de Excelben nem kell semmit formázni):

*** Test Cases ***${a}${b}${c}${expected_result}
Real triangle345triangle
Not real triangle: a+b<c1510not triangle
Not real triangle: b+c<a 1051not triangle
Not real triangle with negative side: b<09-13not triangle
 1105not triangle

Megjegyzés: Excel esetén adj nevet a munkalapnak! (Pl.: ddt_data)

3.    Settings rész

Esetünkben így fog kinézni a Settings rész:

Magyarázatok:

Library    Process

A Process könyvtár szükséges a parancssori futtatáshoz. Ennek segítségével tudjuk a Python programot futtatni. (Az előző részben már volt erről szó.)

Library    DataDriver    file=ddt_testdata.xlsx    sheet_name=ddt_data       

A DataDriver könyvtár. A file paraméter a tesztadat állományt adja meg. Excel esetén a munkalap nevét is meg kell adnunk a sheet_name paraméterben.

Test Template    Is Triangle

A minta (template) kulcsszó meghatározása.

4.    Test Cases rész

Itt fontos, hogy csak a teszteset neve szerepelhet, a tesztesetnek nincs „teste”, nincsenek lépései. A riportban és a logban látszódó teszteset név attól függ, hogy mi szerepel a tesztadatokban

  • Ha egy tesztesetrekord nem tartalmaz teszteset nevet, akkor ehhez a rekordhoz tartozó tesztfutásnál az itt megadott név fog látszani a riportban és a futási logban.
  • Ha egy tesztesetrekord tartalmaz teszteset nevet, akkor a tesztesetrekordban megadott név fog látszani a riportban és a futási logban.

A teszteset nevébe „belefogalmazhatjuk” a paraméterértékeket. Ez egy jó lehetőség arra, ha nem akarjuk a tesztadatoknál megadni a tesztesetek nevét, de azt szeretnénk, hogy egyértelmű legyen a riportban, hogy milyen adatokkal történt a futás.

Példa:

Összefoglalás

Lássuk egybe a kódot:

A robot és Excel állományt itt is megtalálod: https://gitlab.com/passed_sharing/robot_framework/-/tree/main/Adatvezerles

Győzelem!

Szép, működik és minden egyes tesztrekord külön tesztesetként látható a riportban és a logban. Megvannak a hibák? 🙂

Az adatvezérlés egy nagyon hatékony eszköze a tesztautomatizálásnak. Lehet ez még hatékonyabb is? Lehet! Például ezekkel:

  1. Adatkombinációk

A DataDriver könyvtár képes együttműködni a Microsoft PICT eredményével. (A PICT „adatvariáló” eszközről ITT olvashatsz: )

  • Automatizált tesztadat készítés

Van arra mód, hogy bizonyos tesztadatokat szabályozottan, de véletlenszerűen hozzunk létre. Ez a téma megér még egy cikket. Hamarosan… 🙂

Jó tesztet!

Hajrá!

Ármin

Megosztás

Facebook
LinkedIn
Twitter

Nem szeretnél lemaradni az új bejegyzésekről?

Tartalomjegyzék

Érdekel a tesztelés világa?

Dolgozz velünk hazai és nemzetközi projekteken

egy csoport ember ül egy asztalnál laptopokkal

Várj, ne maradj le legújabb szakmai cikkeinkről

Iratkozz fel hírlevelünkre és minden hónapban elküldjük a legizgalmasabb cikkeket

egy laptop számítógépet tartó szemüveges férfi
egy süti csokireszelékkel
Tájékoztatjuk, hogy a honlap felhasználói élmény fokozásának érdekében sütiket alkalmazunk. A honlapunk használatával ön a tájékoztatásunkat tudomásul veszi.