ruby-jmeter 2.12.0 → 2.12.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd5962c2dbebb023bfdccdae71cdf2e20f35c850
4
- data.tar.gz: 2f6d070dd839fb1c2ab940d230d9b7425135ea08
3
+ metadata.gz: 9f1bff2da4ca154924abf3dc2b8ce9e441b592a5
4
+ data.tar.gz: bbadb15adf193c28c0b5fbbcaf33eda278c71cb4
5
5
  SHA512:
6
- metadata.gz: b7ba4e23772b00701f5978ad6f0f6613ed71401d865a0821a5f8f73f7c429d3da585140ba6a4fc423503df21e685216472b1780deeb74e7b097b79bbabafedea
7
- data.tar.gz: 5af6ad4233fbe7b72f79ea9fe12e807ab7750311b66ecf9a6e9f5b39bb761b575af6e924dfc7b5566642e00273be9fb5806850fcceb642e14c6eafa5b5fb29f6
6
+ metadata.gz: 2b1262480a75106af99796cb012aa4469189a36742ba7411ae155128056148c39b835d62be65e5ccb42434a12a6b32d2cb1151b09faacd6ded838a0e08ce23a4
7
+ data.tar.gz: e4b1b441b2fe03d70deb5ca61da08c0b36bdf2a9aea4c0165d2169cdf4099d5938665cc7f3133238d65802e0667569f2a5f64dcf9df35067dab40cdfeb4fb0a0
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.1
@@ -0,0 +1,29 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ cookies clear_each_iteration: false
6
+ threads count: 5, rampup: 10 do
7
+ transaction name: 'Google Search' do
8
+ visit name: 'Home Page', url: 'http://google.com/'
9
+ end
10
+ end
11
+
12
+ #
13
+ # You need jmeter-plugins at Google code
14
+ # http://code.google.com/p/jmeter-plugins
15
+ #
16
+ latencies_over_time 'Response Latencies Over Time'
17
+ active_threads 'Active Threads'
18
+
19
+ composite 'Composite Graph', [
20
+ {
21
+ graph: 'Response Latencies Over Time',
22
+ metric: 'Home Page'
23
+ },
24
+ {
25
+ graph: 'Active Threads',
26
+ metric: 'Overall Active Threads'
27
+ }
28
+ ]
29
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,45 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ cookies clear_each_iteration: false
6
+ threads count: 5, rampup: 10 do
7
+ transaction name: 'Google Search' do
8
+ visit name: 'Home Page', url: 'http://google.com/'
9
+ end
10
+ end
11
+
12
+ #
13
+ # You need jmeter-plugins at Google code
14
+ # http://code.google.com/p/jmeter-plugins
15
+ #
16
+ latencies_over_time 'Response Latencies Over Time'
17
+ active_threads 'Active Threads'
18
+
19
+ #
20
+ # You need perfmon agent running
21
+ # http://jmeter-plugins.org/wiki/PerfMonAgent/
22
+ #
23
+ perfmon_collector 'Perfmon Metrics Collector', [
24
+ {
25
+ server: 'localhost',
26
+ port: 4444,
27
+ metric: 'Memory',
28
+ parameters: 'name=node#1:label=memory-node'
29
+ }]
30
+
31
+ composite 'Composite Graph', [
32
+ {
33
+ graph: 'Response Latencies Over Time',
34
+ metric: 'Home Page'
35
+ },
36
+ {
37
+ graph: 'Active Threads',
38
+ metric: 'Overall Active Threads'
39
+ },
40
+ {
41
+ graph: 'Perfmon Metrics Collector',
42
+ metric: 'localhost Memory memory-node'
43
+ }
44
+ ]
45
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -223,8 +223,6 @@
223
223
  `monitor_results`
224
224
  - Response Time Graph
225
225
  `response_time_graph`
226
- - Response Time Graph
227
- `response_time_graph`
228
226
  - Save Responses to a file
229
227
  `save_responses_to_a_file`
