gridinit-jmeter 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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