ruby-jmeter 2.13.10 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/Gemfile +2 -2
- data/LICENSE.txt +2 -2
- data/README.md +4 -5
- data/Rakefile +3 -3
- data/examples/{basic_os_process_sampler.rb → OS_process_sampler.rb} +1 -1
- data/examples/{basic_assertion_results.rb → assertion_results.rb} +1 -3
- data/examples/basic_auth.rb +1 -1
- data/examples/{basic_browser_headers.rb → browser_headers.rb} +1 -1
- data/examples/{basic_composite_graph.rb → composite_graph.rb} +1 -1
- data/examples/{basic_gc_dummy_sampler.rb → dummy_sampler.rb} +1 -3
- data/examples/{basic_duration_assertion.rb → duration_assertion.rb} +1 -1
- data/examples/etsy_login_browse.rb +1 -4
- data/examples/{basic_extract.rb → extract.rb} +1 -1
- data/examples/{basic_foreach.rb → foreach_controller.rb} +1 -4
- data/examples/{basic_header.rb → header_manager.rb} +2 -3
- data/examples/{basic_cache.rb → http_cache_manager.rb} +1 -1
- data/examples/{basic_cookies.rb → http_cookie_manager.rb} +1 -1
- data/examples/{basic_http_request_defaults.rb → http_request_defaults.rb} +3 -2
- data/examples/{basic_post.rb → http_request_post.rb} +1 -5
- data/examples/{basic_http_request_with_files.rb → http_request_with_files.rb} +1 -1
- data/examples/{basic_query_params.rb → http_request_with_query_params.rb} +1 -1
- data/examples/{basic_gc_results.rb → jmeter_plugins_graphs.rb} +1 -2
- data/examples/{basic_json_path_assertion.rb → json_path_assertions.rb} +1 -1
- data/examples/{basic_json_path_extractor.rb → json_path_extractor.rb} +1 -3
- data/examples/{basic_ldap_ext.rb → ldap_sampler.rb} +1 -1
- data/examples/{basic_loadosophia.rb → loadosophia.rb} +1 -1
- data/examples/{basic_loops.rb → loop_controller.rb} +2 -2
- data/examples/{basic_counter.rb → loops_with_counter.rb} +2 -2
- data/examples/{basic_perfmon.rb → perfmon.rb} +1 -1
- data/examples/real_page_objects.rb +1 -1
- data/examples/real_user_objects_github.rb +1 -1
- data/examples/regular_expression_extractor.rb +11 -0
- data/examples/{basic_assertion.rb → response_assertion.rb} +2 -1
- data/examples/{basic_response_time_percentiles_graph.rb → response_time_percentiles_graph.rb} +1 -2
- data/examples/{basic_simple_data_writer.rb → simple_data_writer_listener.rb} +1 -1
- data/examples/{basic_stepping_thread_group.rb → stepping_thread_group.rb} +1 -3
- data/examples/{basic_test_fragment.rb → test_fragment.rb} +1 -1
- data/examples/{basic_think_time.rb → think_time.rb} +2 -2
- data/examples/{basic_thread_groups.rb → thread_groups.rb} +1 -1
- data/examples/{basic_throughput_controller.rb → throughput_controller.rb} +1 -1
- data/examples/{basic_throughput_shaping_timer.rb → throughput_shaping_timer.rb} +1 -2
- data/examples/{basic_ultimate_thread_group.rb → ultimate_thread_group.rb} +1 -2
- data/examples/{basic_user_defined_variables.rb → user_defined_variables.rb} +1 -1
- data/examples/{basic_preprocessor_user_parameters.rb → user_parameters.rb} +7 -7
- data/lib/ruby-jmeter.rb +13 -8
- data/lib/ruby-jmeter/DSL.md +3 -1
- data/lib/ruby-jmeter/dsl.rb +11 -615
- data/lib/ruby-jmeter/dsl/foreach_controller.rb +0 -2
- data/lib/ruby-jmeter/dsl/html_parameter_mask.rb +3 -3
- data/lib/ruby-jmeter/dsl/http_request.rb +0 -2
- data/lib/ruby-jmeter/dsl/http_request_defaults.rb +0 -1
- data/lib/ruby-jmeter/dsl/jms_publisher.rb +2 -0
- data/lib/ruby-jmeter/dsl/regular_expression_extractor.rb +1 -3
- data/lib/ruby-jmeter/dsl/response_assertion.rb +0 -1
- data/lib/ruby-jmeter/dsl/test_fragment.rb +1 -1
- data/lib/ruby-jmeter/dsl/user_parameters.rb +3 -1
- data/lib/ruby-jmeter/extend/assertions/response_assertion.rb +36 -0
- data/lib/ruby-jmeter/extend/config_elements/header_manager.rb +13 -0
- data/lib/ruby-jmeter/extend/config_elements/http_cache_manager.rb +11 -0
- data/lib/ruby-jmeter/extend/config_elements/http_cookie_manager.rb +11 -0
- data/lib/ruby-jmeter/extend/config_elements/http_request_defaults.rb +28 -0
- data/lib/ruby-jmeter/extend/config_elements/user_defined_variables.rb +13 -0
- data/lib/ruby-jmeter/extend/config_elements/user_parameters.rb +31 -0
- data/lib/ruby-jmeter/extend/controllers/foreach_controller.rb +25 -0
- data/lib/ruby-jmeter/extend/controllers/loop_controller.rb +11 -0
- data/lib/ruby-jmeter/extend/controllers/module_controller.rb +23 -0
- data/lib/ruby-jmeter/extend/controllers/throughput_controller.rb +15 -0
- data/lib/ruby-jmeter/extend/controllers/transaction_controller.rb +14 -0
- data/lib/ruby-jmeter/extend/misc/aliases.rb +21 -0
- data/lib/ruby-jmeter/extend/misc/exists.rb +13 -0
- data/lib/ruby-jmeter/extend/misc/flood.rb +48 -0
- data/lib/ruby-jmeter/extend/misc/with_helpers.rb +27 -0
- data/lib/ruby-jmeter/extend/plugins/jmeter_plugins.rb +115 -0
- data/lib/ruby-jmeter/extend/processors/extract.rb +28 -0
- data/lib/ruby-jmeter/extend/processors/regular_expression_extractor.rb +25 -0
- data/lib/ruby-jmeter/extend/samplers/http_request.rb +47 -0
- data/lib/ruby-jmeter/extend/samplers/soapxmlrpc_request.rb +9 -0
- data/lib/ruby-jmeter/extend/threads/setup_thread_group.rb +18 -0
- data/lib/ruby-jmeter/extend/threads/thread_group.rb +19 -0
- data/lib/ruby-jmeter/extend/timers/constant_throughput_timer.rb +12 -0
- data/lib/ruby-jmeter/extend/timers/random_timer.rb +14 -0
- data/lib/ruby-jmeter/helpers/helper.rb +1 -2
- data/lib/ruby-jmeter/idl.xml +6 -4
- data/lib/ruby-jmeter/version.rb +1 -1
- data/ruby-jmeter.gemspec +7 -7
- data/spec/constant_throughput_timer_spec.rb +22 -0
- data/spec/header_manager_spec.rb +37 -0
- data/spec/http_cache_manager_spec.rb +17 -0
- data/spec/http_cookie_manager_spec.rb +17 -0
- data/spec/http_request_defaults_spec.rb +47 -0
- data/spec/http_request_spec.rb +305 -0
- data/spec/jmeter_plugins_spec.rb +155 -0
- data/spec/json_extractor_spec.rb +19 -0
- data/spec/json_path_assertion_spec.rb +28 -0
- data/spec/logic_controller_spec.rb +148 -0
- data/spec/loop_controller_spec.rb +19 -0
- data/spec/module_controller_spec.rb +56 -0
- data/spec/regular_expression_extractor_spec.rb +63 -0
- data/spec/response_assertion_spec.rb +69 -0
- data/spec/setup_thread_group_spec.rb +31 -0
- data/spec/thread_group_spec.rb +57 -0
- data/spec/throughput_controller_spec.rb +24 -0
- data/spec/transaction_controller_spec.rb +30 -0
- data/spec/user_defined_variables_spec.rb +22 -0
- data/spec/user_parameters_spec.rb +45 -0
- data/spec/with_helpers_spec.rb +57 -0
- data/spec/xpath_extractor_spec.rb +15 -0
- metadata +87 -59
- data/examples/basic_flood.rb +0 -12
- data/examples/basic_flood_real.rb +0 -7
- data/examples/basic_flood_with_csv.rb +0 -16
- data/examples/basic_google.rb +0 -8
- data/examples/basic_har.json +0 -4252
- data/examples/basic_har.rb +0 -34
- data/examples/basic_meta_fu.rb +0 -63
- data/examples/basic_response_assertion.rb +0 -13
- data/examples/basic_run.rb +0 -12
- data/examples/basic_testdata.rb +0 -60
- data/examples/demo.csv +0 -3
- data/examples/real_flood_test.rb +0 -14
- data/examples/real_flood_test_data.rb +0 -15
- data/examples/real_immi.gov.au_visa.rb +0 -78
- data/lib/ruby-jmeter/helpers/jmeter.properties +0 -28
- data/spec/dsl_spec.rb +0 -1157
- data/spec/stub.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c74a1b79ce925ae4f7421e7b66178cd905806d40
|
4
|
+
data.tar.gz: 72326c3b7f61cba3734a4d1d0a81476d1c9e29bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d917316e79440554e0bb9ecfa68c448a41e88bde5352b5aa6593bca193c08ccf2f861fb80e5348087c3481dcfc6b7134636a8229473f6a9d8bc925e2286f96c8
|
7
|
+
data.tar.gz: e252f9f2b3f077d9b87cffbe9658add5fab4201ab448b63f9be3ee4e0320f3c94f6221912dc9aa56be752e13f97dbb35985b9b2a1dce070ba886381748a70cd7
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.3.1
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source '
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in ruby-jmeter.gemspec
|
4
4
|
gemspec
|
@@ -12,7 +12,7 @@ platforms :jruby do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
group :development do
|
15
|
-
gem '
|
15
|
+
gem 'byebug'
|
16
16
|
end
|
17
17
|
|
18
18
|
group :test do
|
data/LICENSE.txt
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c)
|
1
|
+
Copyright (c) 2016 Flood IO
|
2
2
|
|
3
3
|
MIT License
|
4
4
|
|
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
19
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
20
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
21
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -23,7 +23,6 @@ Install it yourself as:
|
|
23
23
|
To use the DSL, first let's require the gem:
|
24
24
|
|
25
25
|
```ruby
|
26
|
-
require 'rubygems'
|
27
26
|
require 'ruby-jmeter'
|
28
27
|
```
|
29
28
|
|
@@ -413,7 +412,7 @@ You **should never manually update** code in `lib/ruby-jmeter/dsl` as this is au
|
|
413
412
|
|
414
413
|
### DSL
|
415
414
|
|
416
|
-
Much of the behaviour of the gem is defined in `lib/ruby-jmeter/dsl.rb` which is where you should be updating code.
|
415
|
+
Much of the behaviour of the gem is defined in `lib/ruby-jmeter/dsl.rb` which is where you should be updating code. You can extend individual DSL component behaviour in `live/ruby-jmeter/extend/**/*.rb`
|
417
416
|
|
418
417
|
### Plugins
|
419
418
|
|
@@ -434,7 +433,7 @@ Then you can run any rake / test tasks with the prefix `bundle exec`
|
|
434
433
|
|
435
434
|
### Tests
|
436
435
|
|
437
|
-
If contributing please add an appropriate test. See `spec
|
436
|
+
If contributing please add an appropriate test. See `spec/*_spec.rb` for examples. Tests can be run from the command line as follows:
|
438
437
|
|
439
438
|
$ bundle exec rspec
|
440
439
|
|
@@ -449,10 +448,10 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
449
448
|
$ flood/ruby-jmeter - [master●] » ruby examples/basic_assertion.rb
|
450
449
|
W, [2015-10-17T19:31:12.021004 #33216] WARN -- : Test executing locally ...
|
451
450
|
|
452
|
-
Note: most of the examples assume the JMeter binary is installed in `/usr/share/jmeter
|
451
|
+
Note: most of the examples assume the JMeter binary is installed in `/usr/share/jmeter/bin/` however you can modify this in your example to something that suits your installation e.g.:
|
453
452
|
|
454
453
|
|
455
454
|
```ruby
|
456
455
|
...
|
457
|
-
end.run(path: 'C/Program Files/JMeter
|
456
|
+
end.run(path: 'C/Program Files/JMeter/bin/', gui: true)
|
458
457
|
```
|
data/Rakefile
CHANGED
data/examples/basic_auth.rb
CHANGED
@@ -5,6 +5,4 @@ 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
|
-
|
10
|
-
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
8
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -19,12 +19,11 @@ test do
|
|
19
19
|
with_xhr
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
post name: 'with_headers', ur: '/',
|
24
24
|
fill_in: {
|
25
25
|
js: true
|
26
26
|
} do
|
27
27
|
header [{ name: 'Cache-Control', value: 'no-cache'}]
|
28
28
|
end
|
29
|
-
|
30
|
-
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
29
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -6,5 +6,6 @@ test do
|
|
6
6
|
protocol: 'https',
|
7
7
|
download_resources: true,
|
8
8
|
use_concurrent_pool: 5,
|
9
|
-
urls_must_match: 'http.+?example.com'
|
10
|
-
|
9
|
+
urls_must_match: 'http.+?example.com',
|
10
|
+
md5: true
|
11
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -2,14 +2,10 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
2
2
|
require 'ruby-jmeter'
|
3
3
|
|
4
4
|
test do
|
5
|
-
|
6
5
|
threads count: 1 do
|
7
|
-
|
8
6
|
transaction name: 'Post with a Raw Body', parent: false do
|
9
7
|
post name: 'Home Page', url: 'http://google.com',
|
10
8
|
raw_body: '{"name":"Big Poncho","price":10,"vendor_attendance_id":24,"product_id":1}'
|
11
9
|
end
|
12
|
-
|
13
10
|
end
|
14
|
-
|
15
|
-
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
11
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -19,5 +19,4 @@ test do
|
|
19
19
|
response_times_over_time 'Response Times Over Time'
|
20
20
|
response_times_percentiles 'Response Times Percentiles'
|
21
21
|
transactions_per_second 'Transactions per Second'
|
22
|
-
|
23
|
-
end.run(path: '/usr/share/jmeter-2.13/bin/', gui: true)
|
22
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -3,8 +3,8 @@ require 'ruby-jmeter'
|
|
3
3
|
|
4
4
|
test do
|
5
5
|
threads count: 1 do
|
6
|
-
|
6
|
+
loops count:10 do
|
7
7
|
visit name: 'Home Page', url: 'http://google.com/'
|
8
8
|
end
|
9
9
|
end
|
10
|
-
end.run(path: '/usr/share/jmeter
|
10
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -3,7 +3,7 @@ require 'ruby-jmeter'
|
|
3
3
|
|
4
4
|
test do
|
5
5
|
threads count: 1 do
|
6
|
-
|
6
|
+
loops count:10 do
|
7
7
|
counter 'CounterConfig.name' => 'visit',
|
8
8
|
'CounterConfig.start' => 1,
|
9
9
|
'CounterConfig.incr' => 1,
|
@@ -12,4 +12,4 @@ test do
|
|
12
12
|
visit name: 'Home Page', url: 'http://google.com/'
|
13
13
|
end
|
14
14
|
end
|
15
|
-
end.run(path: '/usr/share/jmeter
|
15
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -0,0 +1,11 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'ruby-jmeter'
|
3
|
+
|
4
|
+
test do
|
5
|
+
threads count: 1 do
|
6
|
+
visit name: 'Home', url: 'https://flood.io' do
|
7
|
+
regex pattern: "content='(.+?)' name='csrf-token'", name: 'csrf-token', match_number: 1, default: '424242'
|
8
|
+
regex pattern: 'pattern', name: 'jmeter_variable_regex', variable: 'test'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -7,7 +7,8 @@ test do
|
|
7
7
|
visit name: 'Altentee', url: 'http://altentee.com/' do
|
8
8
|
assert contains: 'We test, tune and secure your site'
|
9
9
|
assert 'not-contains' => 'Something in frames', scope: 'children'
|
10
|
+
assert 'substring' => 'Something in frames', variable: 'test'
|
10
11
|
end
|
11
12
|
end
|
12
13
|
end
|
13
|
-
end.run(path: '/usr/share/jmeter
|
14
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/{basic_response_time_percentiles_graph.rb → response_time_percentiles_graph.rb}
RENAMED
@@ -3,10 +3,9 @@ require 'ruby-jmeter'
|
|
3
3
|
|
4
4
|
test do
|
5
5
|
threads count: 100 do
|
6
|
-
|
7
6
|
response_times_percentiles 'Response Times Percentiles', filename: '/path/to/output', update_at_xpath: [
|
8
7
|
{ '//value/xml' => 'false' }
|
9
8
|
]
|
10
9
|
|
11
10
|
end
|
12
|
-
end.run(path: '/usr/share/jmeter
|
11
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
@@ -4,7 +4,7 @@ require 'ruby-jmeter'
|
|
4
4
|
test do
|
5
5
|
threads count: 100 do
|
6
6
|
|
7
|
-
think_time 5000,5000
|
7
|
+
think_time 5000, 5000
|
8
8
|
|
9
9
|
transaction name: 'Google Search' do
|
10
10
|
visit name: 'Home Page', url: 'http://google.com/'
|
@@ -12,4 +12,4 @@ test do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
end
|
15
|
-
end.run(path: '/usr/share/jmeter
|
15
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|