Selenium - Deo 1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Osnove testiranja softvera

Inženjerstvo informacionih Sistema


Fakultet tehničkih nauka, 2020. godina

Osnove testiranja i uvod u testiranje GUI-a

Uvod
Softverska testiranja danas predstavljaju aktivnosti koje obuhvataju kompletan procesa razvoja i
održavanja i kao takve čine veoma važan deo cele konstrukcije softvera. Taj postupak drugim rečima
naziva se Test analiza. To je proces u kome se traga za nečim iz čega se može izvesti test informacija.

Prvi korak u izvršavanju Test analize je identifikacija Test uslova.

Test uslov je deo ili događaj komponente ili sistema koji se može verifikovati pomoću jednog ili više
testnih slučajeva. Drugim rečima, test uslov je neka karakteristika softvera koja se može proveriti
pomoću jednog ili više testova.

Kako u praksi sve može biti testirano na određeni način, neophodno je identifikovati podskup svih
mogućih testova koji će biti od značaja za proveravanje nekog testnog uslova. U skladu sa tim,
apsolutno je neophodan neki inteligentan proces koji će rukovoditi selekcijom testova, a to su Test
dizajn tehnike.

Test dizajn tehnike pružaju pomoć pri selekciji valjanog skupa testova iz skupa svih mogućih testova
za dati sistem ili dati testni uslov. Svaka od tih tehnika obezbeđuje skup pravila ili smernica koje
testeri prate pri identifikaciji test uslova i test slučajeva.

Upotrebom adekvatne test dizajn tehnike treba da se obezbedi mogućnost povezivanja testnih uslova
sa njihovim izvorom u test osnovi, što se zove sledljivost. Ona može biti:
1. Horizontalna – kroz svu dokumentaciju za dati test nivo (npr. za sistemsko testiranje)
2. Vertikalna – kroz slojeve razvojne dokumentacije (npr. od zahteva do komponenti).

Selenium

Selenium je jedan od najznačajnijih alata za automatizaciju testova i ima mogućnost integracije sa


najčešće korišćenim programskim jezicima, između ostalog i sa C# programskim jezikom. On
omogućava pisanje automatizovanih testnih slučajeva koji će se izvršavati u okviru različitih Internet
pretraživača (Google Chrome, Firefox, Internet Explorer, Safari i Opera) i na različitim operativnim
sistemima (Windows, Linux i Mac).

Selenium je besplatan alat i za njegovo instaliranje nije potrebno nikakvo prethodno registrovanje ili
skidanje nepotrebnih aplikacija sa Interneta. U sam projekat ubacuje se direktno posredstvom Visual
Studio IDE i na taj način vrlo lako može omogućiti testiranje grafičkog korisničkog interfejsa (GUI)
korišćenjem poznatog razvojnog okruženja.

Moguće je izvršiti injektovanje Seleniuma i drugih alata u bilo koji od raspoloživih projekata koje
Visual Studio razvojno okruženje nudi, međutim za potrebe jednostavnijih primera koristiće se
obična konzolna aplikacija (Console App (.NET Framework)).
Osnove testiranja softvera
Inženjerstvo informacionih Sistema
Fakultet tehničkih nauka, 2020. godina

Koraci za injektovanje Selenium-a u projekat:


1. Kreirajte konzolnu aplikaciju tipa Console App (.NET Framework) i nazovite je
GoogleTest,
2. Otvaranje NuGet Package Managera koji će služiti za importovanje neophodnih paketa –
desni klik na projekat u okviru Solution Explorer prozora i otvaranje opcije Manage
NuGet Packages (Slika 1)

Slika 1 - Prikaz odlaska do NuGet Package Manager-a

3. Pronalaženje potrebnih paketa – ulaskom u NuGet Package Manager (Slika 1)


neophodno je u okviru kartice Browse pronaći naredne pakete:
a. Microsoft.NET.Test.Sdk – osnovni skup paketa koji će omogućiti konzolnoj
aplikaciji da se na adekvatan i propisan način izvrši Build naredba koja uključuje
i sve napisane testove,
b. NUnit – najpopularniji i najčešće korišćeni framework za pisanje Unit testova svih
vrsta u okviru bilo kog od .NET jezika i prepoznavanje određene klase u programu
kao testne klase,
c. NUnit.ConsoleRunner – specijalni dodatak koji omogućava pokretanje
automatizovanog skupa testova iz specijalizovanog terminala,
d. NUnit3TestAdapter – paket koji dopunjuje prethodno pomenuti NUnit koj
omogućava izvršavanje testnih slučajeva u programu,
e. Selenium.WebDriver – osnovni paket za importovanje Selenium-a u neki
projekat pri čemu se omogućava pristupanje I testiranje aplikacijama kroz
različite Web Browser-e i
f. Selenium.WebDriver.ChromeDriver – paket koji dopunjuje prethodno pomenuti
Selenium.WebDriver I omogućava kreiranje instance Google Chrome pretraživača
I pristupanje svim njegovim elementima.
Osnove testiranja softvera
Inženjerstvo informacionih Sistema
Fakultet tehničkih nauka, 2020. godina

