scoutui 2.0.3.21.pre → 2.0.3.22.pre
Sign up to get free protection for your applications and to get access to all the features.
- 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
|