scoutui 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/capabilities/win10.chrome46.json +6 -0
- data/examples/ex1/test-example.sh +4 -4
- data/examples/ex1/test.config.json +1 -1
- data/examples/ex2/appmodel/common.json +51 -0
- data/examples/ex2/appmodel/page_model.json +106 -0
- data/examples/ex2/appmodel/register.model.json +42 -0
- data/examples/ex2/commands/commands.basic.appmodel.yml +8 -0
- data/examples/ex2/commands/commands.yml +115 -0
- data/examples/ex2/commands/ex1.yml +7 -0
- data/examples/ex2/commands/ex1c.yml +8 -0
- data/examples/ex2/commands/ex1d.yml +22 -0
- data/examples/ex2/commands/ex2.hover.yml +43 -0
- data/examples/ex2/commands/ex2.yml +24 -0
- data/examples/ex2/data.json +6 -0
- data/examples/ex2/test-configs/test.config.basic.json +12 -0
- data/examples/ex2/{test.config.json → test-configs/test.config.json} +8 -2
- data/examples/ex2/tests/run-test.sh +125 -0
- data/examples/ex2/tests/test-basic-appmodel.sh +14 -0
- data/examples/ex2/{test-example.sh → tests/test-example.sh} +3 -3
- data/examples/ex2/tests/test-example1a.sh +16 -0
- data/examples/ex2/tests/test-example1b.sh +13 -0
- data/examples/ex2/tests/test-example1c.sh +15 -0
- data/examples/ex2/tests/test-example1d.sh +15 -0
- data/examples/ex2/tests/test-example2.forms.eyes.sh +40 -0
- data/examples/ex2/tests/test-example2.hover.eyes.sh +40 -0
- data/examples/ex2/tests/test-example2.hover.sh +26 -0
- data/examples/ex2/tests/test-example2.sh +43 -0
- data/examples/ex2/tests/test-example3.sauce.sh +77 -0
- data/examples/ex2/tests/test-example3.sh +41 -0
- data/lib/scoutui/appmodel/q_model.rb +105 -0
- data/lib/scoutui/base/assertions.rb +570 -10
- data/lib/scoutui/base/q_applitools.rb +2 -2
- data/lib/scoutui/base/q_browser.rb +38 -5
- data/lib/scoutui/base/q_form.rb +7 -7
- data/lib/scoutui/base/test_scout.rb +2 -1
- data/lib/scoutui/base/user_vars.rb +29 -2
- data/lib/scoutui/base/visual_test_framework.rb +308 -24
- data/lib/scoutui/commands/click_object.rb +86 -13
- data/lib/scoutui/commands/commands.rb +20 -7
- data/lib/scoutui/commands/jsalert/action_jsalert.rb +1 -1
- data/lib/scoutui/commands/mouse_over.rb +94 -8
- data/lib/scoutui/commands/select_object.rb +1 -1
- data/lib/scoutui/commands/select_window.rb +43 -0
- data/lib/scoutui/commands/strategy.rb +40 -3
- data/lib/scoutui/commands/type.rb +99 -11
- data/lib/scoutui/commands/update_url.rb +1 -1
- data/lib/scoutui/commands/utils.rb +43 -5
- data/lib/scoutui/commands/verify_element.rb +38 -7
- data/lib/scoutui/eyes/eye_factory.rb +7 -1
- data/lib/scoutui/eyes/eye_scout.rb +20 -7
- data/lib/scoutui/utils/utils.rb +59 -1
- data/lib/scoutui/version.rb +1 -1
- data/scoutui.gemspec +5 -4
- metadata +77 -39
- data/examples/ex2/commands.yml +0 -35
- data/examples/ex2/page_model.json +0 -28
@@ -0,0 +1,24 @@
|
|
1
|
+
page:
|
2
|
+
skip: false
|
3
|
+
name: Home
|
4
|
+
description: Navigate to a specified URL and wait until the expected elements are present
|
5
|
+
url: http://www.carmax.com
|
6
|
+
expected:
|
7
|
+
wait: page(home).get(cars4sale)
|
8
|
+
wait2: page(home).get(whyCarMax)
|
9
|
+
wait3: page(find_cars_by).get(make)
|
10
|
+
assertions: [
|
11
|
+
assert1: {
|
12
|
+
"locator": "page(find_cars_by).get(make)",
|
13
|
+
"visible_when": "never",
|
14
|
+
"reqid": "REQ-MAKE"
|
15
|
+
},
|
16
|
+
assert2: {
|
17
|
+
"locator": "page(home)",
|
18
|
+
"reqid": "REQ-HOME"
|
19
|
+
}
|
20
|
+
]
|
21
|
+
---
|
22
|
+
page:
|
23
|
+
action: pause
|
24
|
+
skip: false
|
@@ -12,13 +12,19 @@
|
|
12
12
|
},
|
13
13
|
|
14
14
|
"host": "http://www.carmax.com",
|
15
|
-
"dut": "
|
15
|
+
"dut": "../commands/home.command.yml",
|
16
|
+
"dut2": "../commands/commands.yml",
|
16
17
|
|
17
18
|
|
18
19
|
"user_vars": {
|
19
20
|
"Search_Me": "BMW M3",
|
20
21
|
"View_Tickets_Link": "page(main_nav).get(ViewTicketsLink)",
|
21
|
-
"WhyCarMax": "page(home).get(whyCarMax)"
|
22
|
+
"WhyCarMax": "page(home).get(whyCarMax)",
|
23
|
+
|
24
|
+
"firstname": "Elvis",
|
25
|
+
|
26
|
+
"MyMake": "Porsche",
|
27
|
+
"make_aut": "file(porsche.json)"
|
22
28
|
}
|
23
29
|
|
24
30
|
}
|
@@ -0,0 +1,125 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
#VIEXPORT="--viewport 800x600"
|
6
|
+
|
7
|
+
while getopts ":a:b:c:d:eh:il:m:p:r:st:u:A:P:O:S:T:V:vw:" opt; do
|
8
|
+
case $opt in
|
9
|
+
a)
|
10
|
+
echo "-a was triggered, Parameter: $OPTARG" >&2
|
11
|
+
;;
|
12
|
+
b)
|
13
|
+
BROWSER="--browser $OPTARG"
|
14
|
+
|
15
|
+
if [[ $BROWSER=="chrome" ]];
|
16
|
+
then
|
17
|
+
rc=`/usr/local/bin/which chromedriver`
|
18
|
+
if [ $? -ne 0 ]
|
19
|
+
then
|
20
|
+
echo "-- Error: unable to find chromedriver. --"
|
21
|
+
exit 2
|
22
|
+
fi
|
23
|
+
|
24
|
+
fi
|
25
|
+
;;
|
26
|
+
c)
|
27
|
+
CAPS="--capabilities $OPTARG"
|
28
|
+
;;
|
29
|
+
d)
|
30
|
+
DUT="--dut $OPTARG"
|
31
|
+
;;
|
32
|
+
e)
|
33
|
+
EYES="--eyes"
|
34
|
+
;;
|
35
|
+
h)
|
36
|
+
HOST="--host \"$OPTARG\""
|
37
|
+
;;
|
38
|
+
i)
|
39
|
+
INC_EXP="--include_expectations"
|
40
|
+
;;
|
41
|
+
l)
|
42
|
+
LEVEL="--loglevel $OPTARG"
|
43
|
+
;;
|
44
|
+
m)
|
45
|
+
MATCH_LEVEL="--match $OPTARG"
|
46
|
+
;;
|
47
|
+
p)
|
48
|
+
PASSWORD="--password $OPTARG"
|
49
|
+
;;
|
50
|
+
r)
|
51
|
+
ROLE="--role $OPTARG"
|
52
|
+
;;
|
53
|
+
s)
|
54
|
+
SAUCE="--sauce"
|
55
|
+
;;
|
56
|
+
S)
|
57
|
+
SAUCE_NAME="--sauce_name $OPTARG"
|
58
|
+
;;
|
59
|
+
t)
|
60
|
+
TEST_CFG="$OPTARG"
|
61
|
+
;;
|
62
|
+
u)
|
63
|
+
USERID="--user $OPTARG"
|
64
|
+
;;
|
65
|
+
v)
|
66
|
+
VERBOSE="--debug"
|
67
|
+
;;
|
68
|
+
w)
|
69
|
+
DEFAULT_WAIT="--wait $OPTARG"
|
70
|
+
;;
|
71
|
+
A)
|
72
|
+
APP="--app $OPTARG"
|
73
|
+
;;
|
74
|
+
O)
|
75
|
+
mkdir -p $OPTARGET 2>/dev/null
|
76
|
+
DIFF_DIR="--diffs $OPTARG"
|
77
|
+
;;
|
78
|
+
P)
|
79
|
+
PAGE_MODEL="--pages $OPTARG"
|
80
|
+
;;
|
81
|
+
T)
|
82
|
+
TITLE="--title $OPTARG"
|
83
|
+
;;
|
84
|
+
V)
|
85
|
+
VIEWPORT="--viewport $OPTARG"
|
86
|
+
;;
|
87
|
+
\?)
|
88
|
+
echo "Invalid option: -$OPTARG" >&2
|
89
|
+
exit 1
|
90
|
+
;;
|
91
|
+
:)
|
92
|
+
echo "Option -$OPTARG requires an argument." >&2
|
93
|
+
exit 1
|
94
|
+
;;
|
95
|
+
esac
|
96
|
+
done
|
97
|
+
|
98
|
+
echo "BROWSER: ${BROWSER}"
|
99
|
+
echo "EYES : ${EYES}"
|
100
|
+
echo "HOST : ${HOST}"
|
101
|
+
echo "VERBOSE: ${VERBOSE}"
|
102
|
+
echo "MATCH: ${MATCH_LEVEL}"
|
103
|
+
echo "SAUCE: ${SAUCE}"
|
104
|
+
echo "CAPS: ${CAPS}"
|
105
|
+
echo "DUT: ${DUT}"
|
106
|
+
echo "TITLE: ${TITLE}"
|
107
|
+
echo "APP: ${APP}"
|
108
|
+
echo "VIEWPORT: ${VIEWPORT}"
|
109
|
+
|
110
|
+
|
111
|
+
# --dut ../commands/login.fail.yml
|
112
|
+
#TITLE="--title DEMO-XYZ"
|
113
|
+
#APP="--app LOC.ALL-HANDS"
|
114
|
+
#PAGE_MODEL="--pages ../appmodels/page_model.cge.json,../appmodels/page_model.traveler.json,../appmodels/page_model.common_bar.json"
|
115
|
+
|
116
|
+
if [[ -f $TEST_CFG ]]; then
|
117
|
+
|
118
|
+
CMD="ruby $SCOUTUI_BIN --config ${TEST_CFG} ${INC_EXP} ${DIFF_DIR} ${LEVEL} ${USERID} ${PASSWORD} ${DUT} ${VIEWPORT} ${ROLE} ${EYES} ${SAUCE} ${SAUCE_NAME} $TITLE ${APP} ${CAPS} ${MATCH_LEVEL} ${BROWSER} ${HOST} ${PAGE_MODEL} ${DEFAULT_WAIT} ${VERBOSE}"
|
119
|
+
|
120
|
+
echo $CMD
|
121
|
+
eval $CMD
|
122
|
+
else
|
123
|
+
echo "Error: unable to access ${TEST_CFG}."
|
124
|
+
exit 1
|
125
|
+
fi
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#/bin/bash
|
2
|
+
##
|
3
|
+
# Description
|
4
|
+
# Main test script.
|
5
|
+
##
|
6
|
+
export SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
7
|
+
|
8
|
+
|
9
|
+
# Specify the test configuration file
|
10
|
+
TEST_CFG="../test-configs/test.config.basic.json"
|
11
|
+
APP_MODEL="../appmodel/page_model.json"
|
12
|
+
|
13
|
+
|
14
|
+
./run-test.sh -b chrome -d ../commands/commands.basic.appmodel.yml -P $APP_MODEL -t $TEST_CFG -v
|
@@ -7,7 +7,7 @@
|
|
7
7
|
#
|
8
8
|
# export APPLITOOLS_API_KEY="__YOUR_KEY_HERE__"
|
9
9
|
##
|
10
|
-
SCOUTUI_BIN
|
10
|
+
SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
11
11
|
# Specify browser under test (chrome, firefox, ie, safari)
|
12
12
|
BUT=firefox
|
13
13
|
|
@@ -18,7 +18,7 @@ TITLE=DEMO-CarMax
|
|
18
18
|
APP=Oct2015
|
19
19
|
|
20
20
|
# Specify the test configuration file
|
21
|
-
TEST_CFG="
|
21
|
+
TEST_CFG="../test-configs/test.config.json"
|
22
22
|
|
23
23
|
##
|
24
24
|
# content
|
@@ -33,7 +33,7 @@ EYES=
|
|
33
33
|
|
34
34
|
|
35
35
|
# The following command line parameters will override provided title and appName (if provided in test config file)
|
36
|
-
$SCOUTUI_BIN --config $TEST_CFG --browser $BUT $EYES --app $APP --title $TITLE --match $MATCH_TYPE --pagemodel
|
36
|
+
$SCOUTUI_BIN --config $TEST_CFG --browser $BUT $EYES --app $APP --title $TITLE --match $MATCH_TYPE --pagemodel ../appmodel/page_model.json --debug
|
37
37
|
|
38
38
|
# The following
|
39
39
|
# $SCOUTUI_BIN --config $TEST_CFG --eyes --match $MATCH_TYPE --browser $BUT
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#/bin/bash
|
2
|
+
##
|
3
|
+
# Description
|
4
|
+
# Load a page and wait for expected elements, however these are
|
5
|
+
# explicit 'waits' - included in assertions.
|
6
|
+
#
|
7
|
+
# The parameter '-i' will include the 'waits' on expected elements
|
8
|
+
# as assertions (e.g. will be used for pass/fail criteria). The "-i" is used.
|
9
|
+
##
|
10
|
+
export SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
11
|
+
|
12
|
+
|
13
|
+
# Specify the test configuration file
|
14
|
+
TEST_CFG="../test-configs/test.config.basic.json"
|
15
|
+
|
16
|
+
./run-test.sh -b chrome -d ../commands/ex1.yml -t $TEST_CFG -v -i
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#/bin/bash
|
2
|
+
##
|
3
|
+
# Description
|
4
|
+
# Load a page and wait for expected elements, however these are
|
5
|
+
# explicit 'waits' - WITHOUT assertions (e.g. the "-i" is omitted).
|
6
|
+
##
|
7
|
+
export SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
8
|
+
|
9
|
+
|
10
|
+
# Specify the test configuration file
|
11
|
+
TEST_CFG="../test-configs/test.config.basic.json"
|
12
|
+
|
13
|
+
./run-test.sh -b chrome -d ../commands/ex1.yml -t $TEST_CFG -v
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#/bin/bash
|
2
|
+
##
|
3
|
+
# Description
|
4
|
+
# Load a page and wait for expected elements, however these are
|
5
|
+
# explicit 'waits' - included in assertions.
|
6
|
+
#
|
7
|
+
# Set a default timeout (wait) in seconds when searching/finding for elements.
|
8
|
+
##
|
9
|
+
export SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
10
|
+
|
11
|
+
|
12
|
+
# Specify the test configuration file
|
13
|
+
TEST_CFG="../test-configs/test.config.basic.json"
|
14
|
+
|
15
|
+
./run-test.sh -b chrome -d ../commands/ex1c.yml -t $TEST_CFG -v -w 5 -i
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#/bin/bash
|
2
|
+
##
|
3
|
+
# Description
|
4
|
+
# Load a page and wait for expected elements, however these are
|
5
|
+
# explicit 'waits' - included in assertions.
|
6
|
+
#
|
7
|
+
# Set a default timeout (wait) in seconds when searching/finding for elements.
|
8
|
+
##
|
9
|
+
export SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
10
|
+
|
11
|
+
|
12
|
+
# Specify the test configuration file
|
13
|
+
TEST_CFG="../test-configs/test.config.basic.json"
|
14
|
+
|
15
|
+
./run-test.sh -b chrome -d ../commands/ex1d.yml -t $TEST_CFG -v -w 5
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#/bin/bash
|
3
|
+
##
|
4
|
+
# Description
|
5
|
+
##
|
6
|
+
|
7
|
+
export SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
8
|
+
# Specify browser under test (chrome, firefox, ie, safari)
|
9
|
+
BUT=firefox
|
10
|
+
|
11
|
+
# Specify the title and appName needed by Applitools
|
12
|
+
## NOTE: If the test configuration file specifies the title and app, it is superseded by the
|
13
|
+
## command line options.
|
14
|
+
TITLE=DEMO-CarMax
|
15
|
+
APP=STPCon-Springx
|
16
|
+
|
17
|
+
# Specify the test configuration file
|
18
|
+
TEST_CFG="../test-configs/test.config.json"
|
19
|
+
|
20
|
+
##
|
21
|
+
# content
|
22
|
+
# strict
|
23
|
+
# exact
|
24
|
+
# layyout
|
25
|
+
##
|
26
|
+
MATCH_TYPE="layout"
|
27
|
+
|
28
|
+
|
29
|
+
PM="../appmodel/page_model.json,../appmodel/common.json,../appmodel/register.model.json"
|
30
|
+
|
31
|
+
|
32
|
+
eyes() {
|
33
|
+
./run-test.sh -b chrome -i -d ../commands/ex2.hover.yml -P "${PM}" -t ../test-configs/test.config.json -v \
|
34
|
+
-e -m content -T CarMax_Hover -A Ex1 -O /tmp/vt \
|
35
|
+
-d ../commands/ex.forms.yml
|
36
|
+
}
|
37
|
+
|
38
|
+
|
39
|
+
./run-test.sh -b firefox -i -d ../commands/ex2.hover.yml -P "${PM}" -t ../test-configs/test.config.json -v \
|
40
|
+
-d ../commands/ex.forms.yml
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#/bin/bash
|
2
|
+
##
|
3
|
+
# Description
|
4
|
+
# This test script overrides the provided title and appname (if provided in the test config. file)
|
5
|
+
#
|
6
|
+
# Set the APPLITOOLS_API_KEY environment variable with your key.
|
7
|
+
#
|
8
|
+
# export APPLITOOLS_API_KEY="__YOUR_KEY_HERE__"
|
9
|
+
##
|
10
|
+
|
11
|
+
export SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
12
|
+
# Specify browser under test (chrome, firefox, ie, safari)
|
13
|
+
BUT=firefox
|
14
|
+
|
15
|
+
# Specify the title and appName needed by Applitools
|
16
|
+
## NOTE: If the test configuration file specifies the title and app, it is superseded by the
|
17
|
+
## command line options.
|
18
|
+
TITLE=DEMO-CarMax
|
19
|
+
APP=STPCon-Springx
|
20
|
+
|
21
|
+
# Specify the test configuration file
|
22
|
+
TEST_CFG="../test-configs/test.config.json"
|
23
|
+
|
24
|
+
##
|
25
|
+
# content
|
26
|
+
# strict
|
27
|
+
# exact
|
28
|
+
# layyout
|
29
|
+
##
|
30
|
+
MATCH_TYPE="layout"
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
PM="../appmodel/page_model.json,../appmodel/common.json"
|
37
|
+
|
38
|
+
|
39
|
+
./run-test.sh -b chrome -i -d ../commands/ex2.hover.yml -P "${PM}" -t ../test-configs/test.config.json -v \
|
40
|
+
-e -m content -T CarMax_Hover -A Ex1 -O /tmp/vt
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#/bin/bash
|
2
|
+
##
|
3
|
+
# Description
|
4
|
+
# This test script overrides the provided title and appname (if provided in the test config. file)
|
5
|
+
#
|
6
|
+
# Set the APPLITOOLS_API_KEY environment variable with your key.
|
7
|
+
#
|
8
|
+
# export APPLITOOLS_API_KEY="__YOUR_KEY_HERE__"
|
9
|
+
##
|
10
|
+
|
11
|
+
export SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
12
|
+
# Specify browser under test (chrome, firefox, ie, safari)
|
13
|
+
BUT=firefox
|
14
|
+
|
15
|
+
# Specify the title and appName needed by Applitools
|
16
|
+
## NOTE: If the test configuration file specifies the title and app, it is superseded by the
|
17
|
+
## command line options.
|
18
|
+
TITLE=DEMO-CarMax
|
19
|
+
APP=Oct2015
|
20
|
+
|
21
|
+
# Specify the test configuration file
|
22
|
+
TEST_CFG="../test-configs/test.config.json"
|
23
|
+
|
24
|
+
PM="../appmodel/page_model.json,../appmodel/common.json"
|
25
|
+
|
26
|
+
./run-test.sh -b chrome -i -d ../commands/ex2.hover.yml -P "${PM}" -t ../test-configs/test.config.json -v
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#/bin/bash
|
2
|
+
##
|
3
|
+
# Description
|
4
|
+
# This test script overrides the provided title and appname (if provided in the test config. file)
|
5
|
+
#
|
6
|
+
# Set the APPLITOOLS_API_KEY environment variable with your key.
|
7
|
+
#
|
8
|
+
# export APPLITOOLS_API_KEY="__YOUR_KEY_HERE__"
|
9
|
+
##
|
10
|
+
SCOUTUI_BIN=../../../bin/scoutui_driver.rb
|
11
|
+
# Specify browser under test (chrome, firefox, ie, safari)
|
12
|
+
BUT=firefox
|
13
|
+
|
14
|
+
# Specify the title and appName needed by Applitools
|
15
|
+
## NOTE: If the test configuration file specifies the title and app, it is superseded by the
|
16
|
+
## command line options.
|
17
|
+
TITLE=DEMO-CarMax
|
18
|
+
APP=Oct2015
|
19
|
+
|
20
|
+
# Specify the test configuration file
|
21
|
+
TEST_CFG="../test-configs/test.config.json"
|
22
|
+
|
23
|
+
##
|
24
|
+
# content
|
25
|
+
# strict
|
26
|
+
# exact
|
27
|
+
# layyout
|
28
|
+
##
|
29
|
+
MATCH_TYPE="layout"
|
30
|
+
|
31
|
+
EYES=--eyes
|
32
|
+
EYES=
|
33
|
+
|
34
|
+
|
35
|
+
# The following command line parameters will override provided title and appName (if provided in test config file)
|
36
|
+
#$SCOUTUI_BIN --config $TEST_CFG --browser $BUT $EYES --app $APP --title $TITLE --match $MATCH_TYPE --pagemodel ../appmodel/page_model.json --debug
|
37
|
+
|
38
|
+
# The following
|
39
|
+
# $SCOUTUI_BIN --config $TEST_CFG --eyes --match $MATCH_TYPE --browser $BUT
|
40
|
+
|
41
|
+
PM="../appmodel/page_model.json,../appmodel/common.json"
|
42
|
+
|
43
|
+
./run-test.sh -b chrome -i -d ../commands/ex2.yml -P "${PM}" -t ../test-configs/test.config.json -v
|