sikuli-harvardmedicalschool
-
Upload
dinakaran83 -
Category
Documents
-
view
184 -
download
6
Transcript of sikuli-harvardmedicalschool
![Page 1: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/1.jpg)
PRACTICAL SIKULIUSING SCREENSHOTS FOR GUI AUTOMATION AND TESTING
Tsung-Hsiang (Sean) ChangMIT CSAIL
1
Collaborators: Tom Yeh, Rob Miller
![Page 2: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/2.jpg)
WHAT IS SIKULI?2
![Page 3: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/3.jpg)
WHAT IS SIKULI?2
![Page 4: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/4.jpg)
1
2
3
3
![Page 5: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/5.jpg)
Low-level API?Mac’s system design?
4
![Page 6: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/6.jpg)
EMPTY THE TRASH CAN5
![Page 7: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/7.jpg)
OUTLINE
• What Sikuli is
• How Sikuli works
• Sikuli for GUI automation
• Sikuli for GUI testing
• Conclusions
6
![Page 8: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/8.jpg)
How Sikuli Works
7
![Page 9: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/9.jpg)
TEMPLATE MATCHING
click( )
8
![Page 10: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/10.jpg)
TEMPLATE MATCHING
click( )
8
![Page 11: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/11.jpg)
SYSTEM DESIGN
9
![Page 12: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/12.jpg)
1
2
3
DEMO 1:EMPTY TRASH CAN
10
![Page 13: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/13.jpg)
REGION AND MATCH
11
match = region.find( or “text pattern”)
Region
![Page 14: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/14.jpg)
12
• basic attributes: x, y, width, height
• Match is a Region
• Screen is also a Region
• chained methods: Screen(0).find(W).click(X)
REGION
![Page 15: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/15.jpg)
KEY METHODS OF REGION
• find, findAll, exists, wait, waitVanish
• Mouse Actions
click, doubleClick, rightClick, hover, dragDrop
mouseDown, mouseUp
• Keyboard Actions
type(text), paste(text)
keyDown, keyUp
13
![Page 16: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/16.jpg)
EX2: FACEBOOK STALKER
14
![Page 17: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/17.jpg)
EX2: FACEBOOK STALKER
14
![Page 18: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/18.jpg)
RESTRICT SEARCH REGION
15
![Page 19: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/19.jpg)
But the Region constant is bad
16
![Page 20: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/20.jpg)
APP CLASS
17
• firefox = App.open(“Firefox”)
• firefox.focus(), firefox.close()
• firefox.window([n])
• returns the Region of Firefox’s n-th window
![Page 21: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/21.jpg)
FIND IN CERTAIN APP
18
![Page 22: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/22.jpg)
EX3: MUTE SPEAKERS
19
![Page 23: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/23.jpg)
EX3: MUTE SPEAKERS
19
![Page 24: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/24.jpg)
SPATIAL OPERATORS
20
![Page 25: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/25.jpg)
SPATIAL OPERATORS
20
![Page 26: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/26.jpg)
SPATIAL OPERATORS (2)
21
![Page 27: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/27.jpg)
TEXT MATCHING AND RECOGNITION
22
• click(“OK”), find(“Cancel”)
• region.text() - read the text in a region
![Page 28: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/28.jpg)
VISUAL-EVENT-DRIVEN PROGRAMMING
23
• observes visual events in any Region
• Region.onAppear(Pattern, handler)
• Region.onVanish(Pattern, handler)
• Region.onChange(Pattern, handler)
![Page 29: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/29.jpg)
VISUAL-EVENT-DRIVEN PROGRAMMING
24
![Page 30: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/30.jpg)
VISUAL-EVENT-DRIVEN PROGRAMMING
24
![Page 31: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/31.jpg)
VISUAL DICTIONARY
25
![Page 32: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/32.jpg)
GUITESTING
26
![Page 33: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/33.jpg)
VISUAL ASSERTION
• make sure the appearance of visual feedback
27
![Page 34: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/34.jpg)
VISUAL ASSERTION
• make sure the appearance of visual feedback
27
![Page 35: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/35.jpg)
JUNIT INTEGRATION
28
![Page 36: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/36.jpg)
SIKULI IN COMMAND LINE
29
usage:Sikuli-‐IDE [-‐-‐args <arguments>] [-‐h] [-‐r <sikuli-‐file>] [-‐s] [-‐t <sikuli-‐test-‐case>] -‐-‐args <arguments> specify the arguments passed to Jython's sys.argv -‐h,-‐-‐help print this help message -‐r,-‐-‐run <sikuli-‐file> run .sikuli or .skl file -‐s,-‐-‐stderr print runtime errors to stderr instead of popping up a message box -‐t,-‐-‐test <sikuli-‐test-‐case> run .sikuli as a unit test case with junit's text UI runner
![Page 37: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/37.jpg)
CONCLUSIONS
30
![Page 38: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/38.jpg)
PLATFORM INDEPENDENCE
• Works on ANY GUI that can be displayed on Windows/Linux/Mac
• Virtual machines
• Remote desktop
• Mobile simulators: Android, iPhone
• Web: Flash, HTML+Javascript
31
![Page 39: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/39.jpg)
PROGRAM AGAINST UI
32
Sikuli programs are written against the user interface instead of an API
UI: visible, familiar, always exists API: faster, probably more stable
![Page 40: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/40.jpg)
FUTURE WORK
• fast and accurate OCR on screen
• Accessibility API integration
33
![Page 41: sikuli-harvardmedicalschool](https://reader034.fdocuments.us/reader034/viewer/2022051413/55366f3c4a795936258b497e/html5/thumbnails/41.jpg)
Thanks!
http://sikuli.org
New Sikuli X 1.0-rc2 released.
Follow us on twitter @sikuli
Thanks to our funding sources: NSF and Quanta Computer (as a part of TParty project.)
or, just google “sikuli”
34