You are on page 1of 28

Testiranje softvera

PyAutoGui
PyAutoGui

• Poznavanje različitih Python modula za uređiva je excel tabela,


preuzimanje datoteka i pokretanje programa je korisno, ali ponekad
jednostavno nema modula za aplikacije sa kojima morate raditi
• Najbolji alati za automatizaciju zadataka na raču aru su programi koji
se pišu tako da se direktno ko troliše tastatura i iš. Ovi programi
mogu da ko trolišu druge aplikacije tako što im šalju virtualne preči e
i klikove iša, justpython3- kao da sedite na raču aru i sami
komunicirate sa aplikacijama. Ova tehnika je poznata kao grafička
automatizacija koris ičkog interfejsa ili automatizacija GUI
PyAutoGui

• Sa automatizacijom GUI, programi mogu uči iti sve što i korisnik koji
sedi na raču aru
• Pomislite na GUI automatizaciju kao programiranje robotske ruke.
Možete programirati robotsku ruku da tipka na tastaturi i pomera iš
• Ova tehnika je aročito korisna za zadatke koji uključuju mnogo
besmislenog klikom ili popunjavanjem formi
• Modul PyAutoGui ima funkcije za simuliranje kretanja iševa, klikova
dugmadi i skrolovanja iša. Ovo poglavlje pokriva samo podgrupu
funkcija PiAutoGUI; ožete pro aći kompletnu dokumentaciju na
http://piautogui.readthedocs.org/.
PyAutoGui

• Modul PyAutoGui ože poslati virtualne pritiske na tastaturu i klikove


iša na Windovs, OS X i Linux. U zavisnosti od operativnog sistema
koji se koriste, ožda je potrebno instalirati neke druge module
(nazvane zavisnosti) pre nego što se instalira PyAutoGUI
• Za Windows:

• Za ostale operativne sisteme ožete pro aći u oficijalnoj


dokumentaciji
PyAutoGui

• Moguće je reći skripti da sačeka posle svakog poziva funkcije, što vam
daje kratak period da se preuzme kontrola nad iše i tastaturom
ako ešto krene naopako
• PyAutoGui takođe ima sigurnosnu funkcionalnost. Pomeranje kursora
iša u gornji levi ugao ekrana dovelo bi do toga da PyAutoGUI
podigne izuzetak pyautogui.FailSafeException. Program ože ili da
handle-uje ovaj izuzetak sa try i except ili dozvoli da program prestane
sa radom usled izuzetka. U svakom slučaju, sigurnosna funkcija će
zaustaviti program ako brzo pomerite išem
PyAutoGui

Nakon podešava ja pyautogui.PAUSE = 1,


svaki poziv PyAutoGUI funkcije će čekati
jednu sekundu nakon što izvrši svoju akciju

O ogućava je sigurnosne funkcionalnosti


unutar skripte – globalna promenljiva
FAILSAFE
PyAutoGui
• Lokacije na ekranu se odnose na X i Y koordinate. X koordinata poči je
sa 0 na levoj strani i povećava se udesno. Za razliku od tu ače ja u
matematici, Y koordinata poči je sa 0 na vrhu i povećava se ka dnu
X se povećava
0,0

Y se povećava

1920 x 1080 ekran

1919,1079
PyAutoGui
• size() – vraća rezoluciju ekrana
• position() – vraća X i Y koordinatu kursora iša
PyAutoGui
• Pokreti iša
• moveTo() – pomera kursor iša na X i Y celobrojnu koordinatu koja joj
se prosledi (ako se prosledi None – trenutna pozicija iša na datoj
osi)
• Normalno se kursor iša odmah prebaci na nove koordinate. Ako
želite da se iš postepeno kreće na novu lokaciju, prosledite treći
argument za vreme trajanja (u sekundama) kretanja sa jedne lokacije
na drugu
• moveRel() – kretanje kursora iša relativno u odnosu na trenutnu
poziciju
PyAutoGui

Šta će da radi ovaj dio koda


PyAutoGui
• Funkcije dragTo() i dragRel() primaju slič e parametre kao i moveTo() i
moveRel(). Kao dodatak, imaju „ utto “ ključ u reč koja ože biti
postavljena na „left“, „ iddle“ i „right“, u zavisnosti od toga koje
dugme želi o da bude stisnuto dok se vrši prevlače je
PyAutoGui
• click() – simulira jedan, levi klik iše na trenutnoj poziciji:

• Da bi kombinovali sa moveTo() funkcijom – presleđuju se x i y kao


argumenti:

Za više klikova I terval iz eđu klikova

Desni klik
PyAutoGui

• PyAutoGUI takođe ima funkcije za slanje virtuelnih pritiska na tastere


na raču ar, što o ogućava da popunjavanje formulara, unos teksta u
aplikaciju i njeno testiranje

• typewrite() – simulira pritisak na neki taster, upisivanje nekog stringa..

• Moguće je zadati i interval


PyAutoGui
• Sa ovom funkcijom oguća je simulacija unosa karaktera (nije
oguće Shift ili F12)
• press() – funkcija
kojoj se
prosleđuje jeda
od stringova iz
liste
KEYBOARD_KEYS
PyAutoGui

• Funkcija press() služi za pritisak na neki od tastera tastature, eđuti


po oću nje se ne drži taster pritisnutim
• keyDown() i keyUp()

Pritisne se shift i drži, tri puta se pritisne


leva strelica, i na kraju se otpusti shift
PyAutoGui
• hotkey() – ože joj biti prosleđe o više key stringova, koji će biti
pritisnuti redom koji su navedeni, a otpušte i u obrnutom redosledu
PyAutoGui
• Funkcija locate()
• Moguće je vizuelno locirati ešto na ekranu, ako imamo sliku toga.
Recimo da imamo sliku aplikacije
PyAutoGui

• Nije oguće pozivati funkcije moveTo() i click() ako se ne znaju tač e


koordinate na ekranu. Još jedna od stvari jeste što se ta aplikacija
ože pojaviti svaki put na drugoj poziciji kada se pokrene, uzrokujući
da moramo uvek menjati koordinate koje prosleđuje o funkcijama
• locateOnScreen(image, grayScale=False) – vraća (leva, desna, širi a,
visina) koordinate prve pro ađe e instance slike na ekranu. Vraća
„No e“ ako nije pro ađe a
• locateCenterOnScreen(image, grayScale=False) – vraća (leva, desna)
koordinate centra prve prve pro ađe e instance slike na ekranu.
Vraća „No e“ ako nije pro ađe a. Najčešće korišćena
PyAutoGui

• Postoje još: locateAllOnScreen, locate, locateAll – slabije se koriste


• Moguće je opciono proslediti locate funkcijama „grayS ale=True“,
kako bi ubrzali proces pro alaže ja lokacije određe e slike. Međuti
ovaj proces „desaturira“ boju sa slika i screenshot-ova u rzavajući
lokaciju, što ože dovesti do pro alaže ja potencijalno pogreš ih
slika na ekranu
PyAutoGui
PyAutoGui
PyAutoGui
PyAutoGui
PyAutoGui Dodavanje auta iz liste, svako
auto predstavlja jednu listu
PyAutoGui

Pomera se relativno
random broj piksela po Y
osi ka dole
PyAutoGui

Oz ači sve u polju Polje prolazi test jer se nije zapamtilo,


godina ne ože biti string
O riši
PyAutoGui
• Zadatak 1. Potpuno automatizovati WPF aplikaciju, i o ogućiti
testiranje što više ogućih funkcionalnosti

You might also like