gridinit-jmeter 0.2.0 → 0.2.1

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.
@@ -282,6 +282,14 @@ module Gridinit
282
282
  self.instance_exec(&block) if block
283
283
  end
284
284
 
285
+ def gc_console_status_logger(name="jp@gc - Console Status Logger", params={}, &block)
286
+ node = Gridinit::Jmeter::GCConsoleStatusLogger.new(name, params)
287
+ attach_to_last(node, caller)
288
+ self.instance_exec(&block) if block
289
+ end
290
+
291
+ alias_method :console, :gc_console_status_logger
292
+
285
293
  def throughput_shaper(name="jp@gc - Throughput Shaping Timer", steps=[], params={}, &block)
286
294
  node = Gridinit::Jmeter::ThroughputShapingTimer.new(name, steps)
287
295
  attach_to_last(node, caller)
@@ -296,19 +304,36 @@ module Gridinit
296
304
 
297
305
  def jmx(params={})
298
306
  file(params)
299
- logger.info "JMX saved to: #{params[:file]}"
307
+ logger.info "Test plan saved to: #{params[:file]}"
300
308
  end
301
309
 
302
310
  def run(params={})
303
311
  file(params)
304
312
  logger.warn "Test executing locally ..."
305
313
  cmd = "#{params[:path]}jmeter -n -t #{params[:file]} -j #{params[:log] ? params[:log] : 'jmeter.log' } -l #{params[:jtl] ? params[:jtl] : 'jmeter.jtl' }"
306
- logger.info cmd
307
- `#{cmd}`
308
- logger.info "Results at: #{params[:jtl] ? params[:jtl] : 'jmeter.jtl'}"
314
+ logger.debug cmd
315
+ Open3.popen2e("#{cmd} -q #{File.dirname(__FILE__)}/helpers/jmeter.properties") do |stdin, stdout_err, wait_thr|
316
+ while line = stdout_err.gets
317
+ logger.debug line.chomp if params[:debug]
318
+ end
319
+
320
+ exit_status = wait_thr.value
321
+ unless exit_status.success?
322
+ abort "FAILED !!! #{cmd}"
323
+ end
324
+ end
325
+ logger.info "Local Results at: #{params[:jtl] ? params[:jtl] : 'jmeter.jtl'}"
309
326
  end
310
327
 
311
328
  def grid(token, params={})
329
+ if params[:region] == 'local'
330
+ logger.info "Starting test ..."
331
+ params[:started] = Time.now
332
+ run params
333
+ params[:completed] = Time.now
334
+ logger.info "Completed test ..."
335
+ logger.debug "Uploading results ..." if params[:debug]
336
+ end
312
337
  RestClient.proxy = params[:proxy] if params[:proxy]
313
338
  begin
314
339
  file = Tempfile.new('jmeter')
@@ -318,10 +343,13 @@ module Gridinit
318
343
  {
319
344
  :name => 'attachment',
320
345
  :attachment => File.new("#{file.path}", 'rb'),
346
+ :results => (File.new("#{params[:jtl] ? params[:jtl] : 'jmeter.jtl'}", 'rb') if params[:region] == 'local'),
321
347
  :multipart => true,
322
- :content_type => 'application/octet-stream'
348
+ :content_type => 'application/octet-stream',
349
+ :started => params[:started],
350
+ :completed => params[:completed]
323
351
  }
324
- logger.info "Results at: #{JSON.parse(response)["results"]}" if response.code == 200
352
+ logger.info "Grid Results at: #{JSON.parse(response)["results"]}" if response.code == 200
325
353
  rescue => e
326
354
  logger.fatal "There was an error: #{e.message}"
327
355
  end
