ruby-jmeter 2.13.2 → 2.13.3
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/CHANGES.md +1 -1
- data/examples/basic_assertion.rb +1 -1
- data/examples/basic_auth.rb +1 -1
- data/examples/basic_cache.rb +1 -1
- data/examples/basic_composite_graph.rb +1 -1
- data/examples/basic_cookies.rb +1 -1
- data/examples/basic_foreach.rb +4 -4
- data/examples/basic_gc_dummy_sampler.rb +2 -2
- data/examples/basic_gc_results.rb +2 -2
- data/examples/basic_google.rb +1 -1
- data/examples/basic_header.rb +4 -4
- data/examples/basic_http_request_defaults.rb +2 -2
- data/examples/basic_ldap_ext.rb +4 -4
- data/examples/basic_loadosophia.rb +1 -1
- data/examples/basic_perfmon.rb +1 -1
- data/examples/basic_post.rb +2 -2
- data/examples/basic_preprocessor_user_parameters.rb +1 -1
- data/examples/basic_query_params.rb +1 -1
- data/examples/basic_response_assertion.rb +13 -0
- data/examples/basic_simple_data_writer.rb +2 -2
- data/examples/basic_testdata.rb +11 -11
- data/examples/basic_think_time.rb +1 -1
- data/examples/basic_throughput_controller.rb +2 -2
- data/examples/basic_throughput_shaping_timer.rb +1 -1
- data/examples/basic_user_defined_variables.rb +3 -3
- data/examples/etsy_login_browse.rb +3 -3
- data/lib/ruby-jmeter/helpers/parser.rb +19 -15
- data/lib/ruby-jmeter/version.rb +1 -1
- data/spec/dsl_spec.rb +27 -3
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 68b5a89a9ad1fd1e5659763d2dfb64066b1e86e1
|
|
4
|
+
data.tar.gz: 840ebafe7550c59520181704decd556187339f72
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5e7339dfe60edf6c580e1d0f118c0c8ddcee21b2ddb449821400dc44c6fa9bcd30746af5179b34f03932ce4f7c329cabf9c5d78298076991916c15107397cc08
|
|
7
|
+
data.tar.gz: a75f59422d0d44793e89560b9dd3767610fe468f2a5ca4cf066e795582286508789b923d532bcf096129780bbaa13cd191880c00fbf68495ee8c33b09a72f536
|
data/CHANGES.md
CHANGED
data/examples/basic_assertion.rb
CHANGED
data/examples/basic_auth.rb
CHANGED
data/examples/basic_cache.rb
CHANGED
data/examples/basic_cookies.rb
CHANGED
data/examples/basic_foreach.rb
CHANGED
|
@@ -3,9 +3,9 @@ require 'ruby-jmeter'
|
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
5
|
threads 1, {
|
|
6
|
-
rampup: 1,
|
|
6
|
+
rampup: 1,
|
|
7
7
|
scheduler: true,
|
|
8
|
-
duration: 60,
|
|
8
|
+
duration: 60,
|
|
9
9
|
continue_forever: true
|
|
10
10
|
} do
|
|
11
11
|
|
|
@@ -28,5 +28,5 @@ test do
|
|
|
28
28
|
|
|
29
29
|
# end.jmx
|
|
30
30
|
# end.flood(ENV['FLOOD_API_TOKEN'])
|
|
31
|
-
# end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
32
|
-
end.run(path: '/usr/share/jmeter/bin/')
|
|
31
|
+
# end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
|
32
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/')
|
|
@@ -5,6 +5,6 @@ test do
|
|
|
5
5
|
threads count: 1 do
|
|
6
6
|
dummy_sampler '__grid_data_api', {response_data: "ACIR0001, ACIR0002, ACIR0003, ACIR0004, ACIR0005, ACIR0006, ABS0003, MBS0001, MBS0004, MBS0005, ABS0004, ABS0005, ABS0010, ABS0011, ABS0012, ABS0013, ABS0014, ABS0016, ABS0017, ABS0018, ABS0021, ABS0022, MBS0006, MBS0009, MBS0010"}
|
|
7
7
|
end
|
|
8
|
-
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
|
|
10
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
|
@@ -8,7 +8,7 @@ test do
|
|
|
8
8
|
visit name: 'Home Page', url: 'http://google.com/'
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
#
|
|
13
13
|
# You need jmeter-plugins at Google code
|
|
14
14
|
# http://code.google.com/p/jmeter-plugins
|
|
@@ -20,4 +20,4 @@ test do
|
|
|
20
20
|
response_times_percentiles 'Response Times Percentiles'
|
|
21
21
|
transactions_per_second 'Transactions per Second'
|
|
22
22
|
|
|
23
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
23
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
data/examples/basic_google.rb
CHANGED
data/examples/basic_header.rb
CHANGED
|
@@ -3,10 +3,10 @@ require 'ruby-jmeter'
|
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
5
|
# header with multiple values
|
|
6
|
-
header [
|
|
6
|
+
header [
|
|
7
7
|
{ name: 'Accept', value: '*' },
|
|
8
8
|
{ name: 'User-Agent', value: 'Test' }
|
|
9
|
-
]
|
|
9
|
+
]
|
|
10
10
|
|
|
11
11
|
with_user_agent :iphone
|
|
12
12
|
|
|
@@ -19,5 +19,5 @@ test do
|
|
|
19
19
|
with_xhr
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
|
-
|
|
23
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
22
|
+
|
|
23
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
|
@@ -2,9 +2,9 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'ruby-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
defaults domain: 'example.com',
|
|
5
|
+
defaults domain: 'example.com',
|
|
6
6
|
protocol: 'https',
|
|
7
7
|
download_resources: true,
|
|
8
8
|
use_concurrent_pool: 5,
|
|
9
9
|
urls_must_match: 'http.+?example.com'
|
|
10
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
10
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
data/examples/basic_ldap_ext.rb
CHANGED
|
@@ -3,14 +3,14 @@ require 'ruby-jmeter'
|
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
5
|
threads count: 1 do
|
|
6
|
-
ldap_ext name: 'ldap_ext sample',
|
|
7
|
-
test: 'sbind',
|
|
6
|
+
ldap_ext name: 'ldap_ext sample',
|
|
7
|
+
test: 'sbind',
|
|
8
8
|
user_dn: 'user_dn',
|
|
9
9
|
user_pw: 'user_password',
|
|
10
10
|
servername: 'your_ldap_server',
|
|
11
11
|
secure: true,
|
|
12
12
|
port: 636
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
end
|
|
15
15
|
view_results name: 'debug'
|
|
16
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
16
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
data/examples/basic_perfmon.rb
CHANGED
data/examples/basic_post.rb
CHANGED
|
@@ -6,10 +6,10 @@ test do
|
|
|
6
6
|
threads count: 1 do
|
|
7
7
|
|
|
8
8
|
transaction name: 'Post with a Raw Body', parent: false do
|
|
9
|
-
post name: 'Home Page', url: 'http://google.com',
|
|
9
|
+
post name: 'Home Page', url: 'http://google.com',
|
|
10
10
|
raw_body: '{"name":"Big Poncho","price":10,"vendor_attendance_id":24,"product_id":1}'
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
15
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
2
|
+
require 'ruby-jmeter'
|
|
3
|
+
|
|
4
|
+
test do
|
|
5
|
+
threads count: 2 do
|
|
6
|
+
transaction name: 'Assertions' do
|
|
7
|
+
visit name: 'Altentee', url: 'http://altentee.com/' do
|
|
8
|
+
response_assertion contains: 'We test, tune and secure your site'
|
|
9
|
+
response_assertion 'not-contains' => 'Something in frames', scope: 'children'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
|
@@ -6,6 +6,6 @@ test do
|
|
|
6
6
|
visit name: 'Home Page', url: 'http://google.com/'
|
|
7
7
|
|
|
8
8
|
# write errors to a simple data writer with the log alias
|
|
9
|
-
log filename: '/var/log/flood/custom.log', error_logging: true
|
|
9
|
+
log filename: '/var/log/flood/custom.log', error_logging: true
|
|
10
10
|
end
|
|
11
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
11
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
data/examples/basic_testdata.rb
CHANGED
|
@@ -33,28 +33,28 @@ test do
|
|
|
33
33
|
|
|
34
34
|
# populate named ${postcode_random} from shared data url
|
|
35
35
|
# using random result, match number 0 and override name
|
|
36
|
-
test_data :postcodes,
|
|
37
|
-
name: 'postcode_random',
|
|
36
|
+
test_data :postcodes,
|
|
37
|
+
name: 'postcode_random',
|
|
38
38
|
match_num: 0
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
# populate named ${postcode} from shared data url
|
|
42
42
|
# using exact result, match number 1 and override name
|
|
43
|
-
test_data 'postcodes',
|
|
44
|
-
name: 'postcode_exact',
|
|
45
|
-
regex: '^(\d+)',
|
|
43
|
+
test_data 'postcodes',
|
|
44
|
+
name: 'postcode_exact',
|
|
45
|
+
regex: '^(\d+)',
|
|
46
46
|
match_num: 1
|
|
47
47
|
|
|
48
48
|
# populate named ${postcode} from a stubbed data url
|
|
49
49
|
# with stub = true and default value 2010
|
|
50
|
-
test_data 'postcodes',
|
|
51
|
-
name: 'postcode_stub',
|
|
52
|
-
regex: '^(\d+)',
|
|
53
|
-
match_num: 1,
|
|
54
|
-
default: '2010',
|
|
50
|
+
test_data 'postcodes',
|
|
51
|
+
name: 'postcode_stub',
|
|
52
|
+
regex: '^(\d+)',
|
|
53
|
+
match_num: 1,
|
|
54
|
+
default: '2010',
|
|
55
55
|
stub: true
|
|
56
56
|
|
|
57
57
|
debug_sampler
|
|
58
58
|
view_results
|
|
59
59
|
end
|
|
60
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
60
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
|
@@ -3,8 +3,8 @@ require 'ruby-jmeter'
|
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
5
|
# user defined with multiple values
|
|
6
|
-
variables [
|
|
6
|
+
variables [
|
|
7
7
|
{ name: 'email', value: 'support@flood.io' },
|
|
8
8
|
{ name: 'password', value: 'password' }
|
|
9
|
-
]
|
|
10
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
9
|
+
]
|
|
10
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
|
@@ -8,7 +8,7 @@ test do
|
|
|
8
8
|
cache :clear_each_iteration => true
|
|
9
9
|
|
|
10
10
|
cookies
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
threads :count => 1, :loops => 10 do
|
|
13
13
|
|
|
14
14
|
random_timer 1000, 3000
|
|
@@ -35,7 +35,7 @@ test do
|
|
|
35
35
|
extract :regex => 'a href="(/browse.+?)"', :name => 'random_category'
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
|
-
end
|
|
38
|
+
end
|
|
39
39
|
|
|
40
40
|
exists 'random_category' do
|
|
41
41
|
|
|
@@ -61,4 +61,4 @@ test do
|
|
|
61
61
|
|
|
62
62
|
# end.grid ARGV[1]
|
|
63
63
|
# end.jmx
|
|
64
|
-
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
64
|
+
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
|
@@ -10,7 +10,8 @@ module RubyJmeter
|
|
|
10
10
|
params[:fill_in] ||= {}
|
|
11
11
|
params[:params] && params[:params].split('&').each do |param|
|
|
12
12
|
name,value = param.split('=')
|
|
13
|
-
params[:fill_in][name]
|
|
13
|
+
params[:fill_in][name] ||= []
|
|
14
|
+
params[:fill_in][name] << value
|
|
14
15
|
end
|
|
15
16
|
end
|
|
16
17
|
|
|
@@ -42,20 +43,23 @@ module RubyJmeter
|
|
|
42
43
|
|
|
43
44
|
def fill_in(params)
|
|
44
45
|
params[:update_at_xpath] ||= []
|
|
45
|
-
params[:update_at_xpath]
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
params[:update_at_xpath] = params[:fill_in].
|
|
47
|
+
each_with_object(params[:update_at_xpath]) do |(name, values), memo|
|
|
48
|
+
Array(values).each do |value|
|
|
49
|
+
memo << {
|
|
50
|
+
:xpath => '//collectionProp',
|
|
51
|
+
:value => Nokogiri::XML(<<-EOF.strip_heredoc).children
|
|
52
|
+
<elementProp name="#{name}" elementType="HTTPArgument">
|
|
53
|
+
<boolProp name="HTTPArgument.always_encode">#{params[:always_encode] ? 'true' : false}</boolProp>
|
|
54
|
+
<stringProp name="Argument.value">#{value}</stringProp>
|
|
55
|
+
<stringProp name="Argument.metadata">=</stringProp>
|
|
56
|
+
<boolProp name="HTTPArgument.use_equals">true</boolProp>
|
|
57
|
+
<stringProp name="Argument.name">#{name}</stringProp>
|
|
58
|
+
</elementProp>
|
|
59
|
+
EOF
|
|
60
|
+
}
|
|
61
|
+
end
|
|
62
|
+
end
|
|
59
63
|
params.delete(:fill_in)
|
|
60
64
|
end
|
|
61
65
|
|
data/lib/ruby-jmeter/version.rb
CHANGED
data/spec/dsl_spec.rb
CHANGED
|
@@ -270,7 +270,7 @@ describe 'DSL' do
|
|
|
270
270
|
test do
|
|
271
271
|
threads do
|
|
272
272
|
transaction name: "TC_01", parent: true, include_timers: true do
|
|
273
|
-
visit url: "/home?location=melbourne", always_encode: true
|
|
273
|
+
visit url: "/home?location=melbourne&location=sydney", always_encode: true
|
|
274
274
|
end
|
|
275
275
|
end
|
|
276
276
|
end.to_doc
|
|
@@ -282,8 +282,32 @@ describe 'DSL' do
|
|
|
282
282
|
fragment.search(".//stringProp[@name='HTTPSampler.path']").text.should == '/home'
|
|
283
283
|
end
|
|
284
284
|
|
|
285
|
-
|
|
286
|
-
|
|
285
|
+
context "first argument" do
|
|
286
|
+
it 'should match on always_encode' do
|
|
287
|
+
fragment.search(".//boolProp[@name='HTTPArgument.always_encode']")[0].text.should == 'true'
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
it 'should match on query param name: location' do
|
|
291
|
+
fragment.search(".//stringProp[@name='Argument.name']")[0].text.should == 'location'
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
it 'should match on query param value: melbourne' do
|
|
295
|
+
fragment.search(".//stringProp[@name='Argument.value']")[0].text.should == 'melbourne'
|
|
296
|
+
end
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
context "second argument" do
|
|
300
|
+
it 'should match on always_encode' do
|
|
301
|
+
fragment.search(".//boolProp[@name='HTTPArgument.always_encode']")[1].text.should == 'true'
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
it 'should match on query param name: location' do
|
|
305
|
+
fragment.search(".//stringProp[@name='Argument.name']")[1].text.should == 'location'
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
it 'should match on query param value: sydney' do
|
|
309
|
+
fragment.search(".//stringProp[@name='Argument.value']")[1].text.should == 'sydney'
|
|
310
|
+
end
|
|
287
311
|
end
|
|
288
312
|
end
|
|
289
313
|
|
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.3
|
|
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-05-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rest-client
|
|
@@ -88,6 +88,7 @@ files:
|
|
|
88
88
|
- examples/basic_post.rb
|
|
89
89
|
- examples/basic_preprocessor_user_parameters.rb
|
|
90
90
|
- examples/basic_query_params.rb
|
|
91
|
+
- examples/basic_response_assertion.rb
|
|
91
92
|
- examples/basic_run.rb
|
|
92
93
|
- examples/basic_simple_data_writer.rb
|
|
93
94
|
- examples/basic_stepping_thread_group.rb
|