Prikaz instaliranih paketa iz Visual Studio IDE sa verzijama svakog od njih se može videti u
okviru kartice Installed koja se nalazi odmah pored kartice Browse u okviru kojih se mogu
pronaći svi paketi, kao što se vidi na narednoj slici (Slika 2):

Slika 2 - Prikaz instaliranih paketa

Primer 1:
Prethodno kreiranu GoogleTest konzolnu aplikaciju proširiti tako da ona testira pretragu teksta
„FTN Novi Sad“ putem Google Chrome pretraživača. Neophodno je napisati jedan test i za njega
koristiti prethodno importovane pakete.

Rešavanje zadatka:
- Atributi – u okviru rešenja zadataka javljaju se atributi SetUp TearDown i Test. Oni
predstavljaju oznake koje obezbeđuju metapodatke o odgovarajućim tipovima podataka i
operacija i instrukcijama za pokretanje programa.
1. Test – testni slučaj, pri čemu svaki od njih predstavlja jednu testnu metodu,
odnosno jedan test koji će program izvršavati,
2. SetUp – testna metoda koja će se pokretati pre izvršavanja svakog pojedinačnog
testnog slučaja i
3. TearDown – testna metoda koja će se pokretati nakon izvršavanja svakog
pojedinačnog testnog slučaja.
Osnove testiranja softvera
Inženjerstvo informacionih Sistema
Fakultet tehničkih nauka, 2020. godina
- Odsustvo koda u okviru main metode – svaki testni slučaj koji se u okviru neke klase kreira,
piše se van main metode projekta i kao takav, predstavlja klasičnu metodu koja je označena
atributom TestCase, što će kompajleru omogućiti da se ta metoda posmatra isključivo kao
jedan test.

- Test Explorer – poseban prozor koji se podrazumevano nalazi u levom delu Visual Studio
prozora i predstavlja pregled svih testova napisanih u tom projektu. Ukoliko Test Explorer
prozor nije prikazan, do njega se može doći poštujući sledeće korake ili se može videte na slici
3:
1. Kartica Test (gornji meni)
2. Opcija Test Explorer

Slika 3 - Prikaz otvaranja Test Explorer prozora

- Pokretanje testa – kada su testovi napisani i spremni za pokretanje, njih je moguće videti u
okviru prethodno opisanog Test Explorer prozora. Kako bi se oni pokrenuli, neophodno je
klinkuti na zeleni trougao u gornjem levom uglu Test Explorer-a (Run All Tests) ili pogledati
sliku 4:
Osnove testiranja softvera
Inženjerstvo informacionih Sistema
Fakultet tehničkih nauka, 2020. godina

Slika 4 - Pokretanje testova

Rešenje zadatka:

1 using NUnit.Framework;
2 using OpenQA.Selenium;
3 using OpenQA.Selenium.Chrome;
4 using System;
5 using System.Collections.Generic;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9
10 namespace GoogleTest
11 {
12 class Program
13 {
14 // Definisanje objekta koji će omogućiti pristupanje Google Chrome
15 pretraživaču i dalji rad sa istim
16 IWebDriver driver = new ChromeDriver();
17 static void Main(string[] args)
18 {
19 }
20
21 // Metoda koja se izvršava pre testne metode
22 [SetUp]
23 public void Initialize()

24
25
26
27
28 {
Osnove testiranja softvera
Inženjerstvo informacionih Sistema
Fakultet tehničkih nauka, 2020. godina

29 // Upotrebom objekta kreiranog na vrhu klase Program, izvršavanje se usmerava


30 na Google
31 // Usmeravanje se vrši pomoću metoda Navigate() i GoToUrl() čime
32 sam program odlazi na proizvoljnu web lokaciju
33 driver.Navigate().GoToUrl("http://www.google.com");
34 }
35
36 // Testna metoda koja generiše jedan testni slučaj
37 [Test]
38 public void ExecuteTest()
39 {
40 // Prethodno je objekat driver (pozivom metode Initialize())
41 izvršavanje programa doveo do početne strane Google-a
42 // Metodom FindElement se u okviru te stranice može pronaći bilo
43 koji od elemenata stranice na kojoj se program nalazi
44 // Koristi se metoda By.Name kako bi se pretraga elemenata
45 izvršila prema imenu
46 // U ovom primeru, traži se element gde će se ukucati vrednost za
47 pretragu na Google-u, odnosno prozor za to čije je ime "q"
48 // Metoda SendKeys će u okviru prethodno pronađenog elementa
49 upisati vrednost za pretragu i pokušati da istu pronađe na Google-u
50 driver.FindElement(By.Name("q")).SendKeys("FTN Novi Sad");
51
52 // Ime nekog elementa stranice može se pronaći tako što će se
53 otići u okviru Google Chrome pretraživača na željenu stranicu
54 // pritisnuti F12 i u okviru html koda stranice pronaći element
55 koji tražite (u ovom slučaju to je "q"
56 }
57
58 // Metoda se izvršava nakon testne metode
59 [TearDown]
60 public void Close()
61 {
62 // Konekcija ka Google sajtu se ovde prekida i objekat je spreman
63 za naredni test
64 driver.Close();
65 }
66 }
67 }

You might also like