gridinit-jmeter 0.1.9 → 0.2.0
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/Gemfile
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'gridinit-jmeter'
|
3
|
+
|
4
|
+
test do
|
5
|
+
threads 100 do # threads = RPS * <max response time ms> / 1000
|
6
|
+
|
7
|
+
throughput_shaper 'increasing load test', [
|
8
|
+
{ :start_rps => 100, :end_rps => 100, :duration => 60 },
|
9
|
+
{ :start_rps => 200, :end_rps => 200, :duration => 60 },
|
10
|
+
{ :start_rps => 300, :end_rps => 300, :duration => 60 },
|
11
|
+
{ :start_rps => 400, :end_rps => 400, :duration => 60 },
|
12
|
+
{ :start_rps => 500, :end_rps => 500, :duration => 60 },
|
13
|
+
{ :start_rps => 600, :end_rps => 600, :duration => 60 }
|
14
|
+
]
|
15
|
+
|
16
|
+
transaction 'Google Search' do
|
17
|
+
visit 'Home Page', 'http://google.com/'
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end.jmx
|
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 throughput_shaper(name="jp@gc - Throughput Shaping Timer", steps=[], params={}, &block)
|
286
|
+
node = Gridinit::Jmeter::ThroughputShapingTimer.new(name, steps)
|
287
|
+
attach_to_last(node, caller)
|
288
|
+
self.instance_exec(&block) if block
|
289
|
+
end
|
290
|
+
|
291
|
+
alias_method :shaper, :throughput_shaper
|
292
|
+
|
285
293
|
def out(params={})
|
286
294
|
puts doc.to_xml(:indent => 2)
|
287
295
|
end
|
@@ -359,6 +367,8 @@ module Gridinit
|
|
359
367
|
'//RegexExtractor/following-sibling::hashTree'
|
360
368
|
when 'random_timer'
|
361
369
|
'//GaussianRandomTimer/following-sibling::hashTree'
|
370
|
+
when 'throughput_shaper'
|
371
|
+
'//kg.apc.jmeter.timers.VariableThroughputTimer/following-sibling::hashTree'
|
362
372
|
else
|
363
373
|
'//TestPlan/following-sibling::hashTree'
|
364
374
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Gridinit
|
2
|
+
module Jmeter
|
3
|
+
|
4
|
+
class ThroughputShapingTimer
|
5
|
+
attr_accessor :doc
|
6
|
+
include Helper
|
7
|
+
def initialize(name, steps, params={})
|
8
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
9
|
+
<kg.apc.jmeter.timers.VariableThroughputTimer guiclass="kg.apc.jmeter.timers.VariableThroughputTimerGui" testclass="kg.apc.jmeter.timers.VariableThroughputTimer" testname="#{name}" enabled="true">
|
10
|
+
<collectionProp name="load_profile"/>
|
11
|
+
</kg.apc.jmeter.timers.VariableThroughputTimer>
|
12
|
+
EOF
|
13
|
+
steps.each_with_index do |step, index|
|
14
|
+
@doc.at_xpath('//collectionProp') <<
|
15
|
+
Nokogiri::XML(<<-EOF.strip_heredoc).children
|
16
|
+
<collectionProp name="step_#{index}">
|
17
|
+
<stringProp name="start_rps_#{index}">#{step[:start_rps]}</stringProp>
|
18
|
+
<stringProp name="end_rps_#{index}">#{step[:end_rps]}</stringProp>
|
19
|
+
<stringProp name="duration_sec_#{index}">#{step[:duration]}</stringProp>
|
20
|
+
</collectionProp>
|
21
|
+
EOF
|
22
|
+
end
|
23
|
+
update params
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/lib/gridinit-jmeter.rb
CHANGED
@@ -50,7 +50,7 @@ require 'gridinit-jmeter/helpers/user-agents'
|
|
50
50
|
# require 'gridinit-jmeter/timers/constant_throughput_timer'
|
51
51
|
# require 'gridinit-jmeter/timers/constant_timer'
|
52
52
|
require 'gridinit-jmeter/timers/gaussian_random_timer'
|
53
|
-
|
53
|
+
require 'gridinit-jmeter/timers/gc_throughput_shaping_timer'
|
54
54
|
# require 'gridinit-jmeter/timers/jsr223_timer'
|
55
55
|
# require 'gridinit-jmeter/timers/poisson_random_timer'
|
56
56
|
# require 'gridinit-jmeter/timers/synchronizing_timer'
|
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.
|
4
|
+
version: 0.2.0
|
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-
|
12
|
+
date: 2013-03-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- examples/basic_testplan.jmx
|
83
83
|
- examples/basic_testplan.rb
|
84
84
|
- examples/basic_think_time.rb
|
85
|
+
- examples/basic_throughput_shaping_timer.rb
|
85
86
|
- examples/etsy_login_browse.rb
|
86
87
|
- examples/jbhifi_now_search.rb
|
87
88
|
- gridinit-jmeter.gemspec
|
@@ -126,6 +127,7 @@ files:
|
|
126
127
|
- lib/gridinit-jmeter/test_plan/test_plan.rb
|
127
128
|
- lib/gridinit-jmeter/threads/thread_group.rb
|
128
129
|
- lib/gridinit-jmeter/timers/gaussian_random_timer.rb
|
130
|
+
- lib/gridinit-jmeter/timers/gc_throughput_shaping_timer.rb
|
129
131
|
- lib/gridinit-jmeter/version.rb
|
130
132
|
- spec/dsl_spec.rb
|
131
133
|
- spec/spec_helper.rb
|