230
228
  - Simple Data Writer
@@ -236,4 +234,4 @@
236
234
  - View Results in Table
237
235
  `view_results_in_table`
238
236
  - View Results Tree
239
- `view_results_tree`
237
+ `view_results_tree`
@@ -455,6 +455,27 @@ module RubyJmeter
455
455
 
456
456
  alias_method :step, :stepping_thread_group
457
457
 
458
+ def composite_graph(name, params={}, &block)
459
+ node = RubyJmeter::Plugins::CompositeGraph.new(name, params)
460
+ attach_node(node, &block)
461
+ end
462
+
463
+ alias_method :composite, :composite_graph
464
+
465
+ def active_threads_over_time(params={}, &block)
466
+ node = RubyJmeter::Plugins::ActiveThreadsOverTime.new(params)
467
+ attach_node(node, &block)
468
+ end
469
+
470
+ alias_method :active_threads, :active_threads_over_time
471
+
472
+ def perfmon_collector(name, params={}, &block)
473
+ node = RubyJmeter::Plugins::PerfmonCollector.new(name, params)
474
+ attach_node(node, &block)
475
+ end
476
+
477
+ alias_method :perfmon, :perfmon_collector
478
+
458
479
  # API Methods
459
480
 
460
481
  def out(params={})
@@ -0,0 +1,56 @@
1
+ module RubyJmeter
2
+ module Plugins
3
+ class ActiveThreadsOverTime
4
+ attr_accessor :doc
5
+ include Helper
6
+ def initialize(name, params={})
7
+ @doc = Nokogiri::XML(<<-XML.strip_heredoc)
8
+ <kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ThreadsStateOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{name}" enabled="true">
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>false</message>
20
+ <threadName>true</threadName>
21
+ <dataType>false</dataType>
22
+ <encoding>false</encoding>
23
+ <assertions>false</assertions>
24
+ <subresults>false</subresults>
25
+ <responseData>false</responseData>
26
+ <samplerData>false</samplerData>
27
+ <xml>false</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
+ <threadCounts>true</threadCounts>
36
+ <sampleCount>true</sampleCount>
37
+ </value>
38
+ </objProp>
39
+ <stringProp name="filename"></stringProp>
40
+ <longProp name="interval_grouping">500</longProp>
41
+ <boolProp name="graph_aggregated">false</boolProp>
42
+ <stringProp name="include_sample_labels"></stringProp>
43
+ <stringProp name="exclude_sample_labels"></stringProp>
44
+ <stringProp name="start_offset"></stringProp>
45
+ <stringProp name="end_offset"></stringProp>
46
+ <boolProp name="include_checkbox_state">false</boolProp>
47
+ <boolProp name="exclude_checkbox_state">false</boolProp>
48
+ </kg.apc.jmeter.vizualizers.CorrectedResultCollector>
49
+ XML
50
+ update params
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+
@@ -0,0 +1,70 @@
1
+ module RubyJmeter
2
+ module Plugins
3
+ class CompositeGraph
4
+ attr_accessor :doc
5
+ include Helper
6
+ def initialize(name, params={})
7
+ graphNodes = params.collect { |g| "<stringProp name=\"\">#{g[:graph]}</stringProp>"}
8
+ metricNodes = params.collect { |m| "<stringProp name=\"\">#{m[:metric]}</stringProp>"}
9
+
10
+ composite_collections = Nokogiri::XML(<<-XML.strip_heredoc)
11
+ <collectionProp name="COMPOSITE_CFG">
12
+ <collectionProp name="">
13
+ #{graphNodes.join "\n"}
14
+ </collectionProp>
15
+ <collectionProp name="">
16
+ #{metricNodes.join "\n"}
17
+ </collectionProp>
18
+ </collectionProp>
19
+ XML
20
+
21
+ @doc = Nokogiri::XML(<<-XML.strip_heredoc)
22
+ <kg.apc.jmeter.vizualizers.CompositeResultCollector guiclass="kg.apc.jmeter.vizualizers.CompositeGraphGui" testclass="kg.apc.jmeter.vizualizers.CompositeResultCollector" testname="#{name}" enabled="true">
23
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
24
+ <objProp>
25
+ <name>saveConfig</name>
26
+ <value class="SampleSaveConfiguration">
27
+ <time>true</time>
28
+ <latency>true</latency>
29
+ <timestamp>true</timestamp>
30
+ <success>true</success>
31
+ <label>true</label>
32
+ <code>true</code>
33
+ <message>false</message>
34
+ <threadName>true</threadName>
35
+ <dataType>false</dataType>
36
+ <encoding>false</encoding>
37
+ <assertions>false</assertions>
38
+ <subresults>false</subresults>
39
+ <responseData>false</responseData>
40
+ <samplerData>false</samplerData>
41
+ <xml>false</xml>
42
+ <fieldNames>false</fieldNames>
43
+ <responseHeaders>false</responseHeaders>
44
+ <requestHeaders>false</requestHeaders>
45
+ <responseDataOnError>false</responseDataOnError>
46
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
47
+ <assertionsResultsToSave>0</assertionsResultsToSave>
48
+ <bytes>true</bytes>
49
+ <threadCounts>true</threadCounts>
50
+ <sampleCount>true</sampleCount>
51
+ </value>
52
+ </objProp>
53
+ <stringProp name="filename"></stringProp>
54
+ <longProp name="interval_grouping">500</longProp>
55
+ <boolProp name="graph_aggregated">false</boolProp>
56
+ <stringProp name="include_sample_labels"></stringProp>
57
+ <stringProp name="exclude_sample_labels"></stringProp>
58
+ <stringProp name="start_offset"></stringProp>
59
+ <stringProp name="end_offset"></stringProp>
60
+ <boolProp name="include_checkbox_state">false</boolProp>
61
+ <boolProp name="exclude_checkbox_state">false</boolProp>
62
+ #{composite_collections.root.to_s}
63
+ </kg.apc.jmeter.vizualizers.CompositeResultCollector>
64
+ XML
65
+ update params
66
+ end
67
+ end
68
+ end
69
+ end
70
+
@@ -0,0 +1,73 @@
1
+ module RubyJmeter
2
+ module Plugins
3
+ class PerfmonCollector
4
+ attr_accessor :doc
5
+ include Helper
6
+ def initialize(name, params={})
7
+ metricNodes = params.collect do |m|
8
+ "
9
+ <collectionProp name=\"\">
10
+ <stringProp name=\"\">#{m[:server]}</stringProp>
11
+ <stringProp name=\"\">#{m[:port]}</stringProp>
12
+ <stringProp name=\"\">#{m[:metric]}</stringProp>
13
+ <stringProp name=\"\">#{m[:parameters]}</stringProp>
14
+ </collectionProp>
15
+ "
16
+ end
17
+
18
+ metricConnections = Nokogiri::XML(<<-XML.strip_heredoc)
19
+ <collectionProp name="metricConnections">
20
+ #{metricNodes.join "\n"}
21
+ </collectionProp>
22
+ XML
23
+
24
+ @doc = Nokogiri::XML(<<-XML.strip_heredoc)
25
+ <kg.apc.jmeter.perfmon.PerfMonCollector guiclass="kg.apc.jmeter.vizualizers.PerfMonGui" testclass="kg.apc.jmeter.perfmon.PerfMonCollector" testname="#{name}" enabled="true">
26
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
27
+ <objProp>
28
+ <name>saveConfig</name>
29
+ <value class="SampleSaveConfiguration">
30
+ <time>true</time>
31
+ <latency>true</latency>
32
+ <timestamp>true</timestamp>
33
+ <success>true</success>
34
+ <label>true</label>
35
+ <code>true</code>
36
+ <message>false</message>
37
+ <threadName>true</threadName>
38
+ <dataType>false</dataType>
39
+ <encoding>false</encoding>
40
+ <assertions>false</assertions>
41
+ <subresults>false</subresults>
42
+ <responseData>false</responseData>
43
+ <samplerData>false</samplerData>
44
+ <xml>false</xml>
45
+ <fieldNames>false</fieldNames>
46
+ <responseHeaders>false</responseHeaders>
47
+ <requestHeaders>false</requestHeaders>
48
+ <responseDataOnError>false</responseDataOnError>
49
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
50
+ <assertionsResultsToSave>0</assertionsResultsToSave>
51
+ <bytes>true</bytes>
52
+ <threadCounts>true</threadCounts>
53
+ <sampleCount>true</sampleCount>
54
+ </value>
55
+ </objProp>
56
+ <stringProp name="filename"></stringProp>
57
+ <longProp name="interval_grouping">1000</longProp>
58
+ <boolProp name="graph_aggregated">false</boolProp>
59
+ <stringProp name="include_sample_labels"></stringProp>
60
+ <stringProp name="exclude_sample_labels"></stringProp>
61
+ <stringProp name="start_offset"></stringProp>
62
+ <stringProp name="end_offset"></stringProp>
63
+ <boolProp name="include_checkbox_state">false</boolProp>
64
+ <boolProp name="exclude_checkbox_state">false</boolProp>
65
+ #{metricConnections.root.to_s}
66
+ </kg.apc.jmeter.perfmon.PerfMonCollector>
67
+ XML
68
+ update params
69
+ end
70
+ end
71
+ end
72
+ end
73
+
@@ -1,3 +1,3 @@
1
1
  module RubyJmeter
