scoutui 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|