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.
data/lib/gridinit-jmeter/dsl.rb
CHANGED
@@ -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 "
|
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.
|
307
|
-
|
308
|
-
|
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
|
data/lib/gridinit-jmeter.rb
CHANGED
@@ -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.
|
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-
|
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
|