Escolar Documentos
Profissional Documentos
Cultura Documentos
PRACTICAL SIKULI
Tsung-Hsiang (Sean) Chang MIT CSAIL
WHAT IS SIKULI?
2
WHAT IS SIKULI?
2
2 3 1
3
OUTLINE
What How Sikuli Sikuli
Sikuli is
Conclusions
TEMPLATE MATCHING
click(
)
TEMPLATE MATCHING
click(
)
SYSTEM DESIGN
2 3 1
10
match = region.nd(
11
or text pattern)
REGION
basic
Match Screen
chained
nd, ndAll, exists, wait, waitVanish Mouse Actions click, doubleClick, rightClick, hover, dragDrop mouseDown, mouseUp
14
14
15
16
APP CLASS
refox
= App.open(Firefox)
17
18
19
19
SPATIAL OPERATORS
20
SPATIAL OPERATORS
20
21
22
VISUAL-EVENT-DRIVEN PROGRAMMING
observes
23
VISUAL-EVENT-DRIVEN PROGRAMMING
24
VISUAL-EVENT-DRIVEN PROGRAMMING
24
VISUAL DICTIONARY
25
GUI TESTING
26
VISUAL ASSERTION
make
27
VISUAL ASSERTION
make
27
JUNIT INTEGRATION
28
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
29
CONCLUSIONS
30
PLATFORM INDEPENDENCE
Works
machines desktop
Remote Mobile
PROGRAM AGAINST UI
Sikuli programs are written against the user interface instead of an API
UI: visible, familiar, always exists API: faster, probably more stable
32
FUTURE WORK
fast
Accessibility API
33
Thanks!