ruby-jmeter 2.11.10 → 2.11.11
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_test_fragment.rb +14 -0
- data/lib/ruby-jmeter/DSL.md +2 -0
- data/lib/ruby-jmeter/dsl.rb +8 -2
- data/lib/ruby-jmeter/dsl/test_fragment.rb +23 -0
- data/lib/ruby-jmeter/helpers/helper.rb +6 -0
- data/lib/ruby-jmeter/idl.xml +2 -0
- data/lib/ruby-jmeter/version.rb +1 -1
- data/spec/dsl_spec.rb +48 -1
- 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: eca901af7971565233871283172ae07dc5cd15bf
|
4
|
+
data.tar.gz: 13db5eeaf05cae1a9a0ec13daf508ed1422171f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74c809f63d71cb7273ce15cdf20d5adb1ac8c0e0a1e466b1e99f99ebf3f8e399a851b219cc2f50b59ca69560f3d2c443f75c16d3ff2ec250b8f9f9368e679478
|
7
|
+
data.tar.gz: 06e5aa4a6e85a3842df98d22e17647e628c0c9a37effdf0c855875c07bc5da036db520d452ae44e3949cc32de4fa7803526b00725d8c9919c4b3a693820f97d3
|
@@ -0,0 +1,14 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'ruby-jmeter'
|
3
|
+
|
4
|
+
test do
|
5
|
+
|
6
|
+
test_fragment name: 'anonymous_user', enabled: false do
|
7
|
+
get name: 'Home Page', url: 'http://google.com'
|
8
|
+
end
|
9
|
+
|
10
|
+
threads count: 1 do
|
11
|
+
module_controller test_fragment: 'WorkBench/TestPlan/anonymous_user'
|
12
|
+
end
|
13
|
+
|
14
|
+
end.run(path: '/usr/share/jmeter-2.11/bin/', gui: true)
|
data/lib/ruby-jmeter/DSL.md
CHANGED
data/lib/ruby-jmeter/dsl.rb
CHANGED
@@ -262,8 +262,14 @@ module RubyJmeter
|
|
262
262
|
def module_controller(params, &block)
|
263
263
|
node = RubyJmeter::ModuleController.new(params)
|
264
264
|
|
265
|
-
|
266
|
-
|
265
|
+
if params[:test_fragment]
|
266
|
+
params[:test_fragment].kind_of?(String) &&
|
267
|
+
params[:test_fragment].split('/')
|
268
|
+
elsif params[:node_path]
|
269
|
+
params[:node_path]
|
270
|
+
else
|
271
|
+
[]
|
272
|
+
end.each_with_index do |node_name, index|
|
267
273
|
node.doc.at_xpath('//collectionProp') <<
|
268
274
|
Nokogiri::XML(<<-EOS.strip_heredoc).children
|
269
275
|
<stringProp name="node_#{index}">#{node_name}</stringProp>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module RubyJmeter
|
2
|
+
class DSL
|
3
|
+
def test_fragment(params={}, &block)
|
4
|
+
node = RubyJmeter::TestFragment.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class TestFragment
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'TestFragment' : (params[:name] || 'TestFragment')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="#{testname}" enabled="false"/>)
|
17
|
+
EOS
|
18
|
+
update params
|
19
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -17,6 +17,7 @@ module RubyJmeter
|
|
17
17
|
module Helper
|
18
18
|
def update(params)
|
19
19
|
params.delete(:name)
|
20
|
+
enabled_disabled(params)
|
20
21
|
if params.class == Array
|
21
22
|
update_collection params
|
22
23
|
else
|
@@ -32,6 +33,11 @@ module RubyJmeter
|
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
36
|
+
def enabled_disabled(params)
|
37
|
+
return unless params.is_a?(Hash)
|
38
|
+
@doc.children.first.attributes['enabled'].value = params[:enabled].to_s.empty? ? 'true' : 'false'
|
39
|
+
end
|
40
|
+
|
35
41
|
def update_at_xpath(params)
|
36
42
|
params[:update_at_xpath].each do |fragment|
|
37
43
|
@doc.at_xpath(fragment[:xpath]) << fragment[:value]
|
data/lib/ruby-jmeter/idl.xml
CHANGED
@@ -241,6 +241,8 @@
|
|
241
241
|
<stringProp name="TestPlan.comments"> </stringProp>
|
242
242
|
</Arguments>
|
243
243
|
<hashTree/>
|
244
|
+
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Test Fragment" enabled="true"/>
|
245
|
+
<hashTree/>
|
244
246
|
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
|
245
247
|
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
|
246
248
|
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
|
data/lib/ruby-jmeter/version.rb
CHANGED
data/spec/dsl_spec.rb
CHANGED
@@ -84,6 +84,21 @@ describe "DSL" do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
|
87
|
+
describe 'disabled elements' do
|
88
|
+
let(:doc) do
|
89
|
+
test do
|
90
|
+
header name: 'Accept', value: '*', enabled: false
|
91
|
+
end.to_doc
|
92
|
+
end
|
93
|
+
|
94
|
+
let(:fragment) { doc.search("//HeaderManager") }
|
95
|
+
|
96
|
+
it 'should be disabled' do
|
97
|
+
fragment.first.attributes['enabled'].value.should == 'false'
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
|
87
102
|
describe 'header manager' do
|
88
103
|
let(:doc) do
|
89
104
|
test do
|
@@ -121,6 +136,7 @@ describe "DSL" do
|
|
121
136
|
end
|
122
137
|
end
|
123
138
|
|
139
|
+
|
124
140
|
describe 'the clear_each_iteration option should be respected' do
|
125
141
|
let(:doc) do
|
126
142
|
test do
|
@@ -138,6 +154,7 @@ describe "DSL" do
|
|
138
154
|
end
|
139
155
|
end
|
140
156
|
|
157
|
+
|
141
158
|
describe 'test plan' do
|
142
159
|
it 'should allow to take params' do
|
143
160
|
test_plan = test({"TestPlan.serialize_threadgroups" => "false"}) {}
|
@@ -301,6 +318,7 @@ describe "DSL" do
|
|
301
318
|
end
|
302
319
|
end
|
303
320
|
|
321
|
+
|
304
322
|
describe 'visit raw_path' do
|
305
323
|
let(:doc) do
|
306
324
|
test do
|
@@ -606,6 +624,7 @@ describe "DSL" do
|
|
606
624
|
end
|
607
625
|
end
|
608
626
|
|
627
|
+
|
609
628
|
describe 'regex extract' do
|
610
629
|
let(:doc) do
|
611
630
|
test do
|
@@ -754,6 +773,7 @@ describe "DSL" do
|
|
754
773
|
|
755
774
|
end
|
756
775
|
|
776
|
+
|
757
777
|
describe 'raw body containing xml entities' do
|
758
778
|
let(:doc) do
|
759
779
|
test do
|
@@ -770,6 +790,7 @@ describe "DSL" do
|
|
770
790
|
end
|
771
791
|
end
|
772
792
|
|
793
|
+
|
773
794
|
describe 'constant_throughput_timer' do
|
774
795
|
let(:doc) do
|
775
796
|
test do
|
@@ -791,6 +812,7 @@ describe "DSL" do
|
|
791
812
|
end
|
792
813
|
end
|
793
814
|
|
815
|
+
|
794
816
|
describe 'run' do
|
795
817
|
let(:deflate_properties) {
|
796
818
|
File.expand_path('../../lib/ruby-jmeter/helpers/jmeter.properties', __FILE__)
|
@@ -838,6 +860,7 @@ describe "DSL" do
|
|
838
860
|
|
839
861
|
end
|
840
862
|
|
863
|
+
|
841
864
|
describe 'module controllers' do
|
842
865
|
let(:doc) do
|
843
866
|
test name: 'tests' do
|
@@ -859,7 +882,6 @@ describe "DSL" do
|
|
859
882
|
let(:test_module) { doc.search("//ModuleController").first }
|
860
883
|
let(:nodes) { test_module.search(".//stringProp") }
|
861
884
|
|
862
|
-
|
863
885
|
it 'should have a node path' do
|
864
886
|
nodes.length.should == 4
|
865
887
|
nodes[0].text.should == 'WorkBench'
|
@@ -869,4 +891,29 @@ describe "DSL" do
|
|
869
891
|
end
|
870
892
|
end
|
871
893
|
|
894
|
+
|
895
|
+
describe 'module controllers with test fragment' do
|
896
|
+
let(:doc) do
|
897
|
+
test do
|
898
|
+
test_fragment name: 'some_test_fragment', enabled: 'false' do
|
899
|
+
get name: 'Home Page', url: 'http://google.com'
|
900
|
+
end
|
901
|
+
|
902
|
+
threads count: 1 do
|
903
|
+
module_controller test_fragment: 'WorkBench/TestPlan/some_test_fragment'
|
904
|
+
end
|
905
|
+
end.to_doc
|
906
|
+
end
|
907
|
+
|
908
|
+
let(:simple_controller) { doc.search("//GenericController").first }
|
909
|
+
let(:test_module) { doc.search("//ModuleController").first }
|
910
|
+
let(:nodes) { test_module.search(".//stringProp") }
|
911
|
+
|
912
|
+
it 'should have a node path specified by test fragment' do
|
913
|
+
nodes.length.should == 3
|
914
|
+
nodes[0].text.should == 'WorkBench'
|
915
|
+
nodes[1].text.should == 'TestPlan'
|
916
|
+
nodes[2].text.should == 'some_test_fragment'
|
917
|
+
end
|
918
|
+
end
|
872
919
|
end
|
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.11.
|
4
|
+
version: 2.11.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Koopmans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- examples/basic_query_params.rb
|
81
81
|
- examples/basic_run.rb
|
82
82
|
- examples/basic_simple_data_writer.rb
|
83
|
+
- examples/basic_test_fragment.rb
|
83
84
|
- examples/basic_testdata.rb
|
84
85
|
- examples/basic_think_time.rb
|
85
86
|
- examples/basic_throughput_controller.rb
|
@@ -194,6 +195,7 @@ files:
|
|
194
195
|
- lib/ruby-jmeter/dsl/tcp_sampler.rb
|
195
196
|
- lib/ruby-jmeter/dsl/tcp_sampler_config.rb
|
196
197
|
- lib/ruby-jmeter/dsl/test_action.rb
|
198
|
+
- lib/ruby-jmeter/dsl/test_fragment.rb
|
197
199
|
- lib/ruby-jmeter/dsl/test_plan.rb
|
198
200
|
- lib/ruby-jmeter/dsl/thread_group.rb
|
199
201
|
- lib/ruby-jmeter/dsl/throughput_controller.rb
|