ruby-jmeter 2.11.9 → 2.11.10
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/.ruby-version +1 -1
- data/Gemfile +0 -1
- data/bin/{grid → flood} +1 -1
- data/examples/basic_json_path_extractor.rb +12 -0
- data/lib/ruby-jmeter/dsl.rb +23 -19
- data/lib/ruby-jmeter/plugins/console_status_logger.rb +14 -0
- data/lib/ruby-jmeter/plugins/dummy_sampler.rb +23 -0
- data/lib/ruby-jmeter/plugins/json_path_extractor.rb +20 -0
- data/lib/ruby-jmeter/plugins/latencies_over_time.rb +48 -0
- data/lib/ruby-jmeter/plugins/response_codes_per_second.rb +48 -0
- data/lib/ruby-jmeter/plugins/response_times_distribution.rb +48 -0
- data/lib/ruby-jmeter/plugins/response_times_over_time.rb +49 -0
- data/lib/ruby-jmeter/plugins/response_times_percentiles.rb +49 -0
- data/lib/ruby-jmeter/plugins/transactions_per_second.rb +49 -0
- data/lib/ruby-jmeter/plugins/variable_throughput_timer.rb +26 -0
- data/lib/ruby-jmeter/version.rb +1 -1
- data/ruby-jmeter.gemspec +3 -3
- data/spec/dsl_spec.rb +16 -0
- metadata +28 -26
- data/lib/ruby-jmeter/plugins/gc_console_status_logger.rb +0 -14
- data/lib/ruby-jmeter/plugins/gc_dummy_sampler.rb +0 -23
- data/lib/ruby-jmeter/plugins/gc_latencies_over_time.rb +0 -48
- data/lib/ruby-jmeter/plugins/gc_response_codes_per_second.rb +0 -48
- data/lib/ruby-jmeter/plugins/gc_response_times_distribution.rb +0 -47
- data/lib/ruby-jmeter/plugins/gc_response_times_over_time.rb +0 -48
- data/lib/ruby-jmeter/plugins/gc_response_times_percentiles.rb +0 -48
- data/lib/ruby-jmeter/plugins/gc_transactions_per_second.rb +0 -48
- data/lib/ruby-jmeter/plugins/gc_variable_throughput_timer.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4773c5365592998c6d1cc60058034d36fbcf6a10
|
4
|
+
data.tar.gz: 1720ec95ab23cb8f6d51bef69ea0985af00df34d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b33d8bdff32b78d969fb16e5525d2177f1b2af775d6570ac71cc2d8594ff0235a710415076fc929dc331eb3a866f0f1670ca7b02026f5c06ec905f3c6acd61cd
|
7
|
+
data.tar.gz: d00d654d034c7de1d4f97147b8d1d274471e35912fb8d62d6d2c85c090fd4130c8b15a577e08d138930dbf9ee7f11af9a32af8cb0226ff7bc3eae8d9bca795c6
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.1.1
|
data/Gemfile
CHANGED
data/bin/{grid → flood}
RENAMED
@@ -5,7 +5,7 @@ require 'ruby-jmeter'
|
|
5
5
|
|
6
6
|
def usage(why = nil)
|
7
7
|
puts "failed for reason: #{why}" if why
|
8
|
-
puts "usage:
|
8
|
+
puts "usage: flood [testplan.rb] "
|
9
9
|
puts " The tesplan is optional, if you leave it off you'll get an interactive shell."
|
10
10
|
exit(1)
|
11
11
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'ruby-jmeter'
|
3
|
+
|
4
|
+
test do
|
5
|
+
threads count: 1 do
|
6
|
+
visit 'https://flood.io/d384673f64e3a3/result.json' do
|
7
|
+
extract json: '.apdex.score', name: 'apdex'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# end.run(path: '/usr/share/jmeter-2.11/bin/', gui: true)
|
12
|
+
end.flood(ENV['FLOOD_API_TOKEN'])
|
data/lib/ruby-jmeter/dsl.rb
CHANGED
@@ -311,10 +311,14 @@ module RubyJmeter
|
|
311
311
|
params[:regex] = params[:regex] #CGI.escapeHTML
|
312
312
|
params[:template] = params[:template] || "$1$"
|
313
313
|
RubyJmeter::RegularExpressionExtractor.new(params)
|
314
|
-
|
314
|
+
elsif params[:xpath]
|
315
315
|
params[:refname] = params[:name]
|
316
316
|
params[:xpathQuery] = params[:xpath]
|
317
317
|
RubyJmeter::XpathExtractor.new(params)
|
318
|
+
elsif params[:json]
|
319
|
+
params[:VAR] = params[:name]
|
320
|
+
params[:JSONPATH] = params[:json]
|
321
|
+
RubyJmeter::Plugins::JsonPathExtractor.new(params)
|
318
322
|
end
|
319
323
|
attach_node(node, &block)
|
320
324
|
end
|
@@ -358,52 +362,52 @@ module RubyJmeter
|
|
358
362
|
##
|
359
363
|
# JMeter Plugins
|
360
364
|
|
361
|
-
def response_codes_per_second(name="
|
362
|
-
node = RubyJmeter::
|
365
|
+
def response_codes_per_second(name="Response Codes per Second", params={}, &block)
|
366
|
+
node = RubyJmeter::Plugins::ResponseCodesPerSecond.new(name, params)
|
363
367
|
attach_node(node, &block)
|
364
368
|
end
|
365
369
|
|
366
|
-
def response_times_distribution(name="
|
367
|
-
node = RubyJmeter::
|
370
|
+
def response_times_distribution(name="Response Times Distribution", params={}, &block)
|
371
|
+
node = RubyJmeter::Plugins::ResponseTimesDistribution.new(name, params)
|
368
372
|
attach_node(node, &block)
|
369
373
|
end
|
370
374
|
|
371
|
-
def response_times_over_time(name="
|
372
|
-
node = RubyJmeter::
|
375
|
+
def response_times_over_time(name="Response Times Over Time", params={}, &block)
|
376
|
+
node = RubyJmeter::Plugins::ResponseTimesOverTime.new(name, params)
|
373
377
|
attach_node(node, &block)
|
374
378
|
end
|
375
379
|
|
376
|
-
def response_times_percentiles(name="
|
377
|
-
node = RubyJmeter::
|
380
|
+
def response_times_percentiles(name="Response Times Percentiles", params={}, &block)
|
381
|
+
node = RubyJmeter::Plugins::ResponseTimesPercentiles.new(name, params)
|
378
382
|
attach_node(node, &block)
|
379
383
|
end
|
380
384
|
|
381
|
-
def transactions_per_second(name="
|
382
|
-
node = RubyJmeter::
|
385
|
+
def transactions_per_second(name="Transactions per Second", params={}, &block)
|
386
|
+
node = RubyJmeter::Plugins::TransactionsPerSecond.new(name, params)
|
383
387
|
attach_node(node, &block)
|
384
388
|
end
|
385
389
|
|
386
|
-
def latencies_over_time(name="
|
387
|
-
node = RubyJmeter::
|
390
|
+
def latencies_over_time(name="Response Latencies Over Time", params={}, &block)
|
391
|
+
node = RubyJmeter::Plugins::LatenciesOverTime.new(name, params)
|
388
392
|
attach_node(node, &block)
|
389
393
|
end
|
390
394
|
|
391
|
-
def console_status_logger(name="
|
392
|
-
node = RubyJmeter::
|
395
|
+
def console_status_logger(name="Console Status Logger", params={}, &block)
|
396
|
+
node = RubyJmeter::Plugins::ConsoleStatusLogger.new(name, params)
|
393
397
|
attach_node(node, &block)
|
394
398
|
end
|
395
399
|
|
396
400
|
alias_method :console, :console_status_logger
|
397
401
|
|
398
|
-
def throughput_shaper(name="
|
399
|
-
node = RubyJmeter::
|
402
|
+
def throughput_shaper(name="Throughput Shaping Timer", steps=[], params={}, &block)
|
403
|
+
node = RubyJmeter::Plugins::ThroughputShapingTimer.new(name, steps)
|
400
404
|
attach_node(node, &block)
|
401
405
|
end
|
402
406
|
|
403
407
|
alias_method :shaper, :throughput_shaper
|
404
408
|
|
405
|
-
def dummy_sampler(name="
|
406
|
-
node = RubyJmeter::
|
409
|
+
def dummy_sampler(name="Dummy Sampler", params={}, &block)
|
410
|
+
node = RubyJmeter::Plugins::DummySampler.new(name, params)
|
407
411
|
attach_node(node, &block)
|
408
412
|
end
|
409
413
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class ConsoleStatusLogger
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.reporters.ConsoleStatusLogger guiclass="kg.apc.jmeter.reporters.ConsoleStatusLoggerGui" testclass="kg.apc.jmeter.reporters.ConsoleStatusLogger" testname="#{name}" enabled="true"/>
|
9
|
+
EOF
|
10
|
+
update params
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class DummySampler
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.samplers.DummySampler guiclass="kg.apc.jmeter.samplers.DummySamplerGui" testclass="kg.apc.jmeter.samplers.DummySampler" testname="jp@gc - Dummy Sampler" enabled="true">
|
9
|
+
<boolProp name="WAITING">true</boolProp>
|
10
|
+
<boolProp name="SUCCESFULL">true</boolProp>
|
11
|
+
<stringProp name="RESPONSE_CODE">200</stringProp>
|
12
|
+
<stringProp name="RESPONSE_MESSAGE">OK</stringProp>
|
13
|
+
<stringProp name="REQUEST_DATA"></stringProp>
|
14
|
+
<stringProp name="RESPONSE_DATA"></stringProp>
|
15
|
+
<stringProp name="RESPONSE_TIME">0</stringProp>
|
16
|
+
<stringProp name="LATENCY">0</stringProp>
|
17
|
+
</kg.apc.jmeter.samplers.DummySampler>
|
18
|
+
EOF
|
19
|
+
update params
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class JsonPathExtractor
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'XpathExtractor' : (params[:name] || 'XpathExtractor')
|
8
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
9
|
+
<com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
|
10
|
+
<stringProp name="VAR"></stringProp>
|
11
|
+
<stringProp name="JSONPATH"></stringProp>
|
12
|
+
</com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
|
13
|
+
EOF
|
14
|
+
update params
|
15
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class LatenciesOverTime
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.LatenciesOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
+
<objProp>
|
11
|
+
<name>saveConfig</name>
|
12
|
+
<value class="SampleSaveConfiguration">
|
13
|
+
<time>true</time>
|
14
|
+
<latency>true</latency>
|
15
|
+
<timestamp>true</timestamp>
|
16
|
+
<success>true</success>
|
17
|
+
<label>true</label>
|
18
|
+
<code>true</code>
|
19
|
+
<message>true</message>
|
20
|
+
<threadName>true</threadName>
|
21
|
+
<dataType>true</dataType>
|
22
|
+
<encoding>false</encoding>
|
23
|
+
<assertions>true</assertions>
|
24
|
+
<subresults>true</subresults>
|
25
|
+
<responseData>false</responseData>
|
26
|
+
<samplerData>false</samplerData>
|
27
|
+
<xml>true</xml>
|
28
|
+
<fieldNames>false</fieldNames>
|
29
|
+
<responseHeaders>false</responseHeaders>
|
30
|
+
<requestHeaders>false</requestHeaders>
|
31
|
+
<responseDataOnError>false</responseDataOnError>
|
32
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
+
<bytes>true</bytes>
|
35
|
+
</value>
|
36
|
+
</objProp>
|
37
|
+
<stringProp name="filename"></stringProp>
|
38
|
+
<longProp name="interval_grouping">500</longProp>
|
39
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
+
<stringProp name="include_sample_labels"></stringProp>
|
41
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
+
EOF
|
44
|
+
update params
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class ResponseCodesPerSecond
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseCodesPerSecondGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
+
<objProp>
|
11
|
+
<name>saveConfig</name>
|
12
|
+
<value class="SampleSaveConfiguration">
|
13
|
+
<time>true</time>
|
14
|
+
<latency>true</latency>
|
15
|
+
<timestamp>true</timestamp>
|
16
|
+
<success>true</success>
|
17
|
+
<label>true</label>
|
18
|
+
<code>true</code>
|
19
|
+
<message>true</message>
|
20
|
+
<threadName>true</threadName>
|
21
|
+
<dataType>true</dataType>
|
22
|
+
<encoding>false</encoding>
|
23
|
+
<assertions>true</assertions>
|
24
|
+
<subresults>true</subresults>
|
25
|
+
<responseData>false</responseData>
|
26
|
+
<samplerData>false</samplerData>
|
27
|
+
<xml>true</xml>
|
28
|
+
<fieldNames>false</fieldNames>
|
29
|
+
<responseHeaders>false</responseHeaders>
|
30
|
+
<requestHeaders>false</requestHeaders>
|
31
|
+
<responseDataOnError>false</responseDataOnError>
|
32
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
+
<bytes>true</bytes>
|
35
|
+
</value>
|
36
|
+
</objProp>
|
37
|
+
<stringProp name="filename"></stringProp>
|
38
|
+
<longProp name="interval_grouping">1000</longProp>
|
39
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
+
<stringProp name="include_sample_labels"></stringProp>
|
41
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
+
EOF
|
44
|
+
update params
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class ResponseTimesDistribution
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesDistributionGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
+
<objProp>
|
11
|
+
<name>saveConfig</name>
|
12
|
+
<value class="SampleSaveConfiguration">
|
13
|
+
<time>true</time>
|
14
|
+
<latency>true</latency>
|
15
|
+
<timestamp>true</timestamp>
|
16
|
+
<success>true</success>
|
17
|
+
<label>true</label>
|
18
|
+
<code>true</code>
|
19
|
+
<message>true</message>
|
20
|
+
<threadName>true</threadName>
|
21
|
+
<dataType>true</dataType>
|
22
|
+
<encoding>false</encoding>
|
23
|
+
<assertions>true</assertions>
|
24
|
+
<subresults>true</subresults>
|
25
|
+
<responseData>false</responseData>
|
26
|
+
<samplerData>false</samplerData>
|
27
|
+
<xml>true</xml>
|
28
|
+
<fieldNames>false</fieldNames>
|
29
|
+
<responseHeaders>false</responseHeaders>
|
30
|
+
<requestHeaders>false</requestHeaders>
|
31
|
+
<responseDataOnError>false</responseDataOnError>
|
32
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
+
<bytes>true</bytes>
|
35
|
+
</value>
|
36
|
+
</objProp>
|
37
|
+
<stringProp name="filename"></stringProp>
|
38
|
+
<longProp name="interval_grouping">100</longProp>
|
39
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
+
<stringProp name="include_sample_labels"></stringProp>
|
41
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
+
EOF
|
44
|
+
update params
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class ResponseTimesOverTime
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
+
<objProp>
|
11
|
+
<name>saveConfig</name>
|
12
|
+
<value class="SampleSaveConfiguration">
|
13
|
+
<time>true</time>
|
14
|
+
<latency>true</latency>
|
15
|
+
<timestamp>true</timestamp>
|
16
|
+
<success>true</success>
|
17
|
+
<label>true</label>
|
18
|
+
<code>true</code>
|
19
|
+
<message>true</message>
|
20
|
+
<threadName>true</threadName>
|
21
|
+
<dataType>true</dataType>
|
22
|
+
<encoding>false</encoding>
|
23
|
+
<assertions>true</assertions>
|
24
|
+
<subresults>true</subresults>
|
25
|
+
<responseData>false</responseData>
|
26
|
+
<samplerData>false</samplerData>
|
27
|
+
<xml>true</xml>
|
28
|
+
<fieldNames>false</fieldNames>
|
29
|
+
<responseHeaders>false</responseHeaders>
|
30
|
+
<requestHeaders>false</requestHeaders>
|
31
|
+
<responseDataOnError>false</responseDataOnError>
|
32
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
+
<bytes>true</bytes>
|
35
|
+
</value>
|
36
|
+
</objProp>
|
37
|
+
<stringProp name="filename"></stringProp>
|
38
|
+
<longProp name="interval_grouping">500</longProp>
|
39
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
+
<stringProp name="include_sample_labels"></stringProp>
|
41
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
+
EOF
|
44
|
+
update params
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class ResponseTimesPercentiles
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesPercentilesGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
+
<objProp>
|
11
|
+
<name>saveConfig</name>
|
12
|
+
<value class="SampleSaveConfiguration">
|
13
|
+
<time>true</time>
|
14
|
+
<latency>true</latency>
|
15
|
+
<timestamp>true</timestamp>
|
16
|
+
<success>true</success>
|
17
|
+
<label>true</label>
|
18
|
+
<code>true</code>
|
19
|
+
<message>true</message>
|
20
|
+
<threadName>true</threadName>
|
21
|
+
<dataType>true</dataType>
|
22
|
+
<encoding>false</encoding>
|
23
|
+
<assertions>true</assertions>
|
24
|
+
<subresults>true</subresults>
|
25
|
+
<responseData>false</responseData>
|
26
|
+
<samplerData>false</samplerData>
|
27
|
+
<xml>true</xml>
|
28
|
+
<fieldNames>false</fieldNames>
|
29
|
+
<responseHeaders>false</responseHeaders>
|
30
|
+
<requestHeaders>false</requestHeaders>
|
31
|
+
<responseDataOnError>false</responseDataOnError>
|
32
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
+
<bytes>true</bytes>
|
35
|
+
</value>
|
36
|
+
</objProp>
|
37
|
+
<stringProp name="filename"></stringProp>
|
38
|
+
<longProp name="interval_grouping">500</longProp>
|
39
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
+
<stringProp name="include_sample_labels"></stringProp>
|
41
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
+
EOF
|
44
|
+
update params
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class TransactionsPerSecond
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.TransactionsPerSecondGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
+
<objProp>
|
11
|
+
<name>saveConfig</name>
|
12
|
+
<value class="SampleSaveConfiguration">
|
13
|
+
<time>true</time>
|
14
|
+
<latency>true</latency>
|
15
|
+
<timestamp>true</timestamp>
|
16
|
+
<success>true</success>
|
17
|
+
<label>true</label>
|
18
|
+
<code>true</code>
|
19
|
+
<message>true</message>
|
20
|
+
<threadName>true</threadName>
|
21
|
+
<dataType>true</dataType>
|
22
|
+
<encoding>false</encoding>
|
23
|
+
<assertions>true</assertions>
|
24
|
+
<subresults>true</subresults>
|
25
|
+
<responseData>false</responseData>
|
26
|
+
<samplerData>false</samplerData>
|
27
|
+
<xml>true</xml>
|
28
|
+
<fieldNames>false</fieldNames>
|
29
|
+
<responseHeaders>false</responseHeaders>
|
30
|
+
<requestHeaders>false</requestHeaders>
|
31
|
+
<responseDataOnError>false</responseDataOnError>
|
32
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
+
<bytes>true</bytes>
|
35
|
+
</value>
|
36
|
+
</objProp>
|
37
|
+
<stringProp name="filename"></stringProp>
|
38
|
+
<longProp name="interval_grouping">1000</longProp>
|
39
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
+
<stringProp name="include_sample_labels"></stringProp>
|
41
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
+
EOF
|
44
|
+
update params
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class ThroughputShapingTimer
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name, steps, params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.timers.VariableThroughputTimer guiclass="kg.apc.jmeter.timers.VariableThroughputTimerGui" testclass="kg.apc.jmeter.timers.VariableThroughputTimer" testname="#{name}" enabled="true">
|
9
|
+
<collectionProp name="load_profile"/>
|
10
|
+
</kg.apc.jmeter.timers.VariableThroughputTimer>
|
11
|
+
EOF
|
12
|
+
steps.each_with_index do |step, index|
|
13
|
+
@doc.at_xpath('//collectionProp') <<
|
14
|
+
Nokogiri::XML(<<-EOF.strip_heredoc).children
|
15
|
+
<collectionProp name="step_#{index}">
|
16
|
+
<stringProp name="start_rps_#{index}">#{step[:start_rps]}</stringProp>
|
17
|
+
<stringProp name="end_rps_#{index}">#{step[:end_rps]}</stringProp>
|
18
|
+
<stringProp name="duration_sec_#{index}">#{step[:duration]}</stringProp>
|
19
|
+
</collectionProp>
|
20
|
+
EOF
|
21
|
+
end
|
22
|
+
update params
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/ruby-jmeter/version.rb
CHANGED
data/ruby-jmeter.gemspec
CHANGED
@@ -8,15 +8,15 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.version = RubyJmeter::VERSION
|
9
9
|
gem.authors = ["Tim Koopmans"]
|
10
10
|
gem.email = ["support@flood.io"]
|
11
|
-
gem.description = %q{
|
12
|
-
gem.summary = %q{
|
11
|
+
gem.description = %q{Ruby based DSL for writing JMeter test plans}
|
12
|
+
gem.summary = %q{Ruby based DSL for writing JMeter test plans}
|
13
13
|
gem.homepage = "http://flood-io.github.io/ruby-jmeter/"
|
14
14
|
gem.add_dependency("rest-client")
|
15
15
|
gem.add_dependency("nokogiri")
|
16
16
|
gem.add_runtime_dependency('json-jruby') if RUBY_PLATFORM == 'java'
|
17
17
|
|
18
18
|
gem.files = `git ls-files`.split($/)
|
19
|
-
gem.executables << '
|
19
|
+
gem.executables << 'flood'
|
20
20
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
21
|
gem.require_paths = ['lib']
|
22
22
|
|
data/spec/dsl_spec.rb
CHANGED
@@ -636,6 +636,22 @@ describe "DSL" do
|
|
636
636
|
end
|
637
637
|
|
638
638
|
|
639
|
+
describe 'json extract' do
|
640
|
+
let(:doc) do
|
641
|
+
test do
|
642
|
+
extract json: '.test.path', name: 'my_json'
|
643
|
+
end.to_doc
|
644
|
+
end
|
645
|
+
|
646
|
+
let(:fragment) { doc.search("//com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor").first }
|
647
|
+
|
648
|
+
it 'should match on json path and var' do
|
649
|
+
fragment.search(".//stringProp[@name='JSONPATH']").text.should == '.test.path'
|
650
|
+
fragment.search(".//stringProp[@name='VAR']").text.should == 'my_json'
|
651
|
+
end
|
652
|
+
end
|
653
|
+
|
654
|
+
|
639
655
|
describe 'testdata extract' do
|
640
656
|
let(:doc) do
|
641
657
|
test do
|
metadata
CHANGED
@@ -1,61 +1,61 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-jmeter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.11.
|
4
|
+
version: 2.11.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Koopmans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
description:
|
41
|
+
description: Ruby based DSL for writing JMeter test plans
|
42
42
|
email:
|
43
43
|
- support@flood.io
|
44
44
|
executables:
|
45
|
-
-
|
45
|
+
- flood
|
46
46
|
extensions: []
|
47
47
|
extra_rdoc_files: []
|
48
48
|
files:
|
49
|
-
- .gitattributes
|
50
|
-
- .gitignore
|
51
|
-
- .rspec
|
52
|
-
- .ruby-version
|
49
|
+
- ".gitattributes"
|
50
|
+
- ".gitignore"
|
51
|
+
- ".rspec"
|
52
|
+
- ".ruby-version"
|
53
53
|
- CHANGES.md
|
54
54
|
- Gemfile
|
55
55
|
- LICENSE.txt
|
56
56
|
- README.md
|
57
57
|
- Rakefile
|
58
|
-
- bin/
|
58
|
+
- bin/flood
|
59
59
|
- examples/basic_assertion.rb
|
60
60
|
- examples/basic_auth.rb
|
61
61
|
- examples/basic_cache.rb
|
@@ -72,6 +72,7 @@ files:
|
|
72
72
|
- examples/basic_header.rb
|
73
73
|
- examples/basic_http_request_defaults.rb
|
74
74
|
- examples/basic_http_request_with_files.rb
|
75
|
+
- examples/basic_json_path_extractor.rb
|
75
76
|
- examples/basic_ldap_ext.rb
|
76
77
|
- examples/basic_meta_fu.rb
|
77
78
|
- examples/basic_post.rb
|
@@ -216,15 +217,16 @@ files:
|
|
216
217
|
- lib/ruby-jmeter/helpers/user-agents.rb
|
217
218
|
- lib/ruby-jmeter/idl.rb
|
218
219
|
- lib/ruby-jmeter/idl.xml
|
219
|
-
- lib/ruby-jmeter/plugins/
|
220
|
-
- lib/ruby-jmeter/plugins/
|
221
|
-
- lib/ruby-jmeter/plugins/
|
222
|
-
- lib/ruby-jmeter/plugins/
|
223
|
-
- lib/ruby-jmeter/plugins/
|
224
|
-
- lib/ruby-jmeter/plugins/
|
225
|
-
- lib/ruby-jmeter/plugins/
|
226
|
-
- lib/ruby-jmeter/plugins/
|
227
|
-
- lib/ruby-jmeter/plugins/
|
220
|
+
- lib/ruby-jmeter/plugins/console_status_logger.rb
|
221
|
+
- lib/ruby-jmeter/plugins/dummy_sampler.rb
|
222
|
+
- lib/ruby-jmeter/plugins/json_path_extractor.rb
|
223
|
+
- lib/ruby-jmeter/plugins/latencies_over_time.rb
|
224
|
+
- lib/ruby-jmeter/plugins/response_codes_per_second.rb
|
225
|
+
- lib/ruby-jmeter/plugins/response_times_distribution.rb
|
226
|
+
- lib/ruby-jmeter/plugins/response_times_over_time.rb
|
227
|
+
- lib/ruby-jmeter/plugins/response_times_percentiles.rb
|
228
|
+
- lib/ruby-jmeter/plugins/transactions_per_second.rb
|
229
|
+
- lib/ruby-jmeter/plugins/variable_throughput_timer.rb
|
228
230
|
- lib/ruby-jmeter/version.rb
|
229
231
|
- ruby-jmeter.gemspec
|
230
232
|
- spec/dsl_spec.rb
|
@@ -240,20 +242,20 @@ require_paths:
|
|
240
242
|
- lib
|
241
243
|
required_ruby_version: !ruby/object:Gem::Requirement
|
242
244
|
requirements:
|
243
|
-
- -
|
245
|
+
- - ">="
|
244
246
|
- !ruby/object:Gem::Version
|
245
247
|
version: '0'
|
246
248
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
247
249
|
requirements:
|
248
|
-
- -
|
250
|
+
- - ">="
|
249
251
|
- !ruby/object:Gem::Version
|
250
252
|
version: '0'
|
251
253
|
requirements: []
|
252
254
|
rubyforge_project:
|
253
|
-
rubygems_version: 2.
|
255
|
+
rubygems_version: 2.2.2
|
254
256
|
signing_key:
|
255
257
|
specification_version: 4
|
256
|
-
summary:
|
258
|
+
summary: Ruby based DSL for writing JMeter test plans
|
257
259
|
test_files:
|
258
260
|
- spec/dsl_spec.rb
|
259
261
|
- spec/spec_helper.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCConsoleStatusLogger
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.reporters.ConsoleStatusLogger guiclass="kg.apc.jmeter.reporters.ConsoleStatusLoggerGui" testclass="kg.apc.jmeter.reporters.ConsoleStatusLogger" testname="#{name}" enabled="true"/>
|
9
|
-
EOF
|
10
|
-
update params
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCDummySampler
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.samplers.DummySampler guiclass="kg.apc.jmeter.samplers.DummySamplerGui" testclass="kg.apc.jmeter.samplers.DummySampler" testname="jp@gc - Dummy Sampler" enabled="true">
|
9
|
-
<boolProp name="WAITING">true</boolProp>
|
10
|
-
<boolProp name="SUCCESFULL">true</boolProp>
|
11
|
-
<stringProp name="RESPONSE_CODE">200</stringProp>
|
12
|
-
<stringProp name="RESPONSE_MESSAGE">OK</stringProp>
|
13
|
-
<stringProp name="REQUEST_DATA"></stringProp>
|
14
|
-
<stringProp name="RESPONSE_DATA"></stringProp>
|
15
|
-
<stringProp name="RESPONSE_TIME">0</stringProp>
|
16
|
-
<stringProp name="LATENCY">0</stringProp>
|
17
|
-
</kg.apc.jmeter.samplers.DummySampler>
|
18
|
-
EOF
|
19
|
-
update params
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCLatenciesOverTime
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.LatenciesOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
-
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
-
<objProp>
|
11
|
-
<name>saveConfig</name>
|
12
|
-
<value class="SampleSaveConfiguration">
|
13
|
-
<time>true</time>
|
14
|
-
<latency>true</latency>
|
15
|
-
<timestamp>true</timestamp>
|
16
|
-
<success>true</success>
|
17
|
-
<label>true</label>
|
18
|
-
<code>true</code>
|
19
|
-
<message>true</message>
|
20
|
-
<threadName>true</threadName>
|
21
|
-
<dataType>true</dataType>
|
22
|
-
<encoding>false</encoding>
|
23
|
-
<assertions>true</assertions>
|
24
|
-
<subresults>true</subresults>
|
25
|
-
<responseData>false</responseData>
|
26
|
-
<samplerData>false</samplerData>
|
27
|
-
<xml>true</xml>
|
28
|
-
<fieldNames>false</fieldNames>
|
29
|
-
<responseHeaders>false</responseHeaders>
|
30
|
-
<requestHeaders>false</requestHeaders>
|
31
|
-
<responseDataOnError>false</responseDataOnError>
|
32
|
-
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
-
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
-
<bytes>true</bytes>
|
35
|
-
</value>
|
36
|
-
</objProp>
|
37
|
-
<stringProp name="filename"></stringProp>
|
38
|
-
<longProp name="interval_grouping">500</longProp>
|
39
|
-
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
-
<stringProp name="include_sample_labels"></stringProp>
|
41
|
-
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
-
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
-
EOF
|
44
|
-
update params
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCResponseCodesPerSecond
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseCodesPerSecondGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
-
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
-
<objProp>
|
11
|
-
<name>saveConfig</name>
|
12
|
-
<value class="SampleSaveConfiguration">
|
13
|
-
<time>true</time>
|
14
|
-
<latency>true</latency>
|
15
|
-
<timestamp>true</timestamp>
|
16
|
-
<success>true</success>
|
17
|
-
<label>true</label>
|
18
|
-
<code>true</code>
|
19
|
-
<message>true</message>
|
20
|
-
<threadName>true</threadName>
|
21
|
-
<dataType>true</dataType>
|
22
|
-
<encoding>false</encoding>
|
23
|
-
<assertions>true</assertions>
|
24
|
-
<subresults>true</subresults>
|
25
|
-
<responseData>false</responseData>
|
26
|
-
<samplerData>false</samplerData>
|
27
|
-
<xml>true</xml>
|
28
|
-
<fieldNames>false</fieldNames>
|
29
|
-
<responseHeaders>false</responseHeaders>
|
30
|
-
<requestHeaders>false</requestHeaders>
|
31
|
-
<responseDataOnError>false</responseDataOnError>
|
32
|
-
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
-
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
-
<bytes>true</bytes>
|
35
|
-
</value>
|
36
|
-
</objProp>
|
37
|
-
<stringProp name="filename"></stringProp>
|
38
|
-
<longProp name="interval_grouping">1000</longProp>
|
39
|
-
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
-
<stringProp name="include_sample_labels"></stringProp>
|
41
|
-
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
-
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
-
EOF
|
44
|
-
update params
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCResponseTimesDistribution
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesDistributionGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
-
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
-
<objProp>
|
11
|
-
<name>saveConfig</name>
|
12
|
-
<value class="SampleSaveConfiguration">
|
13
|
-
<time>true</time>
|
14
|
-
<latency>true</latency>
|
15
|
-
<timestamp>true</timestamp>
|
16
|
-
<success>true</success>
|
17
|
-
<label>true</label>
|
18
|
-
<code>true</code>
|
19
|
-
<message>true</message>
|
20
|
-
<threadName>true</threadName>
|
21
|
-
<dataType>true</dataType>
|
22
|
-
<encoding>false</encoding>
|
23
|
-
<assertions>true</assertions>
|
24
|
-
<subresults>true</subresults>
|
25
|
-
<responseData>false</responseData>
|
26
|
-
<samplerData>false</samplerData>
|
27
|
-
<xml>true</xml>
|
28
|
-
<fieldNames>false</fieldNames>
|
29
|
-
<responseHeaders>false</responseHeaders>
|
30
|
-
<requestHeaders>false</requestHeaders>
|
31
|
-
<responseDataOnError>false</responseDataOnError>
|
32
|
-
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
-
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
-
<bytes>true</bytes>
|
35
|
-
</value>
|
36
|
-
</objProp>
|
37
|
-
<stringProp name="filename"></stringProp>
|
38
|
-
<longProp name="interval_grouping">100</longProp>
|
39
|
-
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
-
<stringProp name="include_sample_labels"></stringProp>
|
41
|
-
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
-
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
-
EOF
|
44
|
-
update params
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCResponseTimesOverTime
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
-
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
-
<objProp>
|
11
|
-
<name>saveConfig</name>
|
12
|
-
<value class="SampleSaveConfiguration">
|
13
|
-
<time>true</time>
|
14
|
-
<latency>true</latency>
|
15
|
-
<timestamp>true</timestamp>
|
16
|
-
<success>true</success>
|
17
|
-
<label>true</label>
|
18
|
-
<code>true</code>
|
19
|
-
<message>true</message>
|
20
|
-
<threadName>true</threadName>
|
21
|
-
<dataType>true</dataType>
|
22
|
-
<encoding>false</encoding>
|
23
|
-
<assertions>true</assertions>
|
24
|
-
<subresults>true</subresults>
|
25
|
-
<responseData>false</responseData>
|
26
|
-
<samplerData>false</samplerData>
|
27
|
-
<xml>true</xml>
|
28
|
-
<fieldNames>false</fieldNames>
|
29
|
-
<responseHeaders>false</responseHeaders>
|
30
|
-
<requestHeaders>false</requestHeaders>
|
31
|
-
<responseDataOnError>false</responseDataOnError>
|
32
|
-
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
-
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
-
<bytes>true</bytes>
|
35
|
-
</value>
|
36
|
-
</objProp>
|
37
|
-
<stringProp name="filename"></stringProp>
|
38
|
-
<longProp name="interval_grouping">500</longProp>
|
39
|
-
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
-
<stringProp name="include_sample_labels"></stringProp>
|
41
|
-
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
-
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
-
EOF
|
44
|
-
update params
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCResponseTimesPercentiles
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesPercentilesGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
-
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
-
<objProp>
|
11
|
-
<name>saveConfig</name>
|
12
|
-
<value class="SampleSaveConfiguration">
|
13
|
-
<time>true</time>
|
14
|
-
<latency>true</latency>
|
15
|
-
<timestamp>true</timestamp>
|
16
|
-
<success>true</success>
|
17
|
-
<label>true</label>
|
18
|
-
<code>true</code>
|
19
|
-
<message>true</message>
|
20
|
-
<threadName>true</threadName>
|
21
|
-
<dataType>true</dataType>
|
22
|
-
<encoding>false</encoding>
|
23
|
-
<assertions>true</assertions>
|
24
|
-
<subresults>true</subresults>
|
25
|
-
<responseData>false</responseData>
|
26
|
-
<samplerData>false</samplerData>
|
27
|
-
<xml>true</xml>
|
28
|
-
<fieldNames>false</fieldNames>
|
29
|
-
<responseHeaders>false</responseHeaders>
|
30
|
-
<requestHeaders>false</requestHeaders>
|
31
|
-
<responseDataOnError>false</responseDataOnError>
|
32
|
-
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
-
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
-
<bytes>true</bytes>
|
35
|
-
</value>
|
36
|
-
</objProp>
|
37
|
-
<stringProp name="filename"></stringProp>
|
38
|
-
<longProp name="interval_grouping">500</longProp>
|
39
|
-
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
-
<stringProp name="include_sample_labels"></stringProp>
|
41
|
-
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
-
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
-
EOF
|
44
|
-
update params
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCTransactionsPerSecond
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.TransactionsPerSecondGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="#{enabled(params)}">
|
9
|
-
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
10
|
-
<objProp>
|
11
|
-
<name>saveConfig</name>
|
12
|
-
<value class="SampleSaveConfiguration">
|
13
|
-
<time>true</time>
|
14
|
-
<latency>true</latency>
|
15
|
-
<timestamp>true</timestamp>
|
16
|
-
<success>true</success>
|
17
|
-
<label>true</label>
|
18
|
-
<code>true</code>
|
19
|
-
<message>true</message>
|
20
|
-
<threadName>true</threadName>
|
21
|
-
<dataType>true</dataType>
|
22
|
-
<encoding>false</encoding>
|
23
|
-
<assertions>true</assertions>
|
24
|
-
<subresults>true</subresults>
|
25
|
-
<responseData>false</responseData>
|
26
|
-
<samplerData>false</samplerData>
|
27
|
-
<xml>true</xml>
|
28
|
-
<fieldNames>false</fieldNames>
|
29
|
-
<responseHeaders>false</responseHeaders>
|
30
|
-
<requestHeaders>false</requestHeaders>
|
31
|
-
<responseDataOnError>false</responseDataOnError>
|
32
|
-
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
33
|
-
<assertionsResultsToSave>0</assertionsResultsToSave>
|
34
|
-
<bytes>true</bytes>
|
35
|
-
</value>
|
36
|
-
</objProp>
|
37
|
-
<stringProp name="filename"></stringProp>
|
38
|
-
<longProp name="interval_grouping">1000</longProp>
|
39
|
-
<boolProp name="graph_aggregated">false</boolProp>
|
40
|
-
<stringProp name="include_sample_labels"></stringProp>
|
41
|
-
<stringProp name="exclude_sample_labels"></stringProp>
|
42
|
-
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
43
|
-
EOF
|
44
|
-
update params
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module RubyJmeter
|
2
|
-
|
3
|
-
class GCThroughputShapingTimer
|
4
|
-
attr_accessor :doc
|
5
|
-
include Helper
|
6
|
-
def initialize(name, steps, params={})
|
7
|
-
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
-
<kg.apc.jmeter.timers.VariableThroughputTimer guiclass="kg.apc.jmeter.timers.VariableThroughputTimerGui" testclass="kg.apc.jmeter.timers.VariableThroughputTimer" testname="#{name}" enabled="true">
|
9
|
-
<collectionProp name="load_profile"/>
|
10
|
-
</kg.apc.jmeter.timers.VariableThroughputTimer>
|
11
|
-
EOF
|
12
|
-
steps.each_with_index do |step, index|
|
13
|
-
@doc.at_xpath('//collectionProp') <<
|
14
|
-
Nokogiri::XML(<<-EOF.strip_heredoc).children
|
15
|
-
<collectionProp name="step_#{index}">
|
16
|
-
<stringProp name="start_rps_#{index}">#{step[:start_rps]}</stringProp>
|
17
|
-
<stringProp name="end_rps_#{index}">#{step[:end_rps]}</stringProp>
|
18
|
-
<stringProp name="duration_sec_#{index}">#{step[:duration]}</stringProp>
|
19
|
-
</collectionProp>
|
20
|
-
EOF
|
21
|
-
end
|
22
|
-
update params
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|