Professional Documents
Culture Documents
2
2010611 2
case $rtval in 1) rm -f /tmp/dirip.$$ ; return ;; 255) rm -f /tmp/dirip.$$ ; return ;; esac mfile=`cat /tmp/dirip.$$` if [ -z $mfile ] then mfile=`pwd`/* else grep "*" /tmp/dirip.$$ if [ $? -eq 1 ] then ! mfile=$mfile/* fi fi for i in $mfile do if [ -f $i ] then ! echo "$i Delete?" >> /tmp/finallist.$$ fi! done
SHELL SCRIPT
3
2010611 3
4
2010611 4
GUI AUTOMATION
5
2010611 5
2 3 1
6
2010611 6
7
2010611 7
click
click
7
2010611 7
SIKULI SCRIPT
8
2010611 8
SIKULI TEST
9
2010611 9
OUTLINE
Problem Sikuli
Support
Conclusions
10
2010611 10
11
2010611 11
<AWTTestScript> Abbot <launch classpath="src/demo" args="[]" class="CelsiusConverter" method="main" /> <action args="45" method="actionKeyString"/> <action class="javax.swing.AbstractButton" args="Convert..." method="actionClick"/> <assert value="113 Fahrenheit" component="113 Fahrenheit" method="getText"/> <terminate/> by pre-programmed references </AWTTestScript>
11
2010611 11
<AWTTestScript> Abbot <launch classpath="src/demo" args="[]" class="CelsiusConverter" method="main" /> <action args="45" method="actionKeyString"/> <action class="javax.swing.AbstractButton" args="Convert..." method="actionClick"/> <assert value="113 Fahrenheit" component="113 Fahrenheit" method="getText"/> <terminate/> by pre-programmed references </AWTTestScript>
Autoit
by absolute locations
11
2010611 11
Use Screenshots!
12
2010611 12
TEMPLATE MATCHING
click(
)
13
2010611 13
TEMPLATE MATCHING
click(
)
13
2010611 13
2 3 1
14
2010611 14
15
2010611 15
15
2010611 15
16
2010611 16
17
2010611 17
18
2010611 18
18
2010611 18
SPATIAL OPERATORS
19
2010611 19
SPATIAL OPERATORS
19
2010611 19
20
2010611 20
21
2010611 21
VISUAL-EVENT-DRIVEN PROGRAMMING
22
2010611 22
VISUAL-EVENT-DRIVEN PROGRAMMING
22
2010611 22
SIKULI TEST
23
2010611 23
VISUAL ASSERTION
Verify
appearance
24
2010611 24
VISUAL ASSERTION
Verify
replacement
25
2010611 25
TEST BY DEMONSTRATION
detect changes click
26
2010611 26
Demo
27
2010611 27
A A b b down up down up
28
2010611 28
28
2010611 28
high-level commands
click
type Ab
28
2010611 28
click
high-level commands
click
type Ab
GENERATE ASSERTIONS
click
29
2010611 29
GENERATE ASSERTIONS
click
29
2010611 29
GENERATE ASSERTIONS
click
29
2010611 29
GENERATE ASSERTIONS
click
29
2010611 29
GENERATE ASSERTIONS
click
29
2010611 29
jUNIT INTEGRATION
30
2010611 30
TEST-DRIVEN DEVELOPMENT
31
2010611 31
READABILITY OF CODE
32
2010611 32
PLATFORM INDEPENDENCE
Works
machines desktop
Remote Mobile
34
2010611 34
34
2010611 34
LIMITATIONS
Theme Variations
Visibility Constraints
35
2010611 35
DISCUSSION
Sikuli programs are written against the user interface instead of an API
UI: visible, familiar, always exists API: faster, probably more stable
36
2010611 36
FUTURE WORK
fast
more
37
2010611 37
Thanks!