gridinit-jmeter 0.3.2 → 1.0.0.pre
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 +2 -1
- data/README.md +51 -72
- data/examples/basic_assertion.rb +6 -6
- data/examples/basic_auth.rb +5 -5
- data/examples/basic_cache.rb +5 -5
- data/examples/basic_cookies.rb +5 -5
- data/examples/basic_extract.rb +4 -10
- data/examples/basic_gc_results.rb +12 -9
- data/examples/basic_google.rb +3 -3
- data/examples/basic_grid.rb +3 -6
- data/examples/basic_header.rb +12 -10
- data/examples/basic_ldap_ext.rb +11 -12
- data/examples/basic_post.rb +5 -6
- data/examples/basic_query_params.rb +3 -3
- data/examples/basic_think_time.rb +7 -4
- data/examples/basic_throughput_shaping_timer.rb +4 -4
- data/examples/etsy_login_browse.rb +21 -21
- data/lib/gridinit-jmeter/DSL.md +237 -0
- data/lib/gridinit-jmeter/{idl → dsl}/access_log_sampler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/aggregate_graph.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/aggregate_report.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/ajp13_sampler.rb +5 -3
- data/lib/gridinit-jmeter/{idl → dsl}/assertion_results.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/beanshell_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/beanshell_listener.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/beanshell_postprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/beanshell_preprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/beanshell_sampler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/beanshell_timer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/bsf_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/bsf_listener.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/bsf_postprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/bsf_preprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/bsf_sampler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/bsf_timer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/compare_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/comparison_assertion_visualizer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/constant_throughput_timer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/constant_timer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/counter.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/cssjquery_extractor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/csv_data_set_config.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/debug_postprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/debug_sampler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/distribution_graphalpha.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/duration_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/foreach_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/ftp_request.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/ftp_request_defaults.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/gaussian_random_timer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/generate_summary_results.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/graph_results.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/html_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/html_link_parser.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/html_parameter_mask.rb +4 -2
- data/lib/gridinit-jmeter/dsl/http_authorization_manager.rb +36 -0
- data/lib/gridinit-jmeter/{idl → dsl}/http_cache_manager.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/http_cookie_manager.rb +5 -2
- data/lib/gridinit-jmeter/{idl → dsl}/http_header_manager.rb +10 -3
- data/lib/gridinit-jmeter/{idl → dsl}/http_request.rb +5 -3
- data/lib/gridinit-jmeter/{idl → dsl}/http_request_defaults.rb +15 -4
- data/lib/gridinit-jmeter/{idl → dsl}/http_url_rewriting_modifier.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/if_controller.rb +5 -2
- data/lib/gridinit-jmeter/{idl → dsl}/include_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/java_request.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/java_request_defaults.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jdbc_connection_configuration.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jdbc_postprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jdbc_preprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jdbc_request.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jms_pointtopoint.rb +6 -4
- data/lib/gridinit-jmeter/{idl → dsl}/jms_publisher.rb +5 -3
- data/lib/gridinit-jmeter/{idl → dsl}/jms_subscriber.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jsr223_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jsr223_listener.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jsr223_postprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jsr223_preprocessor.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jsr223_sampler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/jsr223_timer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/junit_request.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/keystore_configuration.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/ldap_extended_request.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/ldap_extended_request_defaults.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/ldap_request.rb +5 -3
- data/lib/gridinit-jmeter/{idl → dsl}/ldap_request_defaults.rb +13 -4
- data/lib/gridinit-jmeter/{idl → dsl}/login_config_element.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/loop_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/mail_reader_sampler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/mailer_visualizer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/md5hex_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/module_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/monitor_results.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/once_only_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/os_process_sampler.rb +6 -4
- data/lib/gridinit-jmeter/{idl → dsl}/poisson_random_timer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/random_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/random_order_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/random_variable.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/recording_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/regex_user_parameters.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/regular_expression_extractor.rb +5 -2
- data/lib/gridinit-jmeter/{idl → dsl}/response_assertion.rb +8 -3
- data/lib/gridinit-jmeter/{idl → dsl}/response_time_graph.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/result_status_action_handler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/runtime_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/save_responses_to_a_file.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/simple_config_element.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/simple_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/simple_data_writer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/smime_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/smtp_sampler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/soapxmlrpc_request.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/spline_visualizer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/summary_report.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/switch_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/synchronizing_timer.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/tcp_sampler.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/tcp_sampler_config.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/test_action.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/test_plan.rb +5 -3
- data/lib/gridinit-jmeter/{idl → dsl}/thread_group.rb +5 -3
- data/lib/gridinit-jmeter/{idl → dsl}/throughput_controller.rb +5 -3
- data/lib/gridinit-jmeter/{idl → dsl}/transaction_controller.rb +6 -3
- data/lib/gridinit-jmeter/{idl → dsl}/uniform_random_timer.rb +4 -2
- data/lib/gridinit-jmeter/dsl/user_defined_variables.rb +35 -0
- data/lib/gridinit-jmeter/{idl → dsl}/user_parameters.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/view_results_in_table.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/view_results_tree.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/while_controller.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/xml_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/xml_schema_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/xpath_assertion.rb +4 -2
- data/lib/gridinit-jmeter/{idl → dsl}/xpath_extractor.rb +4 -2
- data/lib/gridinit-jmeter/dsl.rb +170 -187
- data/lib/gridinit-jmeter/helpers/helper.rb +43 -0
- data/lib/gridinit-jmeter/helpers/parser.rb +109 -0
- data/lib/gridinit-jmeter/idl.rb +16 -6
- data/lib/gridinit-jmeter/idl.xml +54 -11
- data/lib/gridinit-jmeter/{listeners → plugins}/gc_console_status_logger.rb +0 -0
- data/lib/gridinit-jmeter/{listeners → plugins}/gc_latencies_over_time.rb +0 -0
- data/lib/gridinit-jmeter/{listeners → plugins}/gc_response_codes_per_second.rb +0 -0
- data/lib/gridinit-jmeter/{listeners → plugins}/gc_response_times_distribution.rb +0 -0
- data/lib/gridinit-jmeter/{listeners → plugins}/gc_response_times_over_time.rb +0 -0
- data/lib/gridinit-jmeter/{listeners → plugins}/gc_response_times_percentiles.rb +0 -0
- data/lib/gridinit-jmeter/{listeners → plugins}/gc_transactions_per_second.rb +0 -0
- data/lib/gridinit-jmeter/{timers/gc_throughput_shaping_timer.rb → plugins/gc_variable_throughput_timer.rb} +1 -1
- data/lib/gridinit-jmeter/version.rb +1 -1
- data/lib/gridinit-jmeter.rb +6 -105
- data/spec/dsl_spec.rb +377 -82
- metadata +131 -174
- data/examples/basic_proxy.rb +0 -8
- data/examples/basic_results.rb +0 -22
- data/examples/basic_run.rb +0 -12
- data/examples/basic_simple_data_writer.rb +0 -14
- data/examples/basic_stdout.rb +0 -8
- data/examples/basic_test_data.rb +0 -15
- data/examples/basic_testplan.jmx +0 -138
- data/examples/basic_testplan.rb +0 -44
- data/examples/jbhifi_now_search.rb +0 -94
- data/lib/gridinit-jmeter/assertions/response_assertion.rb +0 -55
- data/lib/gridinit-jmeter/config/auth_manager.rb +0 -26
- data/lib/gridinit-jmeter/config/cache_manager.rb +0 -20
- data/lib/gridinit-jmeter/config/cookie_manager.rb +0 -21
- data/lib/gridinit-jmeter/config/counter_config.rb +0 -24
- data/lib/gridinit-jmeter/config/header_manager.rb +0 -26
- data/lib/gridinit-jmeter/config/random_variable.rb +0 -24
- data/lib/gridinit-jmeter/config/request_defaults.rb +0 -31
- data/lib/gridinit-jmeter/config/user_defined_variable.rb +0 -25
- data/lib/gridinit-jmeter/controllers/if_controller.rb +0 -20
- data/lib/gridinit-jmeter/controllers/interleave.rb +0 -18
- data/lib/gridinit-jmeter/controllers/loop_controller.rb +0 -19
- data/lib/gridinit-jmeter/controllers/once_only.rb +0 -17
- data/lib/gridinit-jmeter/controllers/random_order.rb +0 -16
- data/lib/gridinit-jmeter/controllers/simple.rb +0 -17
- data/lib/gridinit-jmeter/controllers/switch.rb +0 -20
- data/lib/gridinit-jmeter/controllers/throughput.rb +0 -26
- data/lib/gridinit-jmeter/controllers/transaction.rb +0 -19
- data/lib/gridinit-jmeter/controllers/while_controller.rb +0 -18
- data/lib/gridinit-jmeter/helpers/dsl_helper.rb +0 -21
- data/lib/gridinit-jmeter/idl/http_authorization_manager.rb +0 -26
- data/lib/gridinit-jmeter/idl/user_defined_variables.rb +0 -26
- data/lib/gridinit-jmeter/listeners/aggregate_report.rb +0 -47
- data/lib/gridinit-jmeter/listeners/graph_visualizer.rb +0 -46
- data/lib/gridinit-jmeter/listeners/response_time_graph_visualizer.rb +0 -47
- data/lib/gridinit-jmeter/listeners/simple_data_writer.rb +0 -51
- data/lib/gridinit-jmeter/listeners/stat_visualizer.rb +0 -46
- data/lib/gridinit-jmeter/listeners/summary_report.rb +0 -46
- data/lib/gridinit-jmeter/listeners/table_visualizer.rb +0 -46
- data/lib/gridinit-jmeter/listeners/view_results_full_visualizer.rb +0 -57
- data/lib/gridinit-jmeter/post_processors/regex_extractor.rb +0 -34
- data/lib/gridinit-jmeter/post_processors/xpath_extractor.rb +0 -23
- data/lib/gridinit-jmeter/pre_processors/bean_shell_pre_processor.rb +0 -23
- data/lib/gridinit-jmeter/samplers/http_sampler.rb +0 -99
- data/lib/gridinit-jmeter/samplers/ldap_ext_sampler.rb +0 -36
- data/lib/gridinit-jmeter/samplers/soap_sampler.rb +0 -26
- data/lib/gridinit-jmeter/test_plan/test_plan.rb +0 -23
- data/lib/gridinit-jmeter/threads/thread_group.rb +0 -30
- data/lib/gridinit-jmeter/timers/gaussian_random_timer.rb +0 -18
data/Gemfile
CHANGED
|
@@ -14,7 +14,7 @@ end
|
|
|
14
14
|
group :development do
|
|
15
15
|
gem 'pry', :require => 'pry'
|
|
16
16
|
gem 'pry-nav', :require => 'pry-nav'
|
|
17
|
-
gem 'pry-debugger'
|
|
17
|
+
gem 'pry-debugger', :require => 'pry-debugger'
|
|
18
18
|
gem 'awesome_print', :require => 'ap'
|
|
19
19
|
end
|
|
20
20
|
|
|
@@ -23,4 +23,5 @@ group :test do
|
|
|
23
23
|
gem 'rspec'
|
|
24
24
|
gem 'sinatra'
|
|
25
25
|
gem 'haml'
|
|
26
|
+
gem 'pry-debugger', :require => 'pry-debugger'
|
|
26
27
|
end
|
data/README.md
CHANGED
|
@@ -28,8 +28,8 @@ Let's create a `test` and save the related `jmx` testplan to file, so we can edi
|
|
|
28
28
|
|
|
29
29
|
```ruby
|
|
30
30
|
test do
|
|
31
|
-
threads 10 do
|
|
32
|
-
visit 'Google Search', 'http://google.com'
|
|
31
|
+
threads count: 10 do
|
|
32
|
+
visit name: 'Google Search', url: 'http://google.com'
|
|
33
33
|
end
|
|
34
34
|
end.jmx
|
|
35
35
|
```
|
|
@@ -60,8 +60,8 @@ The file that is created can then be executed in the JMeter GUI. If you want to
|
|
|
60
60
|
|
|
61
61
|
```ruby
|
|
62
62
|
test do
|
|
63
|
-
threads 10 do
|
|
64
|
-
visit 'Google Search', 'http://google.com'
|
|
63
|
+
threads count: 10 do
|
|
64
|
+
visit name: 'Google Search', url: 'http://google.com'
|
|
65
65
|
end
|
|
66
66
|
end.jmx(file: "/tmp/my_testplan.jmx")
|
|
67
67
|
```
|
|
@@ -77,8 +77,8 @@ You can execute the JMeter test plan by calling the `run` method of the test lik
|
|
|
77
77
|
|
|
78
78
|
```ruby
|
|
79
79
|
test do
|
|
80
|
-
threads 10 do
|
|
81
|
-
visit 'Google Search', 'http://google.com'
|
|
80
|
+
threads count: 10 do
|
|
81
|
+
visit name: 'Google Search', url: 'http://google.com'
|
|
82
82
|
end
|
|
83
83
|
end.run
|
|
84
84
|
```
|
|
@@ -87,8 +87,8 @@ This will launch JMeter in headless (non-GUI mode) and execute the test plan. Th
|
|
|
87
87
|
|
|
88
88
|
```ruby
|
|
89
89
|
test do
|
|
90
|
-
threads 10 do
|
|
91
|
-
visit 'Google Search', 'http://google.com'
|
|
90
|
+
threads count: 10 do
|
|
91
|
+
visit name: 'Google Search', url: 'http://google.com'
|
|
92
92
|
end
|
|
93
93
|
end.run(
|
|
94
94
|
path: '/usr/share/jmeter/bin/',
|
|
@@ -105,8 +105,8 @@ To execute the test on the Grid, call the `grid` method on the test and pass it
|
|
|
105
105
|
|
|
106
106
|
```ruby
|
|
107
107
|
test do
|
|
108
|
-
threads 10 do
|
|
109
|
-
visit 'Google Search', 'http://google.com'
|
|
108
|
+
threads count: 10 do
|
|
109
|
+
visit name: 'Google Search', url: 'http://google.com'
|
|
110
110
|
end
|
|
111
111
|
end.grid('OxtZ-4v-v0koSz5Y0enEQQ')
|
|
112
112
|
```
|
|
@@ -127,9 +127,9 @@ Blocks let you nest methods within methods, so you can scope the execution of me
|
|
|
127
127
|
|
|
128
128
|
```ruby
|
|
129
129
|
test do
|
|
130
|
-
threads 100 do
|
|
131
|
-
visit 'Home', 'http://altentee.com' do
|
|
132
|
-
extract
|
|
130
|
+
threads count: 100 do
|
|
131
|
+
visit name: 'Home', url: 'http://altentee.com' do
|
|
132
|
+
extract regex: "content='(.+?)' name='csrf-token'", name: 'csrf-token'
|
|
133
133
|
end
|
|
134
134
|
end
|
|
135
135
|
end
|
|
@@ -139,26 +139,20 @@ This would create a new test plan, with a 100 user thread group, each user visit
|
|
|
139
139
|
|
|
140
140
|
All methods are nestable, but you should only have one test method, and typically only one threads method. For example, it wouldn't make sense to have a test plan within a test plan, or a thread group within a thread group. You can have multiple thread groups per test plan though. This implies *some* knowlege of how JMeter works.
|
|
141
141
|
|
|
142
|
+
All methods take a parameter hash to configure related options.
|
|
143
|
+
|
|
142
144
|
### Threads
|
|
143
145
|
|
|
144
146
|
You can use the `threads` method to define a group of users:
|
|
145
147
|
|
|
146
148
|
```ruby
|
|
147
|
-
threads 100
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
```ruby
|
|
153
|
-
threads 100
|
|
154
|
-
threads 100, {continue_forever: 'true'}
|
|
155
|
-
threads 100, {loops: 10}
|
|
156
|
-
threads 100, {ramp_time: 30, duration: 60}
|
|
157
|
-
threads 100, {
|
|
158
|
-
scheduler: 'true',
|
|
149
|
+
threads count: 100
|
|
150
|
+
threads count: 100, continue_forever: true
|
|
151
|
+
threads count: 100, loops: 10
|
|
152
|
+
threads count: 100, ramup: 30, duration: 60
|
|
153
|
+
threads count: 100, scheduler: true,
|
|
159
154
|
start_time: Time.now.to_i * 1000,
|
|
160
155
|
end_time: (Time.now.to_i * 1000) + (3600 * 1000)
|
|
161
|
-
}
|
|
162
156
|
```
|
|
163
157
|
|
|
164
158
|
### Cookies
|
|
@@ -228,28 +222,19 @@ end
|
|
|
228
222
|
You can use the `visit` method to navigate to pages:
|
|
229
223
|
|
|
230
224
|
```ruby
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
This method makes a single request and takes 3 parameters: the label, the URL and an optional parameters hash.
|
|
235
|
-
|
|
236
|
-
```ruby
|
|
237
|
-
visit 'Google Search', 'http://google.com'
|
|
238
|
-
visit 'Google Search', 'http://google.com', {
|
|
225
|
+
visit name: 'Google Search', url: 'http://google.com'
|
|
226
|
+
visit name: 'Google Search', url: 'http://google.com'
|
|
227
|
+
visit name: 'Google Search', url: 'http://google.com',
|
|
239
228
|
method: 'POST',
|
|
240
|
-
DO_MULTIPART_POST: 'true'
|
|
241
|
-
|
|
242
|
-
visit 'Google Search', 'http://google.com', {
|
|
229
|
+
'DO_MULTIPART_POST': 'true'
|
|
230
|
+
visit name: 'Google Search', url: 'http://google.com',
|
|
243
231
|
use_keepalive: 'false'
|
|
244
|
-
|
|
245
|
-
visit 'Google Search', 'http://google.com', {
|
|
232
|
+
visit name: 'Google Search', url: 'http://google.com',
|
|
246
233
|
connect_timeout: '1000',
|
|
247
|
-
response_timeout: '60000'
|
|
248
|
-
|
|
249
|
-
visit 'View Login', '/login', {
|
|
234
|
+
response_timeout: '60000'
|
|
235
|
+
visit name: 'View Login', url: '/login',
|
|
250
236
|
protocol: "https",
|
|
251
237
|
port: 443
|
|
252
|
-
}
|
|
253
238
|
```
|
|
254
239
|
|
|
255
240
|
### Submitting a Form
|
|
@@ -257,7 +242,7 @@ visit 'View Login', '/login', {
|
|
|
257
242
|
You can use the `submit` method to POST a HTTP form:
|
|
258
243
|
|
|
259
244
|
```ruby
|
|
260
|
-
submit 'Submit Form', 'http://altentee.com/',
|
|
245
|
+
submit name: 'Submit Form', url: 'http://altentee.com/',
|
|
261
246
|
fill_in: {
|
|
262
247
|
username: 'tim',
|
|
263
248
|
password: 'password',
|
|
@@ -265,7 +250,7 @@ submit 'Submit Form', 'http://altentee.com/', {
|
|
|
265
250
|
}
|
|
266
251
|
```
|
|
267
252
|
|
|
268
|
-
This method makes a single request
|
|
253
|
+
This method makes a single request. The fill_in parameter lets you specify key/value pairs for form field parameters. You can also use the built in JMeter `${expression}` language to access run time variables extracted from previous responses.
|
|
269
254
|
|
|
270
255
|
### Think Time
|
|
271
256
|
|
|
@@ -289,33 +274,26 @@ random_timer 1000,5000
|
|
|
289
274
|
You can use the `extract` method to extract values from a server response using a regular expression. This is aliased as the `web_reg_save_param` method. This method is typically used inside a `visit` or `submit` block.
|
|
290
275
|
|
|
291
276
|
```ruby
|
|
292
|
-
extract
|
|
293
|
-
```
|
|
277
|
+
extract regex: "content='(.+?)' name='csrf-token'", name: 'csrf-token'
|
|
294
278
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
visit 'Google', "http://google.com/" do
|
|
299
|
-
extract 'button_text', 'aria-label="(.+?)"'
|
|
300
|
-
extract :regex, 'button_text', 'aria-label="(.+?)"'
|
|
301
|
-
extract :xpath, 'button', '//button'
|
|
279
|
+
visit name: 'Google', url: "http://google.com/" do
|
|
280
|
+
extract regex: 'aria-label="(.+?)"', name: 'button_text'
|
|
281
|
+
extract xpath: '//button', name: 'button'
|
|
302
282
|
end
|
|
303
283
|
```
|
|
304
284
|
|
|
305
285
|
This is based on the [Regular Expression Extractor](http://jmeter.apache.org/usermanual/component_reference.html#Regular_Expression_Extractor) and [XPath Extractor](http://jmeter.apache.org/usermanual/component_reference.html#XPath_Extractor)
|
|
306
286
|
|
|
307
287
|
```ruby
|
|
308
|
-
visit "Altentee", "http://altentee.com" do
|
|
309
|
-
extract
|
|
310
|
-
extract
|
|
311
|
-
web_reg_save_param
|
|
312
|
-
extract 'username', 'value="(.+?)" name="username"',
|
|
288
|
+
visit name: "Altentee", url: "http://altentee.com" do
|
|
289
|
+
extract regex: "content='(.+?)' name='csrf-token'", name: 'csrf-token'
|
|
290
|
+
extract regex: 'value="(.+?)" name="JESSIONSID"', name: 'JSESSIONID'
|
|
291
|
+
web_reg_save_param regex: 'value="(.+?)" name="VIEWSTATE"', name: 'VIEWSTATE'
|
|
292
|
+
extract name: 'username', regex: 'value="(.+?)", name="username"',
|
|
313
293
|
default: 'Tim Koopmans',
|
|
314
294
|
match_number: 1
|
|
315
|
-
|
|
316
|
-
extract 'shopping_item', 'id="(.+?)" name="book"', {
|
|
295
|
+
extract name: 'shopping_item', regex: 'id="(.+?)" name="book"',
|
|
317
296
|
match_number: 0 # random
|
|
318
|
-
}
|
|
319
297
|
end
|
|
320
298
|
```
|
|
321
299
|
|
|
@@ -325,7 +303,7 @@ You can use the `assert` method to extract values from a server response using a
|
|
|
325
303
|
|
|
326
304
|
```ruby
|
|
327
305
|
visit "Altentee", "http://altentee.com" do
|
|
328
|
-
assert
|
|
306
|
+
assert contains: "We test, tune and secure your site"
|
|
329
307
|
end
|
|
330
308
|
```
|
|
331
309
|
|
|
@@ -334,12 +312,12 @@ This method takes 3 parameters: the matching rule, the test string, and an optio
|
|
|
334
312
|
|
|
335
313
|
```ruby
|
|
336
314
|
visit "Altentee", "http://altentee.com" do
|
|
337
|
-
assert "contains"
|
|
338
|
-
assert "not-contains"
|
|
339
|
-
assert "matches"
|
|
340
|
-
assert "not-matches"
|
|
341
|
-
assert "contains"
|
|
342
|
-
assert "not-contains"
|
|
315
|
+
assert "contains": "We test, tune and secure your site"
|
|
316
|
+
assert "not-contains": "We price gouge on cloud services"
|
|
317
|
+
assert "matches": "genius"
|
|
318
|
+
assert "not-matches": "fakers"
|
|
319
|
+
assert "contains": "magic"
|
|
320
|
+
assert "not-contains": "unicorns", scope: 'all'
|
|
343
321
|
end
|
|
344
322
|
```
|
|
345
323
|
|
|
@@ -351,6 +329,7 @@ This is very much a work-in-progress. Future work is being sponsored by Gridinit
|
|
|
351
329
|
|
|
352
330
|
1. Fork it
|
|
353
331
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
354
|
-
3.
|
|
355
|
-
4.
|
|
356
|
-
5.
|
|
332
|
+
3. Create some specs, make them pass
|
|
333
|
+
4. Commit your changes (`git commit -am 'Add some feature'`)
|
|
334
|
+
5. Push to the branch (`git push origin my-new-feature`)
|
|
335
|
+
6. Create new Pull Request
|
data/examples/basic_assertion.rb
CHANGED
|
@@ -2,12 +2,12 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
threads 2 do
|
|
6
|
-
transaction 'Assertions' do
|
|
7
|
-
visit 'Altentee', 'http://altentee.com/' do
|
|
8
|
-
assert
|
|
9
|
-
assert
|
|
5
|
+
threads count: 2 do
|
|
6
|
+
transaction name: 'Assertions' do
|
|
7
|
+
visit name: 'Altentee', url: 'http://altentee.com/' do
|
|
8
|
+
assert contains: 'We test, tune and secure your site'
|
|
9
|
+
assert 'not-contains' => 'Something in frames', scope: 'children'
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
|
-
end.
|
|
13
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/basic_auth.rb
CHANGED
|
@@ -2,10 +2,10 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
auth :
|
|
6
|
-
threads 1 do
|
|
7
|
-
transaction 'Google Search' do
|
|
8
|
-
visit 'Home Page', 'http://google.com/'
|
|
5
|
+
auth url: '/', username: 'tim', password: 'secret', domain: 'altentee.com'
|
|
6
|
+
threads count: 1 do
|
|
7
|
+
transaction name: 'Google Search' do
|
|
8
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
|
-
end.
|
|
11
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/basic_cache.rb
CHANGED
|
@@ -2,10 +2,10 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
cache :
|
|
6
|
-
threads 1 do
|
|
7
|
-
transaction 'Google Search' do
|
|
8
|
-
visit 'Home Page', 'http://google.com/'
|
|
5
|
+
cache clear_each_iteration: true
|
|
6
|
+
threads count: 1 do
|
|
7
|
+
transaction name: 'Google Search' do
|
|
8
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
|
-
end.
|
|
11
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/basic_cookies.rb
CHANGED
|
@@ -2,10 +2,10 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
cookies :
|
|
6
|
-
threads 1 do
|
|
7
|
-
transaction 'Google Search' do
|
|
8
|
-
visit 'Home Page', 'http://google.com/'
|
|
5
|
+
cookies clear_each_iteration: false
|
|
6
|
+
threads count: 1 do
|
|
7
|
+
transaction name: 'Google Search' do
|
|
8
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
|
-
end.
|
|
11
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/basic_extract.rb
CHANGED
|
@@ -2,15 +2,9 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
visit 'Google', "http://google.com/" do
|
|
9
|
-
extract 'button_text', 'aria-label="(.+?)"'
|
|
10
|
-
extract :regex, 'button_text', 'aria-label="(.+?)"'
|
|
11
|
-
extract :xpath, 'button', '//button'
|
|
5
|
+
threads count: 100 do
|
|
6
|
+
visit name: 'Home', url: 'http://altentee.com' do
|
|
7
|
+
extract regex: "content='(.+?)' name='csrf-token'", name: 'csrf-token'
|
|
12
8
|
end
|
|
13
|
-
|
|
14
9
|
end
|
|
15
|
-
|
|
16
|
-
end.jmx
|
|
10
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
@@ -2,19 +2,22 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
cookies clear_each_iteration: false
|
|
6
|
+
threads count: 1 do
|
|
7
|
+
transaction name: 'Google Search' do
|
|
8
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
9
|
+
end
|
|
7
10
|
end
|
|
8
11
|
|
|
9
12
|
#
|
|
10
13
|
# You need jmeter-plugins at Google code
|
|
11
14
|
# http://code.google.com/p/jmeter-plugins
|
|
12
15
|
#
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
latencies_over_time 'Response Latencies Over Time'
|
|
17
|
+
response_codes_per_second 'Response Codes per Second'
|
|
18
|
+
response_times_distribution 'Response Times Distribution'
|
|
19
|
+
response_times_over_time 'Response Times Over Time'
|
|
20
|
+
response_times_percentiles 'Response Times Percentiles'
|
|
21
|
+
transactions_per_second 'Transactions per Second'
|
|
19
22
|
|
|
20
|
-
end.
|
|
23
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/basic_google.rb
CHANGED
|
@@ -2,7 +2,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
threads
|
|
6
|
-
visit '
|
|
5
|
+
threads count: 1 do
|
|
6
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
7
7
|
end
|
|
8
|
-
end.
|
|
8
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/basic_grid.rb
CHANGED
|
@@ -2,10 +2,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
transaction 'Home Page' do
|
|
8
|
-
visit 'Altentee', 'http://127.0.0.1:9200/'
|
|
9
|
-
end
|
|
5
|
+
threads count: 1 do
|
|
6
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
10
7
|
end
|
|
11
|
-
end.grid('4dy-zJLEIgpYkKe6p6JhSQ', {:
|
|
8
|
+
end.grid('4dy-zJLEIgpYkKe6p6JhSQ', {:region => 'ap_southeast_1'})
|
data/examples/basic_header.rb
CHANGED
|
@@ -2,16 +2,18 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
header '
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
header name: 'Accept', value: '*'
|
|
6
|
+
|
|
7
|
+
with_user_agent :iphone
|
|
8
|
+
|
|
9
|
+
threads count: 1 do
|
|
10
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
11
|
+
end
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
end
|
|
13
|
+
transaction name: 'Google Search via XHR' do
|
|
14
|
+
visit name: 'Home Page', url: 'http://google.com/' do
|
|
15
|
+
with_xhr
|
|
15
16
|
end
|
|
16
17
|
end
|
|
17
|
-
|
|
18
|
+
|
|
19
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/basic_ldap_ext.rb
CHANGED
|
@@ -2,16 +2,15 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
threads 1 do
|
|
6
|
-
ldap_ext 'ldap_ext sample',
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
threads count: 1 do
|
|
6
|
+
ldap_ext name: 'ldap_ext sample',
|
|
7
|
+
test: 'sbind',
|
|
8
|
+
user_dn: 'user_dn',
|
|
9
|
+
user_pw: 'user_password',
|
|
10
|
+
servername: 'your_ldap_server',
|
|
11
|
+
secure: true,
|
|
12
|
+
port: 636
|
|
13
|
+
|
|
14
14
|
end
|
|
15
|
-
view_results
|
|
16
|
-
end.
|
|
17
|
-
|
|
15
|
+
view_results name: 'debug'
|
|
16
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
data/examples/basic_post.rb
CHANGED
|
@@ -3,14 +3,13 @@ require 'gridinit-jmeter'
|
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
5
|
|
|
6
|
-
threads 1 do
|
|
6
|
+
threads count: 1 do
|
|
7
7
|
|
|
8
|
-
transaction 'Post with a Raw Body',
|
|
9
|
-
post 'Home Page', 'http://google.com',
|
|
10
|
-
:
|
|
11
|
-
}
|
|
8
|
+
transaction name: 'Post with a Raw Body', parent: false do
|
|
9
|
+
post name: 'Home Page', url: 'http://google.com',
|
|
10
|
+
raw_body: '{"name":"Big Poncho","price":10,"vendor_attendance_id":24,"product_id":1}'
|
|
12
11
|
end
|
|
13
12
|
|
|
14
13
|
end
|
|
15
14
|
|
|
16
|
-
end.
|
|
15
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
@@ -2,7 +2,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
threads 10 do
|
|
6
|
-
visit 'Google Search', 'http://google.com/?hl=en&tbo=d&sclient=psy-ab&q=gridinit&oq=gridinit'
|
|
5
|
+
threads count: 10 do
|
|
6
|
+
visit name: 'Google Search', url: 'http://google.com/?hl=en&tbo=d&sclient=psy-ab&q=gridinit&oq=gridinit'
|
|
7
7
|
end
|
|
8
|
-
end.
|
|
8
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
@@ -2,11 +2,14 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
threads 100 do
|
|
5
|
+
threads count: 100 do
|
|
6
|
+
|
|
6
7
|
think_time 5000,5000
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
transaction name: 'Google Search' do
|
|
10
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
9
11
|
random_timer 3000
|
|
10
12
|
end
|
|
13
|
+
|
|
11
14
|
end
|
|
12
|
-
end.
|
|
15
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
@@ -2,7 +2,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
|
2
2
|
require 'gridinit-jmeter'
|
|
3
3
|
|
|
4
4
|
test do
|
|
5
|
-
threads 100 do # threads = RPS * <max response time ms> / 1000
|
|
5
|
+
threads count: 100 do # threads = RPS * <max response time ms> / 1000
|
|
6
6
|
|
|
7
7
|
throughput_shaper 'increasing load test', [
|
|
8
8
|
{ :start_rps => 100, :end_rps => 100, :duration => 60 },
|
|
@@ -13,9 +13,9 @@ test do
|
|
|
13
13
|
{ :start_rps => 600, :end_rps => 600, :duration => 60 }
|
|
14
14
|
]
|
|
15
15
|
|
|
16
|
-
transaction 'Google Search' do
|
|
17
|
-
visit 'Home Page', 'http://google.com/'
|
|
16
|
+
transaction name: 'Google Search' do
|
|
17
|
+
visit name: 'Home Page', url: 'http://google.com/'
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
end
|
|
21
|
-
end.
|
|
21
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|
|
@@ -9,30 +9,30 @@ test do
|
|
|
9
9
|
|
|
10
10
|
cookies
|
|
11
11
|
|
|
12
|
-
threads 1,
|
|
12
|
+
threads :count => 1, :loops => 10 do
|
|
13
13
|
|
|
14
14
|
random_timer 1000, 3000
|
|
15
15
|
|
|
16
16
|
transaction '01_etsy_home' do
|
|
17
|
-
visit 'home', 'http://www.etsy.com/' do
|
|
18
|
-
assert 'contains'
|
|
17
|
+
visit :name => 'home', :url => 'http://www.etsy.com/' do
|
|
18
|
+
assert 'contains' => 'Etsy - Your place to buy and sell all things handmade, vintage, and supplies'
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
Once do
|
|
23
23
|
transaction '02_etsy_signin' do
|
|
24
|
-
submit 'signin', 'https://www.etsy.com/signin',
|
|
24
|
+
submit :name => 'signin', :url => 'https://www.etsy.com/signin',
|
|
25
25
|
:fill_in => {
|
|
26
|
-
:username
|
|
27
|
-
:password
|
|
28
|
-
:persistent
|
|
29
|
-
:from_page
|
|
26
|
+
:username => 'tim.koops@gmail.com',
|
|
27
|
+
:password => ARGV[0],
|
|
28
|
+
:persistent => 1,
|
|
29
|
+
:from_page => 'http://www.etsy.com/',
|
|
30
30
|
:from_action => '',
|
|
31
|
-
:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
:from_name => '',
|
|
32
|
+
:overlay => 1
|
|
33
|
+
} do
|
|
34
|
+
assert 'contains' => 'Tim'
|
|
35
|
+
extract :regex => 'a href="(/browse.+?)"', :name => 'random_category'
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
end
|
|
@@ -40,25 +40,25 @@ test do
|
|
|
40
40
|
exists 'random_category' do
|
|
41
41
|
|
|
42
42
|
transaction '03_etsy_browse_random_category' do
|
|
43
|
-
visit 'browse', '${random_category}' do
|
|
44
|
-
extract
|
|
43
|
+
visit :name => 'browse', :url => '${random_category}' do
|
|
44
|
+
extract :regex => 'a href="(http.+?subcat.+?)"', :name => 'random_sub_category'
|
|
45
45
|
end
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
transaction '04_etsy_browse_random_sub_category' do
|
|
49
|
-
visit 'browse', '${random_sub_category}' do
|
|
50
|
-
extract
|
|
49
|
+
visit :name => 'browse', :url => '${random_sub_category}' do
|
|
50
|
+
extract :regex => 'a href="(/listing.+?)"', :name => 'random_listing'
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
transaction '05_etsy_view_random_listing' do
|
|
55
|
-
visit 'view', '${random_listing}'
|
|
55
|
+
visit :name => 'view', :url => '${random_listing}'
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
-
end.grid ARGV[1]
|
|
62
|
+
# end.grid ARGV[1]
|
|
63
63
|
# end.jmx
|
|
64
|
-
|
|
64
|
+
end.run(path: '/usr/share/jmeter/bin/', gui: true)
|