2
- VERSION = "2.12.0"
2
+ VERSION = "2.12.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-jmeter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.0
4
+ version: 2.12.1
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-11-11 00:00:00.000000000 Z
11
+ date: 2014-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -50,6 +50,7 @@ files:
50
50
  - ".gitignore"
51
51
  - ".rspec"
52
52
  - ".ruby-version"
53
+ - ".travis.yml"
53
54
  - CHANGES.md
54
55
  - Gemfile
55
56
  - LICENSE.txt
@@ -60,6 +61,7 @@ files:
60
61
  - examples/basic_auth.rb
61
62
  - examples/basic_browser_headers.rb
62
63
  - examples/basic_cache.rb
64
+ - examples/basic_composite_graph.rb
63
65
  - examples/basic_cookies.rb
64
66
  - examples/basic_counter.rb
65
67
  - examples/basic_extract.rb
@@ -79,6 +81,7 @@ files:
79
81
  - examples/basic_ldap_ext.rb
80
82
  - examples/basic_loops.rb
81
83
  - examples/basic_meta_fu.rb
84
+ - examples/basic_perfmon.rb
82
85
  - examples/basic_post.rb
83
86
  - examples/basic_preprocessor_user_parameters.rb
84
87
  - examples/basic_query_params.rb
@@ -225,10 +228,13 @@ files:
225
228
  - lib/ruby-jmeter/helpers/user-agents.rb
226
229
  - lib/ruby-jmeter/idl.rb
227
230
  - lib/ruby-jmeter/idl.xml
231
+ - lib/ruby-jmeter/plugins/active_threads_over_time.rb
232
+ - lib/ruby-jmeter/plugins/composite_graph.rb
228
233
  - lib/ruby-jmeter/plugins/console_status_logger.rb
229
234
  - lib/ruby-jmeter/plugins/dummy_sampler.rb
230
235
  - lib/ruby-jmeter/plugins/json_path_extractor.rb
231
236
  - lib/ruby-jmeter/plugins/latencies_over_time.rb
237
+ - lib/ruby-jmeter/plugins/perfmon_collector.rb
232
238
  - lib/ruby-jmeter/plugins/response_codes_per_second.rb
233
239
  - lib/ruby-jmeter/plugins/response_times_distribution.rb
234
240
  - lib/ruby-jmeter/plugins/response_times_over_time.rb