Documente Academic
Documente Profesional
Documente Cultură
22
DINICĂ ROXANA DANIELA
11.03.2023
PARTEA I
➢ Ce sunt variabilele ?
- O variabila este o adresa de memorie care stocheaza o valoare reprezentata de un tip de data . Incep cu
litera mica si nu au voie sa contina cuvinte cheie din Python, sa contina spatii , sa inceapa cu cifre sau semnul
underscore_ si sunt case sensitive
- Ex: varsta = 49 #varstei i-am atribuit valoarea 49
➢ Dar constantele?
- In Python nu putem declara efectiv constante. Pur si simplu declaram variabile pe care apoi tinem minte
sa nu le modificam. Ca sa ne dam seama usor cine ar trebui sa fie constanta si cine nu, vom folosi drept conventie
denumirea constantelor in totalitate cu litere mari (de exemplu nu vom denumi o constanta abc sau Abc, ci ABC)
- Ex: PI – dearece valoarea lui PI ramane constanta
Parametru:
- O functie poate sa aiba oricati parametri, acesti parametrii sunt optionali
- Parametrii sunt niste variabile declarate. dar neinitializate . Ele vor fi initializate (adica vor primi valori),
la apelarea functiei
- O clasa este o reteta pentru crearea obiectelor. Contine actiuni posibile: metode (practic niste functii)
- Un obiect este o instanta a clasei , Self - este o modalitate de a accesa atributele definite in clasa in interiorul
acelei clase clasei
- O clasă („class”) este precum un „framework” pentru crearea obiectelor. Python e un limbaj de programare
orientat pe obiect, așa că se bazează foarte mult pe obiecte
- Constructor se asigura ca la crearea obiectelor se dau niste date fara de care obiectul nu are sens sa existe
➢ La ce ne ajută un selector? Cate tipuri cunoști?
- Un localizator permite testerilor să selecteze un element DOM HTML pe care să acţioneze. In Selenium
WebDriver avem mai multe tipuri de selectori:
ID
Name
Class name
CSS Selector
XPath
Link text
Partial link text
Tag name
- În timp ce toți acești localizatori returnează elemente individuale, se poate folosi metoda .find_elements()
pentru a găsi mai multe elemente.
➢ Ce este TDD, care sunt avantajele și ce este testarea unitară?
Avantaje:
Testarea unitara reprezinta testarea la cel mai low level, practic este o functie care testeaza o alta functie.
- Functia de test apeleaza functia testata si se asigura ca ea returneaza datele corecte, folosind un assert.
- De obicei aceasta testare este facuta de devloperi dar si un tester o poate face, depinzand de raportul de
forte dev-qa. In companiile cu mai multi angajati qa aceasta sarcina poate fi trecuta in responsabilitatea lor.
➢ Ce este BDD, care sunt avantajele? Ce este sintaxa gherkin și la ce ne ajută?
Gherkin syntax:
- Folosita mai ales in metodologia BDD (behavior driven development)
- Cuvinte cheie: Given, When, Then, And
- Cu ajutorul lor descriem comportamentului unui utilizator in aplicatia testata
Avantaje:
Toate persoanele interesate (Clienti, Manageri, BAs, Developeri, Testeri etc) vor intelege usor rapoartele generate.
Acestea reprezinta ‘living documentation’ pt. Proiect.
Focusul se muta pe functionalitatile care trebuie testate.
Stim sigur ca avem timp de teste si ca acestea nu se vor ignora deoarece avem un ‘test first approach’
De cele mai multe ori un product owner genereaza user stories care contine acceptance criteria sub forma
given, when, then. Noi trebuie doar sa le automatizam 1:1
➢ Ce este un API și care este rolul lui?
În practică, termenul „API” este utilizat în mod obișnuit pentru a se referi la API-urile web care formează legătura dintre
server și client sau între server și un serviciu de backend. Aceste API-uri acționează ca punct de acces pentru orice
serviciu din spatele lor.
-API-urile sunt destul de standardizate. Aproape întotdeauna vor fi accesibile prin HTTP și vor returna de
obicei date JSON, ceea ce înseamnă că orice limbaj de programare care poate face cereri HTTP și decodifica JSON poate
vorbi cu un API și poate obține date de pe acesta.
➢ Care sunt principalele metode HTTP? O propoziție explicativă pentru fiecare
Metodele HTTP :
GET: este cea mai folosită metodă, fiind utilizată atunci când serverului i se cere o resursă.
HEAD: se comportă exact ca metoda GET, dar serverul returnează doar antetul resursei, ceea ce permite clientului să
inspecteze antetul resursei, fără a fi nevoit să obțină și corpul resursei.
PUT: metoda este folosită pentru a depune documente pe server, folosita pentru actualizarea documentelor prin
inlocuirea completa a acestora.
POST: a fost proiectată pentru a trimite date de intrare către server pentru a crea noi documente.
PATCH - updatam date prin updatarea anumitor atribute ale obiectului (ex: din user doar prenumele)
DELETE: este o metoda prin care se sterg date de pe server.
PARTEA II
Linkul de github unde se găsește proiectul:
https://github.com/roxanadinica99/ITFactoryExam.git
Proiectul se poate clona cu comanda : git clone https://github.com/roxanadinica99/ITFactoryExam
In proiectul meu final voi construi o solutie de baza de automatizare a testării interfeței de utilizare web pentru o căutare
de bază pe siteul https://www.ask.com. (Ask este un motor de căutare)
Voi face o testare UI in Python, versiunea 3.10 , folosind Pytest si Selenium WebDriver . Utilizez browser-ul Chrome .
Am preferat sa lucrez cu editorul PyCharm.
Se poate folosi orice sistem de operare: Windows, macOS, Linux etc. Eu am Windows-ul instalat ca si sistem de operare.
E necesar Python 3.8 sau o versiune superioară. Eu am instalat Python 3.10
pipenv install behave (o librarie bdd care va interpreta si rula testele scrise in gherkin)
pipenv install behave-html-formatter (ne ajuta sa generam rapoarte bdd)
pipenv install pytest-html (pentru a genera rapoarte html )
Voi realiza testul de cautare pe web. Voi accesa pagina principală Ask. Primul meu pas va fi să încarc această pagină.Apoi, voi introduce
expresia mea de căutare “german shepherd” în bara de căutare. Odată ce căutarea este finalizată, pagina cu rezultate va fi încărcată. Verific
ca numele “german shepherd” sa fie in bara de afisare, in bara de cautare si in rezultate.
A fost nevoie sa importa cateva librarii gratuite care sa ma ajuta sa controlez Chrome: