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.
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
|