@@ -0,0 +1,28 @@
1
+ jmeter.save.saveservice.output_format=csv
2
+ jmeter.save.saveservice.data_type=false
3
+ jmeter.save.saveservice.label=true
4
+ jmeter.save.saveservice.response_code=true
5
+ jmeter.save.saveservice.response_data=false
6
+ jmeter.save.saveservice.response_data.on_error=false
7
+ jmeter.save.saveservice.response_message=false
8
+ jmeter.save.saveservice.successful=true
9
+ jmeter.save.saveservice.thread_name=true
10
+ jmeter.save.saveservice.time=true
11
+ jmeter.save.saveservice.subresults=false
12
+ jmeter.save.saveservice.assertions=false
13
+ jmeter.save.saveservice.latency=true
14
+ jmeter.save.saveservice.samplerData=false
15
+ jmeter.save.saveservice.responseHeaders=false
16
+ jmeter.save.saveservice.requestHeaders=false
17
+ jmeter.save.saveservice.encoding=false
18
+ jmeter.save.saveservice.bytes=true
19
+ jmeter.save.saveservice.url=false
20
+ jmeter.save.saveservice.filename=false
21
+ jmeter.save.saveservice.hostname=false
22
+ jmeter.save.saveservice.thread_counts=true
23
+ jmeter.save.saveservice.sample_count=true
24
+ jmeter.save.saveservice.idle_time=false
25
+ jmeter.save.saveservice.timestamp_format=ms
26
+ jmeter.save.saveservice.default_delimiter=|
27
+ jmeter.save.saveservice.print_field_names=false
28
+ sample_variables=testguid
@@ -0,0 +1,16 @@
1
+ module Gridinit
2
+ module Jmeter
3
+
4
+ class GCConsoleStatusLogger
5
+ attr_accessor :doc
6
+ include Helper
7
+ def initialize(name, params={})
8
+ @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
+ <kg.apc.jmeter.reporters.ConsoleStatusLogger guiclass="kg.apc.jmeter.reporters.ConsoleStatusLoggerGui" testclass="kg.apc.jmeter.reporters.ConsoleStatusLogger" testname="#{name}" enabled="true"/>
10
+ EOF
11
+ update params
12
+ end
13
+ end
14
+
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  module Gridinit
2
2
  module Jmeter
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
@@ -2,6 +2,7 @@ require 'nokogiri'
2
2
  require 'rest_client'
3
3
  require 'json'
4
4
  require 'cgi'
5
+ require 'open3'
5
6
 
6
7
  # DSL
7
8
  require 'gridinit-jmeter/dsl'
@@ -95,6 +96,7 @@ require 'gridinit-jmeter/helpers/user-agents'
95
96
  require 'gridinit-jmeter/listeners/gc_response_times_over_time'
96
97
  require 'gridinit-jmeter/listeners/gc_response_times_percentiles'
97
98
  require 'gridinit-jmeter/listeners/gc_transactions_per_second'
99
+ require 'gridinit-jmeter/listeners/gc_console_status_logger'
98
100
 
99
101
  # LOGIC CONTROLLERS
100
102
  require 'gridinit-jmeter/controllers/transaction'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gridinit-jmeter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-25 00:00:00.000000000 Z
12
+ date: 2013-04-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -103,9 +103,11 @@ files:
103
103
  - lib/gridinit-jmeter/dsl.rb
104
104
  - lib/gridinit-jmeter/helpers/dsl_helper.rb
105
105
  - lib/gridinit-jmeter/helpers/fallback_content_proxy.rb
106
+ - lib/gridinit-jmeter/helpers/jmeter.properties
106
107
  - lib/gridinit-jmeter/helpers/logger-colors.rb
107
108
  - lib/gridinit-jmeter/helpers/strip-heredoc.rb
108
109
  - lib/gridinit-jmeter/helpers/user-agents.rb
110
+ - lib/gridinit-jmeter/listeners/gc_console_status_logger.rb
109
111
  - lib/gridinit-jmeter/listeners/gc_latencies_over_time.rb
110
112
  - lib/gridinit-jmeter/listeners/gc_response_codes_per_second.rb
111
113
  - lib/gridinit-jmeter/listeners/gc_response_times_distribution.rb