ruby-jmeter 2.13.6 → 2.13.7
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.
- checksums.yaml +4 -4
- data/examples/basic_ultimate_thread_group.rb +38 -0
- data/lib/ruby-jmeter/dsl.rb +21 -0
- data/lib/ruby-jmeter/plugins/stepping_thread_group.rb +1 -1
- data/lib/ruby-jmeter/plugins/ultimate_thread_group.rb +21 -0
- data/lib/ruby-jmeter/version.rb +1 -1
- data/spec/dsl_spec.rb +50 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fad51ef27a7e3737b320fbb418db4772ffe6300
|
4
|
+
data.tar.gz: 6b266bfbd9507a0b8f08259d80a110923ef74e0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 590dadd09d7a91119e24acb35af182950e127f4f47be0c4207c8b5b9a2af0655ad00b51ffaab2fa8035f4b034dc021c4666b96d861c941f100c141018aa3a386
|
7
|
+
data.tar.gz: 4b8110856c259925912c3b471f629656000539295ad0d6e137f79ab37419ab6a40d9798ae6144605c2d590cd429706e381c5f27c5ec454d00defa85fbad00ad8
|
@@ -0,0 +1,38 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'ruby-jmeter'
|
3
|
+
|
4
|
+
test do
|
5
|
+
|
6
|
+
defaults domain: 'example.com'
|
7
|
+
|
8
|
+
with_user_agent :chrome
|
9
|
+
|
10
|
+
header [
|
11
|
+
{ name: 'Accept-Encoding', value: 'gzip,deflate,sdch' },
|
12
|
+
{ name: 'Accept', value: 'text/javascript, text/html, application/xml, text/xml, */*' }
|
13
|
+
]
|
14
|
+
|
15
|
+
ultimate [
|
16
|
+
{
|
17
|
+
start_threads: 200,
|
18
|
+
initial_delay: 0,
|
19
|
+
start_time: 30,
|
20
|
+
hold_time: 60,
|
21
|
+
stop_time: 5
|
22
|
+
},
|
23
|
+
{
|
24
|
+
start_threads: 200,
|
25
|
+
initial_delay: 60,
|
26
|
+
start_time: 30,
|
27
|
+
hold_time: 60,
|
28
|
+
stop_time: 5
|
29
|
+
}
|
30
|
+
] do
|
31
|
+
|
32
|
+
random_timer 1000, 3000
|
33
|
+
|
34
|
+
get name: 'home', url: '/'
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
data/lib/ruby-jmeter/dsl.rb
CHANGED
@@ -476,6 +476,27 @@ module RubyJmeter
|
|
476
476
|
|
477
477
|
alias_method :step, :stepping_thread_group
|
478
478
|
|
479
|
+
def ultimate_thread_group(params = {}, &block)
|
480
|
+
node = RubyJmeter::Plugins::UltimateThreadGroup.new(params)
|
481
|
+
|
482
|
+
params.each_with_index do |group, index|
|
483
|
+
node.doc.at_xpath('//collectionProp') <<
|
484
|
+
Nokogiri::XML(<<-EOS.strip_heredoc).children
|
485
|
+
<collectionProp name="index">
|
486
|
+
<stringProp name="#{group[:start_threads]}">#{group[:start_threads]}</stringProp>
|
487
|
+
<stringProp name="#{group[:initial_delay]}">#{group[:initial_delay]}</stringProp>
|
488
|
+
<stringProp name="#{group[:start_time]}">#{group[:start_time]}</stringProp>
|
489
|
+
<stringProp name="#{group[:hold_time]}">#{group[:hold_time]}</stringProp>
|
490
|
+
<stringProp name="#{group[:stop_time]}">#{group[:stop_time]}</stringProp>
|
491
|
+
</collectionProp>
|
492
|
+
EOS
|
493
|
+
end
|
494
|
+
|
495
|
+
attach_node(node, &block)
|
496
|
+
end
|
497
|
+
|
498
|
+
alias_method :ultimate, :ultimate_thread_group
|
499
|
+
|
479
500
|
def composite_graph(name, params = {}, &block)
|
480
501
|
node = RubyJmeter::Plugins::CompositeGraph.new(name, params)
|
481
502
|
attach_node(node, &block)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
module Plugins
|
3
|
+
class UltimateThreadGroup
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<kg.apc.jmeter.threads.UltimateThreadGroup guiclass="kg.apc.jmeter.threads.UltimateThreadGroupGui" testclass="kg.apc.jmeter.threads.UltimateThreadGroup" testname="jp@gc - Stepping Thread Group" enabled="true">
|
9
|
+
<collectionProp name="ultimatethreadgroupdata">
|
10
|
+
</collectionProp>
|
11
|
+
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
|
12
|
+
<boolProp name="LoopController.continue_forever">false</boolProp>
|
13
|
+
<intProp name="LoopController.loops">-1</intProp>
|
14
|
+
</elementProp>
|
15
|
+
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
|
16
|
+
</kg.apc.jmeter.threads.UltimateThreadGroup>
|
17
|
+
EOF
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/ruby-jmeter/version.rb
CHANGED
data/spec/dsl_spec.rb
CHANGED
@@ -216,6 +216,56 @@ describe 'DSL' do
|
|
216
216
|
end
|
217
217
|
end
|
218
218
|
|
219
|
+
describe 'stepping thread group' do
|
220
|
+
let(:doc) do
|
221
|
+
test do
|
222
|
+
stepping_thread_group on_sample_error: 'startnextloop', total_threads: 100, initial_delay: 1, start_threads: 2, add_threads: 3, start_every: 4, stop_threads: 5, stop_every: 6, flight_time: 7, rampup: 8
|
223
|
+
end.to_doc
|
224
|
+
end
|
225
|
+
|
226
|
+
let(:fragment) { doc.search("//kg.apc.jmeter.threads.SteppingThreadGroup").first }
|
227
|
+
it 'should match on on_sample_error' do
|
228
|
+
puts fragment
|
229
|
+
fragment.search(".//stringProp[@name='ThreadGroup.on_sample_error']").text.should == 'startnextloop'
|
230
|
+
end
|
231
|
+
|
232
|
+
it 'should match on total_threads' do
|
233
|
+
fragment.search(".//stringProp[@name='ThreadGroup.num_threads']").text.should == '100'
|
234
|
+
end
|
235
|
+
|
236
|
+
it 'should match on initial_delay' do
|
237
|
+
fragment.search(".//stringProp[@name='Threads initial delay']").text.should == '1'
|
238
|
+
end
|
239
|
+
|
240
|
+
it 'should match on start_threads' do
|
241
|
+
fragment.search(".//stringProp[@name='Start users count']").text.should == '2'
|
242
|
+
end
|
243
|
+
|
244
|
+
it 'should match on add_threads' do
|
245
|
+
fragment.search(".//stringProp[@name='Start users count burst']").text.should == '3'
|
246
|
+
end
|
247
|
+
|
248
|
+
it 'should match on start_every' do
|
249
|
+
fragment.search(".//stringProp[@name='Start users period']").text.should == '4'
|
250
|
+
end
|
251
|
+
|
252
|
+
it 'should match on stop_threads' do
|
253
|
+
fragment.search(".//stringProp[@name='Stop users count']").text.should == '5'
|
254
|
+
end
|
255
|
+
|
256
|
+
it 'should match on stop_every' do
|
257
|
+
fragment.search(".//stringProp[@name='Stop users period']").text.should == '6'
|
258
|
+
end
|
259
|
+
|
260
|
+
it 'should match on flight_time' do
|
261
|
+
fragment.search(".//stringProp[@name='flighttime']").text.should == '7'
|
262
|
+
end
|
263
|
+
|
264
|
+
it 'should match on rampup' do
|
265
|
+
fragment.search(".//stringProp[@name='rampUp']").text.should == '8'
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
219
269
|
describe 'thread groups old syntax' do
|
220
270
|
let(:doc) do
|
221
271
|
test do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-jmeter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.13.
|
4
|
+
version: 2.13.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Koopmans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -100,6 +100,7 @@ files:
|
|
100
100
|
- examples/basic_thread_groups.rb
|
101
101
|
- examples/basic_throughput_controller.rb
|
102
102
|
- examples/basic_throughput_shaping_timer.rb
|
103
|
+
- examples/basic_ultimate_thread_group.rb
|
103
104
|
- examples/basic_user_defined_variables.rb
|
104
105
|
- examples/demo.csv
|
105
106
|
- examples/etsy_login_browse.rb
|
@@ -251,6 +252,7 @@ files:
|
|
251
252
|
- lib/ruby-jmeter/plugins/response_times_percentiles.rb
|
252
253
|
- lib/ruby-jmeter/plugins/stepping_thread_group.rb
|
253
254
|
- lib/ruby-jmeter/plugins/transactions_per_second.rb
|
255
|
+
- lib/ruby-jmeter/plugins/ultimate_thread_group.rb
|
254
256
|
- lib/ruby-jmeter/plugins/variable_throughput_timer.rb
|
255
257
|
- lib/ruby-jmeter/version.rb
|
256
258
|
- ruby-jmeter.gemspec
|