scoutui 2.0.3.21.pre → 2.0.3.22.pre
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/benchmark/ex.rb +16 -0
- data/examples/benchmark/ex_benchmark.rb +16 -0
- data/examples/ex6/appmodel/model.json +10 -0
- data/examples/ex6/tests/test.sh +100 -0
- data/lib/scoutui/base/q_browser.rb +6 -0
- data/lib/scoutui/base/user_vars.rb +4 -4
- data/lib/scoutui/commands/assign_var.rb +15 -29
- data/lib/scoutui/commands/click_object.rb +2 -1
- data/lib/scoutui/commands/command.rb +14 -1
- data/lib/scoutui/commands/commands.rb +11 -9
- data/lib/scoutui/commands/highlight.rb +11 -6
- data/lib/scoutui/commands/type.rb +32 -8
- data/lib/scoutui/commands/update_url.rb +1 -1
- data/lib/scoutui/commands/verify_element.rb +4 -1
- data/lib/scoutui/logger/log_mgr.rb +17 -0
- data/lib/scoutui/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b6949c1561c7804842c874fab22bd65cba0d8a0
|
4
|
+
data.tar.gz: f5f046b973cd9591b57c2479d06f84c5197aa665
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f1f3c9aaaf2e12619fe95b4f46097d2af812391b1ac25393b05dc779ab348abd0b6b830356e8caa4054fcfafa1436dfcac984fbc9f431bb1c573cd37f8fe02d
|
7
|
+
data.tar.gz: 3c71c4a7e4af5cd62f3f98783f0b27786076f91655e09de03674b9b6fb4342269ee300f722886a57043e09755a48eb7d2f99cc65684aeba2f7feaca3382c47ba
|
@@ -0,0 +1,100 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
|
4
|
+
##
|
5
|
+
# Pre-req - Sauce Connect is running
|
6
|
+
##
|
7
|
+
|
8
|
+
setup()
|
9
|
+
{
|
10
|
+
HOST="http://the-internet.herokuapp.com/tinymce"
|
11
|
+
|
12
|
+
CAPS="--capabilities ../../common/capabilities/win10.chrome50.json"
|
13
|
+
CAPS="--capabilities ../capabilities/win10.ff46.json"
|
14
|
+
# CAPS=
|
15
|
+
# CAPS="--sauce:browser chrome --sauce:platform \"Windows 10\" --sauce:version 46.0 --sauce:resolution 1024x768"
|
16
|
+
|
17
|
+
USER_ID="terrybrown@commasavvy.com"
|
18
|
+
PASSWORD="password1"
|
19
|
+
TESTCFG=../testconfig/test.config.json
|
20
|
+
|
21
|
+
|
22
|
+
TITLE="CARMAX"
|
23
|
+
VIEWPORT="1024x768"
|
24
|
+
|
25
|
+
MODEL="../appmodel/main.nav.json,../appmodel/search_results.json"
|
26
|
+
|
27
|
+
EYES="--eyes --app ${TITLE} --title ${TITLE} --match layout2"
|
28
|
+
EYES=
|
29
|
+
|
30
|
+
SAUCE="--sauce --sauce_name ${TITLE}"
|
31
|
+
# SAUCE="--browser chrome"
|
32
|
+
|
33
|
+
CMD="../commands/commands.yml"
|
34
|
+
CMD="../commands/basic_search.yml"
|
35
|
+
|
36
|
+
CMD="../commands/home.commands.yml"
|
37
|
+
|
38
|
+
}
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
run1()
|
43
|
+
{
|
44
|
+
|
45
|
+
EYES=
|
46
|
+
EYES="--eyes --app ${TITLE}.1280 --title ${TITLE} --match layout2"
|
47
|
+
VIEWPORT="--viewport 1024x670"
|
48
|
+
# VIEWPORT="--viewport 1024x722"
|
49
|
+
VIEWPORT=
|
50
|
+
# --sauce:platform "Windows 10" --sauce:build SmokeEx --sauce:name Smokes --sauce:browsername "MicrosoftEdge" --sauce:browser "MS Edge 13.10586" --sauce:version "13.10586" --sauce:resolution "1280x1024" \
|
51
|
+
|
52
|
+
ruby $SCOUTUI_BIN \
|
53
|
+
--config ${TESTCFG} \
|
54
|
+
--user "expense.admin@scoutui.com" --password password1 \
|
55
|
+
--diff /tmp/vt \
|
56
|
+
--pages ../appmodel/model.json \
|
57
|
+
--eyes:run false \
|
58
|
+
--eyes:viewport 1024x670 \
|
59
|
+
--eyes:app "CarMaxTestApp" \
|
60
|
+
--eyes:title "CarMaxTitle" \
|
61
|
+
--sauce:run false \
|
62
|
+
--sauce:platform "Windows 10" \
|
63
|
+
--sauce:build SmokeEx \
|
64
|
+
--sauce:name Smokes \
|
65
|
+
--sauce:browser "chrome" \
|
66
|
+
--sauce:version "beta" \
|
67
|
+
--sauce:resolution "1280x1024" \
|
68
|
+
--host ${HOST} \
|
69
|
+
--debug \
|
70
|
+
--dut "${CMD}"
|
71
|
+
|
72
|
+
}
|
73
|
+
|
74
|
+
run2()
|
75
|
+
{
|
76
|
+
|
77
|
+
CAPS="--capabilities ../capabilities/win10.ff46.json"
|
78
|
+
|
79
|
+
ruby $SCOUTUI_BIN \
|
80
|
+
--config ${TESTCFG} \
|
81
|
+
--user "expense.admin@scoutui.com" --password password1 \
|
82
|
+
${EYES} \
|
83
|
+
--diff /tmp/vt \
|
84
|
+
--viewport ${VIEWPORT} \
|
85
|
+
${SAUCE} \
|
86
|
+
${CAPS} \
|
87
|
+
--sauce:platform PETER.0 \
|
88
|
+
--host ${HOST} \
|
89
|
+
--pages ${MODEL} \
|
90
|
+
--debug \
|
91
|
+
--dut "${CMD}"
|
92
|
+
|
93
|
+
}
|
94
|
+
|
95
|
+
setup
|
96
|
+
run1
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
@@ -361,6 +361,12 @@ module Scoutui::Base
|
|
361
361
|
# http://stackoverflow.com/questions/15164742/combining-implicit-wait-and-explicit-wait-together-results-in-unexpected-wait-ti#answer-15174978
|
362
362
|
def self.getObject(drv, obj, _timeout=nil)
|
363
363
|
|
364
|
+
|
365
|
+
if obj.nil?
|
366
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " getObject() - null obj passed."
|
367
|
+
return nil
|
368
|
+
end
|
369
|
+
|
364
370
|
if _timeout.nil?
|
365
371
|
_timeout = Scoutui::Utils::TestUtils.instance.getDefaultWait
|
366
372
|
end
|
@@ -84,15 +84,15 @@ module Scoutui::Base
|
|
84
84
|
_rc = k.match(/\$\{(.*)\}$/)
|
85
85
|
|
86
86
|
# Needs refactoring!
|
87
|
-
if k=='${userid}'
|
87
|
+
if k=='${userid}' || k=='__USERID__'
|
88
88
|
k=:userid
|
89
|
-
elsif k=='${password}'
|
89
|
+
elsif k=='${password}' || k=='__PASSWORD__'
|
90
90
|
k=:password
|
91
|
-
elsif k=='${host}'
|
91
|
+
elsif k=='${host}' || k=='__HOST__'
|
92
92
|
k=:host
|
93
93
|
elsif k=='${lang}' || k=='${__LOC__}' || k=='${LOC}' || k=='__LOC__'
|
94
94
|
k=:lang
|
95
|
-
elsif k=='${browser}'
|
95
|
+
elsif k=='${browser}' || k=='__BROWSER__'
|
96
96
|
k=:browser
|
97
97
|
elsif k.is_a?(Symbol)
|
98
98
|
foundKey=true
|
@@ -8,6 +8,7 @@ module Scoutui::Commands
|
|
8
8
|
def execute(drv, e=nil)
|
9
9
|
@drv=drv if !drv.nil?
|
10
10
|
rc=nil
|
11
|
+
obj=nil
|
11
12
|
|
12
13
|
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
13
14
|
|
@@ -16,21 +17,22 @@ module Scoutui::Commands
|
|
16
17
|
|
17
18
|
Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " assignVar => #{_uservar} : #{_condition}"
|
18
19
|
|
20
|
+
expectObj=!_condition.match(/^\s*(text|value)\s*\(/i).nil?
|
19
21
|
|
20
|
-
if
|
22
|
+
if expectObj
|
21
23
|
_locator=_condition.match(/^\s*(text|value)\s*\((.*)\)\s*$/i)[2].to_s.strip
|
24
|
+
_locator = Scoutui::Base::UserVars.instance.normalize(_locator)
|
25
|
+
Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " | translate : #{_locator}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
26
|
+
obj = Scoutui::Base::QBrowser.findElement(@drv, _locator, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
27
|
+
else
|
28
|
+
Scoutui::Base::UserVars.instance.setVar(_uservar, _condition)
|
29
|
+
rc=_condition
|
22
30
|
end
|
23
31
|
|
24
|
-
_locator = Scoutui::Base::UserVars.instance.normalize(_locator)
|
25
|
-
|
26
|
-
Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " | translate : #{_locator}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
27
32
|
|
28
33
|
begin
|
29
34
|
|
30
|
-
obj
|
31
|
-
|
32
|
-
|
33
|
-
if obj
|
35
|
+
if !obj.nil?
|
34
36
|
|
35
37
|
# Refactor in qbrowser
|
36
38
|
|
@@ -49,23 +51,8 @@ module Scoutui::Commands
|
|
49
51
|
|
50
52
|
puts __FILE__ + (__LINE__).to_s + " rc :: #{Scoutui::Base::UserVars.instance.getVar(_uservar)}"
|
51
53
|
|
52
|
-
|
53
|
-
|
54
|
-
# puts __FILE__ + (__LINE__).to_s + " Pause"; gets
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
54
|
if isDisplayed
|
60
|
-
|
61
|
-
# isEnabled = wait.until { obj.enabled? }
|
62
|
-
# Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " obj is enabled : #{isEnabled}"
|
63
|
-
# obj.click
|
64
|
-
# _clicked=true
|
65
|
-
|
66
|
-
# page_elt = Scoutui::Utils::TestUtils.instance.getPageElement(_locator)
|
67
|
-
# Scoutui::Logger::LogMgr.instance.debug "PageElement(#{_locator}) => #{page_elt}"
|
68
|
-
# _whenClicked(page_elt)
|
55
|
+
;
|
69
56
|
else
|
70
57
|
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Element, #{_locator} is not displayed."
|
71
58
|
end
|
@@ -77,11 +64,10 @@ module Scoutui::Commands
|
|
77
64
|
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
78
65
|
end
|
79
66
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
# Testmgr::TestReport.instance.getReq(_req).testcase('click').add(_clicked, "Verify clicked #{_locator}")
|
67
|
+
if expectObj
|
68
|
+
Scoutui::Logger::LogMgr.instance.asserts.info "Verify object to assign exists #{_locator} : #{obj.class.to_s} - #{!obj.nil?.to_s}"
|
69
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('click').add(!obj.nil?, "Verify object to assign exists #{_locator} : #{obj.class.to_s}")
|
70
|
+
end
|
85
71
|
|
86
72
|
setResult(!rc.nil?)
|
87
73
|
end
|
@@ -118,6 +118,7 @@ module Scoutui::Commands
|
|
118
118
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight then click : #{obj}"
|
119
119
|
end
|
120
120
|
|
121
|
+
@drv.action.move_to(obj).perform
|
121
122
|
obj.click
|
122
123
|
|
123
124
|
_clicked=true
|
@@ -140,7 +141,7 @@ module Scoutui::Commands
|
|
140
141
|
end
|
141
142
|
|
142
143
|
rescue => ex
|
143
|
-
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Error during processing: #{ex.message}"
|
144
|
+
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " #{ex.class.to_s} : Error during processing: #{ex.message}"
|
144
145
|
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
145
146
|
end
|
146
147
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'benchmark'
|
1
2
|
|
2
3
|
module Scoutui::Commands
|
3
4
|
|
@@ -10,11 +11,12 @@ module Scoutui::Commands
|
|
10
11
|
attr_accessor :executed
|
11
12
|
attr_accessor :executed_result
|
12
13
|
attr_accessor :stanza
|
14
|
+
attr_accessor :bm
|
13
15
|
|
14
16
|
def initialize(_cmd, _drv=nil)
|
15
17
|
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " Command.init: #{_cmd.to_s}"
|
16
18
|
|
17
|
-
|
19
|
+
@bm=nil
|
18
20
|
@cmd=_cmd
|
19
21
|
|
20
22
|
if _cmd.is_a?(Hash) && _cmd.has_key?('page') && _cmd['page'].has_key?('action')
|
@@ -55,6 +57,17 @@ module Scoutui::Commands
|
|
55
57
|
@rc
|
56
58
|
end
|
57
59
|
|
60
|
+
def run(opts) # (_drv=nil, _dut=nil)
|
61
|
+
_drv=opts[:driver]
|
62
|
+
_dut=opts.has_key?(:dut) ? opts[:dut] : nil
|
63
|
+
|
64
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " = start run(#{@cmd}) ="
|
65
|
+
@bm=Benchmark.measure { execute(_drv, _dut) }
|
66
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " = end run(#{@cmd}) : #{@bm.real}"
|
67
|
+
|
68
|
+
Scoutui::Logger::LogMgr.instance.benchmarks.info "#{@cmd} => #{@bm.real}"
|
69
|
+
end
|
70
|
+
|
58
71
|
def execute(_drv=nil, _dut=nil)
|
59
72
|
raise NotImplementedError
|
60
73
|
end
|
@@ -53,7 +53,8 @@ module Scoutui::Commands
|
|
53
53
|
elsif Scoutui::Commands::Utils.instance.isAssignVar?(_action)
|
54
54
|
_cmd='assignvar'
|
55
55
|
_c = Scoutui::Commands::AssignVar.new(_action)
|
56
|
-
_c.
|
56
|
+
_c.run(driver: my_driver, dut: e)
|
57
|
+
|
57
58
|
elsif Scoutui::Commands::Utils.instance.isSelectWindow?(_action)
|
58
59
|
_cmd='SelectWindow'
|
59
60
|
_c = Scoutui::Commands::SelectWindow.new(_action)
|
@@ -61,7 +62,9 @@ module Scoutui::Commands
|
|
61
62
|
elsif Scoutui::Commands::Utils.instance.isClick?(_action)
|
62
63
|
_cmd='Click'
|
63
64
|
_c = Scoutui::Commands::ClickObject.new(_action)
|
64
|
-
|
65
|
+
|
66
|
+
_c.run(driver: my_driver, dut: e)
|
67
|
+
|
65
68
|
|
66
69
|
if e[STEP_KEY].has_key?('then')
|
67
70
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " then => #{e[STEP_KEY]['then]']}"
|
@@ -86,7 +89,7 @@ module Scoutui::Commands
|
|
86
89
|
elsif Scoutui::Commands::Utils.instance.isHighlight?(_action)
|
87
90
|
_cmd="Highlight"
|
88
91
|
_c = Scoutui::Commands::Highlight.new(_action)
|
89
|
-
|
92
|
+
_c.run(driver: my_driver, dut: e)
|
90
93
|
|
91
94
|
elsif Scoutui::Commands::Utils.instance.isMouseOver?(_action)
|
92
95
|
_cmd='MouseOver'
|
@@ -96,7 +99,7 @@ module Scoutui::Commands
|
|
96
99
|
elsif Scoutui::Commands::Utils.instance.isSelect?(_action)
|
97
100
|
_cmd='Select'
|
98
101
|
_c = Scoutui::Commands::SelectObject.new(_action)
|
99
|
-
_c.
|
102
|
+
_c.run(driver: my_driver, dut: e)
|
100
103
|
|
101
104
|
elsif Scoutui::Commands::Utils.instance.isFillForm?(_action)
|
102
105
|
|
@@ -131,25 +134,24 @@ module Scoutui::Commands
|
|
131
134
|
elsif Scoutui::Commands::Utils.instance.isNavigate?(_action)
|
132
135
|
_cmd='Navigate'
|
133
136
|
_c = Scoutui::Commands::UpdateUrl.new(_action)
|
134
|
-
_c.
|
137
|
+
_c.run(driver: my_driver)
|
135
138
|
|
136
139
|
elsif Scoutui::Commands::Utils.instance.isVerifyElt?(_action)
|
137
140
|
_cmd='VerifyElement'
|
138
|
-
|
139
141
|
_c = Scoutui::Commands::VerifyElement.new(_action)
|
140
|
-
_c.
|
142
|
+
_c.run(driver: my_driver)
|
141
143
|
|
142
144
|
elsif Scoutui::Commands::Utils.instance.isType?(_action)
|
143
145
|
_cmd='Type'
|
144
146
|
_c = Scoutui::Commands::Type.new(_action)
|
145
|
-
_c.
|
147
|
+
_c.run(driver: my_driver)
|
146
148
|
else
|
147
149
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Unknown command : #{_action}"
|
148
150
|
rc=false
|
149
151
|
end
|
150
152
|
|
151
153
|
rescue => e
|
152
|
-
Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{$!}"
|
154
|
+
Scoutui::Logger::LogMgr.instance.debug "#{e.class.to_s} Error during processing: #{$!}"
|
153
155
|
Scoutui::Logger::LogMgr.instance.debug "Backtrace:\n\t#{e.backtrace.join("\n\t")}"
|
154
156
|
puts "Backtrace:\n\t#{e.backtrace.join("\n\t")}"
|
155
157
|
_aborted=true
|
@@ -7,6 +7,7 @@ module Scoutui::Commands
|
|
7
7
|
def _highlight(obj, e=nil)
|
8
8
|
_rc=false
|
9
9
|
|
10
|
+
Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " highlight => #{obj}"
|
10
11
|
if !obj.nil?
|
11
12
|
|
12
13
|
if e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('style')
|
@@ -41,8 +42,16 @@ module Scoutui::Commands
|
|
41
42
|
locators = e['page']['locators']
|
42
43
|
end
|
43
44
|
|
44
|
-
locators.each do |
|
45
|
-
|
45
|
+
locators.each do |elt|
|
46
|
+
|
47
|
+
_loc = Scoutui::Base::UserVars.instance.normalize(elt)
|
48
|
+
|
49
|
+
# obj = Scoutui::Base::QBrowser.getObject(@drv, loc, Scoutui::Commands::Utils.instance.getTimeout)
|
50
|
+
obj = Scoutui::Base::QBrowser.findElement(@drv,
|
51
|
+
_loc,
|
52
|
+
Scoutui::Commands::Utils.instance.getFrameSearch(),
|
53
|
+
Scoutui::Commands::Utils.instance.getTimeout)
|
54
|
+
|
46
55
|
_rc = _highlight(obj, e)
|
47
56
|
|
48
57
|
rc &&= _rc
|
@@ -57,13 +66,9 @@ module Scoutui::Commands
|
|
57
66
|
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
58
67
|
end
|
59
68
|
|
60
|
-
|
61
69
|
setResult(rc)
|
62
70
|
end
|
63
71
|
|
64
|
-
|
65
|
-
|
66
72
|
end
|
67
73
|
|
68
|
-
|
69
74
|
end
|
@@ -40,7 +40,7 @@ module Scoutui::Commands
|
|
40
40
|
|
41
41
|
end
|
42
42
|
|
43
|
-
def execute(drv=nil)
|
43
|
+
def execute(drv=nil, _notUsed=nil)
|
44
44
|
@drv=drv if !drv.nil?
|
45
45
|
|
46
46
|
_isKb=false
|
@@ -68,8 +68,11 @@ module Scoutui::Commands
|
|
68
68
|
obj = Scoutui::Base::QBrowser.findElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
69
69
|
|
70
70
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " type(#{_val})"
|
71
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " tag : #{obj.tag_name}"
|
71
72
|
|
72
|
-
if !obj.nil? &&
|
73
|
+
if !obj.nil? &&
|
74
|
+
(obj.tag_name.downcase=='body' ||
|
75
|
+
!obj.attribute('type').downcase.match(/(text|textarea|password|email)/).nil? )
|
73
76
|
|
74
77
|
# Refactor in qbrowser
|
75
78
|
|
@@ -87,19 +90,21 @@ module Scoutui::Commands
|
|
87
90
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " send_keys(#{_val})"
|
88
91
|
|
89
92
|
if isDisplayed
|
90
|
-
if _val.match(
|
93
|
+
if _val.match(/^\s*__DOWN__\s*$/)
|
91
94
|
obj.send_keys(:arrow_down)
|
92
|
-
elsif _val.match(
|
95
|
+
elsif _val.match(/^\s*__TAB__\s*$/)
|
93
96
|
obj.send_keys(:tab)
|
97
|
+
elsif _val.match(/^\s*__CLEAR__\s*$/)
|
98
|
+
obj.clear
|
99
|
+
elsif _val.match(/^\s*__ENTER__\s*$/)
|
100
|
+
obj.send_keys("")
|
101
|
+
@drv.action.send_keys(:enter).perform
|
94
102
|
else
|
95
|
-
|
96
103
|
_uservars = _val.scan(/\$\{(.*?)\}/)
|
97
104
|
|
98
|
-
|
99
105
|
_v2 = _val
|
100
106
|
for i in 0 .. (_uservars.size - 1)
|
101
107
|
|
102
|
-
|
103
108
|
_t = Scoutui::Base::UserVars.instance.get(_uservars[i][0])
|
104
109
|
puts __FILE__ + (__LINE__).to_s + " translate(#{_uservars[i][0]}) => #{_t}"
|
105
110
|
|
@@ -142,9 +147,28 @@ module Scoutui::Commands
|
|
142
147
|
end
|
143
148
|
end
|
144
149
|
|
145
|
-
# _text_to_type.gsub!(/__DATE__/, Time.now().to_s)
|
146
150
|
|
151
|
+
puts __FILE__ + (__LINE__).to_s + " Text to type : #{_text_to_type}"
|
147
152
|
obj.send_keys(_text_to_type)
|
153
|
+
|
154
|
+
if !obj.nil? && false
|
155
|
+
arr=_text_to_type.split(/__ENTER__/)
|
156
|
+
|
157
|
+
i=0
|
158
|
+
arr.each do |_t|
|
159
|
+
# puts __FILE__ + (__LINE__).to_s + " => #{_t}"; STDIN.gets;
|
160
|
+
if i > 0
|
161
|
+
obj.send_keys("")
|
162
|
+
@drv.action.send_keys(:enter).perform
|
163
|
+
puts __FILE__ + (__LINE__).to_s + " ENTER"; STDIN.gets()
|
164
|
+
obj.send_keys("<ENTER>")
|
165
|
+
end
|
166
|
+
|
167
|
+
obj.send_keys(_t)
|
168
|
+
i+1
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
148
172
|
end
|
149
173
|
|
150
174
|
|
@@ -12,6 +12,7 @@ module Scoutui::Logger
|
|
12
12
|
|
13
13
|
attr_accessor :root
|
14
14
|
attr_accessor :commands
|
15
|
+
attr_accessor :benchmarks
|
15
16
|
|
16
17
|
def initialize
|
17
18
|
|
@@ -40,6 +41,14 @@ module Scoutui::Logger
|
|
40
41
|
)
|
41
42
|
@commands.level = :debug
|
42
43
|
|
44
|
+
|
45
|
+
@benchmarks = Logging.logger['Benchmarks']
|
46
|
+
@benchmarks.add_appenders(
|
47
|
+
Logging.appenders.stdout,
|
48
|
+
Logging.appenders.file('benchmarks.log')
|
49
|
+
)
|
50
|
+
@benchmarks.level = :info
|
51
|
+
|
43
52
|
#Logging.logger.root.level = :warn
|
44
53
|
end
|
45
54
|
|
@@ -83,6 +92,14 @@ module Scoutui::Logger
|
|
83
92
|
end
|
84
93
|
|
85
94
|
|
95
|
+
def benchmark
|
96
|
+
@benchmarks
|
97
|
+
end
|
98
|
+
def benchmarks
|
99
|
+
@benchmarks
|
100
|
+
end
|
101
|
+
|
102
|
+
|
86
103
|
def log(level, txt)
|
87
104
|
|
88
105
|
if level.match(/info/i)
|
data/lib/scoutui/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scoutui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.3.
|
4
|
+
version: 2.0.3.22.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Kim
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -183,6 +183,8 @@ files:
|
|
183
183
|
- bin/console
|
184
184
|
- bin/scoutui_driver.rb
|
185
185
|
- bin/setup
|
186
|
+
- examples/benchmark/ex.rb
|
187
|
+
- examples/benchmark/ex_benchmark.rb
|
186
188
|
- examples/capabilities/win10.chrome46.json
|
187
189
|
- examples/carmax/appmodel/main.nav.json
|
188
190
|
- examples/carmax/appmodel/search_results.json
|
@@ -219,6 +221,8 @@ files:
|
|
219
221
|
- examples/ex2/tests/test-example2.sh
|
220
222
|
- examples/ex2/tests/test-example3.sauce.sh
|
221
223
|
- examples/ex2/tests/test-example3.sh
|
224
|
+
- examples/ex6/appmodel/model.json
|
225
|
+
- examples/ex6/tests/test.sh
|
222
226
|
- examples/eyes/diff.rb
|
223
227
|
- examples/eyes/ex2.rb
|
224
228
|
- examples/eyes_results/response.json
|