jmeter-ruby 3.0.0
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 +7 -0
- data/.gitattributes +22 -0
- data/.github/workflows/ci.yml +54 -0
- data/.gitignore +24 -0
- data/.rspec +1 -0
- data/.ruby-version +1 -0
- data/CHANGES.md +77 -0
- data/Gemfile +23 -0
- data/LICENSE.txt +21 -0
- data/README.md +434 -0
- data/Rakefile +18 -0
- data/examples/OS_process_sampler.rb +24 -0
- data/examples/assertion_results.rb +18 -0
- data/examples/basic_auth.rb +11 -0
- data/examples/browser_headers.rb +7 -0
- data/examples/composite_graph.rb +29 -0
- data/examples/constant_throughput_timer.rb +11 -0
- data/examples/csv_data_set.rb +11 -0
- data/examples/dummy_sampler.rb +9 -0
- data/examples/duration_assertion.rb +10 -0
- data/examples/etsy_login_browse.rb +61 -0
- data/examples/extract.rb +12 -0
- data/examples/foreach_controller.rb +29 -0
- data/examples/header_manager.rb +29 -0
- data/examples/http_cache_manager.rb +11 -0
- data/examples/http_cookie_manager.rb +11 -0
- data/examples/http_request_defaults.rb +11 -0
- data/examples/http_request_post.rb +11 -0
- data/examples/http_request_with_files.rb +13 -0
- data/examples/http_request_with_query_params.rb +8 -0
- data/examples/jmeter_plugins_graphs.rb +22 -0
- data/examples/json_path_assertions.rb +11 -0
- data/examples/json_path_extractor.rb +10 -0
- data/examples/json_path_postprocessor.rb +10 -0
- data/examples/jsr223_assertion.rb +13 -0
- data/examples/ldap_sampler.rb +16 -0
- data/examples/loadosophia.rb +18 -0
- data/examples/loop_controller.rb +10 -0
- data/examples/loops_with_counter.rb +15 -0
- data/examples/once_only_controller.rb +15 -0
- data/examples/perfmon.rb +46 -0
- data/examples/real_custom_methods.rb +19 -0
- data/examples/real_page_objects.rb +41 -0
- data/examples/real_redis_data_set_with_setup.rb +123 -0
- data/examples/real_user_objects_github.rb +112 -0
- data/examples/regular_expression_extractor.rb +12 -0
- data/examples/response_assertion.rb +15 -0
- data/examples/response_time_percentiles_graph.rb +11 -0
- data/examples/rsync.rb +16 -0
- data/examples/sample_transaction.rb +18 -0
- data/examples/simple_data_writer_listener.rb +11 -0
- data/examples/stepping_thread_group.rb +30 -0
- data/examples/test_fragment.rb +14 -0
- data/examples/think_time.rb +15 -0
- data/examples/thread_groups.rb +7 -0
- data/examples/throughput_controller.rb +14 -0
- data/examples/throughput_shaping_timer.rb +20 -0
- data/examples/ultimate_thread_group.rb +39 -0
- data/examples/unicode.rb +8 -0
- data/examples/user_defined_variables.rb +10 -0
- data/examples/user_parameters.rb +28 -0
- data/examples/uuid_per_iteration.rb +15 -0
- data/jmeter-ruby.gemspec +28 -0
- data/lib/jmeter-ruby/DSL.md +235 -0
- data/lib/jmeter-ruby/dsl/access_log_sampler.rb +32 -0
- data/lib/jmeter-ruby/dsl/aggregate_graph.rb +55 -0
- data/lib/jmeter-ruby/dsl/aggregate_report.rb +55 -0
- data/lib/jmeter-ruby/dsl/ajp13_sampler.rb +41 -0
- data/lib/jmeter-ruby/dsl/assertion_results.rb +55 -0
- data/lib/jmeter-ruby/dsl/beanshell_assertion.rb +28 -0
- data/lib/jmeter-ruby/dsl/beanshell_listener.rb +28 -0
- data/lib/jmeter-ruby/dsl/beanshell_postprocessor.rb +28 -0
- data/lib/jmeter-ruby/dsl/beanshell_preprocessor.rb +28 -0
- data/lib/jmeter-ruby/dsl/beanshell_sampler.rb +28 -0
- data/lib/jmeter-ruby/dsl/beanshell_timer.rb +28 -0
- data/lib/jmeter-ruby/dsl/bsf_assertion.rb +28 -0
- data/lib/jmeter-ruby/dsl/bsf_listener.rb +28 -0
- data/lib/jmeter-ruby/dsl/bsf_postprocessor.rb +28 -0
- data/lib/jmeter-ruby/dsl/bsf_preprocessor.rb +28 -0
- data/lib/jmeter-ruby/dsl/bsf_sampler.rb +28 -0
- data/lib/jmeter-ruby/dsl/bsf_timer.rb +28 -0
- data/lib/jmeter-ruby/dsl/compare_assertion.rb +27 -0
- data/lib/jmeter-ruby/dsl/comparison_assertion_visualizer.rb +55 -0
- data/lib/jmeter-ruby/dsl/constant_throughput_timer.rb +26 -0
- data/lib/jmeter-ruby/dsl/constant_timer.rb +25 -0
- data/lib/jmeter-ruby/dsl/counter.rb +31 -0
- data/lib/jmeter-ruby/dsl/cssjquery_extractor.rb +31 -0
- data/lib/jmeter-ruby/dsl/csv_data_set_config.rb +33 -0
- data/lib/jmeter-ruby/dsl/debug_postprocessor.rb +28 -0
- data/lib/jmeter-ruby/dsl/debug_sampler.rb +27 -0
- data/lib/jmeter-ruby/dsl/distribution_graphalpha.rb +55 -0
- data/lib/jmeter-ruby/dsl/duration_assertion.rb +25 -0
- data/lib/jmeter-ruby/dsl/foreach_controller.rb +27 -0
- data/lib/jmeter-ruby/dsl/ftp_request.rb +34 -0
- data/lib/jmeter-ruby/dsl/ftp_request_defaults.rb +32 -0
- data/lib/jmeter-ruby/dsl/gaussian_random_timer.rb +26 -0
- data/lib/jmeter-ruby/dsl/generate_summary_results.rb +23 -0
- data/lib/jmeter-ruby/dsl/graph_results.rb +55 -0
- data/lib/jmeter-ruby/dsl/html_assertion.rb +30 -0
- data/lib/jmeter-ruby/dsl/html_link_parser.rb +23 -0
- data/lib/jmeter-ruby/dsl/html_parameter_mask.rb +32 -0
- data/lib/jmeter-ruby/dsl/http_authorization_manager.rb +33 -0
- data/lib/jmeter-ruby/dsl/http_cache_manager.rb +26 -0
- data/lib/jmeter-ruby/dsl/http_cookie_manager.rb +28 -0
- data/lib/jmeter-ruby/dsl/http_header_manager.rb +30 -0
- data/lib/jmeter-ruby/dsl/http_request.rb +41 -0
- data/lib/jmeter-ruby/dsl/http_request_defaults.rb +41 -0
- data/lib/jmeter-ruby/dsl/http_url_rewriting_modifier.rb +30 -0
- data/lib/jmeter-ruby/dsl/if_controller.rb +27 -0
- data/lib/jmeter-ruby/dsl/include_controller.rb +25 -0
- data/lib/jmeter-ruby/dsl/java_request.rb +69 -0
- data/lib/jmeter-ruby/dsl/java_request_defaults.rb +69 -0
- data/lib/jmeter-ruby/dsl/jdbc_connection_configuration.rb +37 -0
- data/lib/jmeter-ruby/dsl/jdbc_postprocessor.rb +33 -0
- data/lib/jmeter-ruby/dsl/jdbc_preprocessor.rb +33 -0
- data/lib/jmeter-ruby/dsl/jdbc_request.rb +33 -0
- data/lib/jmeter-ruby/dsl/jms_pointtopoint.rb +41 -0
- data/lib/jmeter-ruby/dsl/jms_publisher.rb +43 -0
- data/lib/jmeter-ruby/dsl/jms_subscriber.rb +35 -0
- data/lib/jmeter-ruby/dsl/json_path_postprocessor.rb +27 -0
- data/lib/jmeter-ruby/dsl/jsr223_assertion.rb +29 -0
- data/lib/jmeter-ruby/dsl/jsr223_listener.rb +29 -0
- data/lib/jmeter-ruby/dsl/jsr223_postprocessor.rb +29 -0
- data/lib/jmeter-ruby/dsl/jsr223_preprocessor.rb +29 -0
- data/lib/jmeter-ruby/dsl/jsr223_sampler.rb +29 -0
- data/lib/jmeter-ruby/dsl/jsr223_timer.rb +29 -0
- data/lib/jmeter-ruby/dsl/junit_request.rb +37 -0
- data/lib/jmeter-ruby/dsl/keystore_configuration.rb +28 -0
- data/lib/jmeter-ruby/dsl/ldap_extended_request.rb +42 -0
- data/lib/jmeter-ruby/dsl/ldap_extended_request_defaults.rb +42 -0
- data/lib/jmeter-ruby/dsl/ldap_request.rb +35 -0
- data/lib/jmeter-ruby/dsl/ldap_request_defaults.rb +39 -0
- data/lib/jmeter-ruby/dsl/login_config_element.rb +26 -0
- data/lib/jmeter-ruby/dsl/loop_controller.rb +26 -0
- data/lib/jmeter-ruby/dsl/mail_reader_sampler.rb +37 -0
- data/lib/jmeter-ruby/dsl/mailer_visualizer.rb +64 -0
- data/lib/jmeter-ruby/dsl/md5hex_assertion.rb +25 -0
- data/lib/jmeter-ruby/dsl/module_controller.rb +25 -0
- data/lib/jmeter-ruby/dsl/monitor_results.rb +55 -0
- data/lib/jmeter-ruby/dsl/once_only_controller.rb +23 -0
- data/lib/jmeter-ruby/dsl/os_process_sampler.rb +34 -0
- data/lib/jmeter-ruby/dsl/poisson_random_timer.rb +26 -0
- data/lib/jmeter-ruby/dsl/random_controller.rb +25 -0
- data/lib/jmeter-ruby/dsl/random_order_controller.rb +23 -0
- data/lib/jmeter-ruby/dsl/random_variable.rb +30 -0
- data/lib/jmeter-ruby/dsl/recording_controller.rb +23 -0
- data/lib/jmeter-ruby/dsl/regex_user_parameters.rb +27 -0
- data/lib/jmeter-ruby/dsl/regular_expression_extractor.rb +32 -0
- data/lib/jmeter-ruby/dsl/response_assertion.rb +31 -0
- data/lib/jmeter-ruby/dsl/response_time_graph.rb +55 -0
- data/lib/jmeter-ruby/dsl/result_status_action_handler.rb +25 -0
- data/lib/jmeter-ruby/dsl/runtime_controller.rb +25 -0
- data/lib/jmeter-ruby/dsl/save_responses_to_a_file.rb +29 -0
- data/lib/jmeter-ruby/dsl/setup_thread_group.rb +36 -0
- data/lib/jmeter-ruby/dsl/simple_config_element.rb +23 -0
- data/lib/jmeter-ruby/dsl/simple_controller.rb +23 -0
- data/lib/jmeter-ruby/dsl/simple_data_writer.rb +55 -0
- data/lib/jmeter-ruby/dsl/smime_assertion.rb +35 -0
- data/lib/jmeter-ruby/dsl/smtp_sampler.rb +51 -0
- data/lib/jmeter-ruby/dsl/soapxmlrpc_request.rb +33 -0
- data/lib/jmeter-ruby/dsl/spline_visualizer.rb +55 -0
- data/lib/jmeter-ruby/dsl/summary_report.rb +55 -0
- data/lib/jmeter-ruby/dsl/switch_controller.rb +25 -0
- data/lib/jmeter-ruby/dsl/synchronizing_timer.rb +26 -0
- data/lib/jmeter-ruby/dsl/tcp_sampler.rb +33 -0
- data/lib/jmeter-ruby/dsl/tcp_sampler_config.rb +31 -0
- data/lib/jmeter-ruby/dsl/test_action.rb +27 -0
- data/lib/jmeter-ruby/dsl/test_fragment.rb +23 -0
- data/lib/jmeter-ruby/dsl/test_plan.rb +31 -0
- data/lib/jmeter-ruby/dsl/thread_group.rb +37 -0
- data/lib/jmeter-ruby/dsl/throughput_controller.rb +32 -0
- data/lib/jmeter-ruby/dsl/transaction_controller.rb +26 -0
- data/lib/jmeter-ruby/dsl/uniform_random_timer.rb +26 -0
- data/lib/jmeter-ruby/dsl/user_defined_variables.rb +33 -0
- data/lib/jmeter-ruby/dsl/user_parameters.rb +30 -0
- data/lib/jmeter-ruby/dsl/view_results_in_table.rb +55 -0
- data/lib/jmeter-ruby/dsl/view_results_tree.rb +55 -0
- data/lib/jmeter-ruby/dsl/while_controller.rb +25 -0
- data/lib/jmeter-ruby/dsl/xml_assertion.rb +23 -0
- data/lib/jmeter-ruby/dsl/xml_schema_assertion.rb +25 -0
- data/lib/jmeter-ruby/dsl/xpath_assertion.rb +31 -0
- data/lib/jmeter-ruby/dsl/xpath_extractor.rb +31 -0
- data/lib/jmeter-ruby/dsl.rb +102 -0
- data/lib/jmeter-ruby/extend/assertions/response_assertion.rb +36 -0
- data/lib/jmeter-ruby/extend/config_elements/header_manager.rb +13 -0
- data/lib/jmeter-ruby/extend/config_elements/http_cache_manager.rb +12 -0
- data/lib/jmeter-ruby/extend/config_elements/http_cookie_manager.rb +36 -0
- data/lib/jmeter-ruby/extend/config_elements/http_request_defaults.rb +39 -0
- data/lib/jmeter-ruby/extend/config_elements/user_defined_variables.rb +13 -0
- data/lib/jmeter-ruby/extend/config_elements/user_parameters.rb +31 -0
- data/lib/jmeter-ruby/extend/controllers/foreach_controller.rb +27 -0
- data/lib/jmeter-ruby/extend/controllers/loop_controller.rb +11 -0
- data/lib/jmeter-ruby/extend/controllers/module_controller.rb +23 -0
- data/lib/jmeter-ruby/extend/controllers/throughput_controller.rb +15 -0
- data/lib/jmeter-ruby/extend/controllers/transaction_controller.rb +14 -0
- data/lib/jmeter-ruby/extend/misc/aliases.rb +21 -0
- data/lib/jmeter-ruby/extend/misc/exists.rb +13 -0
- data/lib/jmeter-ruby/extend/misc/rsync.rb +24 -0
- data/lib/jmeter-ruby/extend/misc/uuid.rb +12 -0
- data/lib/jmeter-ruby/extend/misc/with_helpers.rb +27 -0
- data/lib/jmeter-ruby/extend/plugins/jmeter_plugins.rb +120 -0
- data/lib/jmeter-ruby/extend/processors/extract.rb +28 -0
- data/lib/jmeter-ruby/extend/processors/regular_expression_extractor.rb +25 -0
- data/lib/jmeter-ruby/extend/samplers/http_request.rb +58 -0
- data/lib/jmeter-ruby/extend/samplers/jms_pointtopoint.rb +26 -0
- data/lib/jmeter-ruby/extend/samplers/soapxmlrpc_request.rb +9 -0
- data/lib/jmeter-ruby/extend/threads/setup_thread_group.rb +18 -0
- data/lib/jmeter-ruby/extend/threads/thread_group.rb +19 -0
- data/lib/jmeter-ruby/extend/timers/constant_throughput_timer.rb +11 -0
- data/lib/jmeter-ruby/extend/timers/random_timer.rb +14 -0
- data/lib/jmeter-ruby/helpers/fallback_content_proxy.rb +54 -0
- data/lib/jmeter-ruby/helpers/helper.rb +75 -0
- data/lib/jmeter-ruby/helpers/logger-colors.rb +48 -0
- data/lib/jmeter-ruby/helpers/parser.rb +135 -0
- data/lib/jmeter-ruby/helpers/strip-heredoc.rb +5 -0
- data/lib/jmeter-ruby/helpers/user-agents.rb +27 -0
- data/lib/jmeter-ruby/idl.rb +70 -0
- data/lib/jmeter-ruby/idl.xml +1488 -0
- data/lib/jmeter-ruby/plugins/active_threads_over_time.rb +57 -0
- data/lib/jmeter-ruby/plugins/composite_graph.rb +71 -0
- data/lib/jmeter-ruby/plugins/console_status_logger.rb +15 -0
- data/lib/jmeter-ruby/plugins/dummy_sampler.rb +26 -0
- data/lib/jmeter-ruby/plugins/jmx_collector.rb +73 -0
- data/lib/jmeter-ruby/plugins/json_path_assertion.rb +19 -0
- data/lib/jmeter-ruby/plugins/json_path_extractor.rb +20 -0
- data/lib/jmeter-ruby/plugins/latencies_over_time.rb +49 -0
- data/lib/jmeter-ruby/plugins/loadosophia_uploader.rb +63 -0
- data/lib/jmeter-ruby/plugins/perfmon_collector.rb +80 -0
- data/lib/jmeter-ruby/plugins/redis_data_set.rb +39 -0
- data/lib/jmeter-ruby/plugins/response_codes_per_second.rb +49 -0
- data/lib/jmeter-ruby/plugins/response_times_distribution.rb +49 -0
- data/lib/jmeter-ruby/plugins/response_times_over_time.rb +50 -0
- data/lib/jmeter-ruby/plugins/response_times_percentiles.rb +51 -0
- data/lib/jmeter-ruby/plugins/stepping_thread_group.rb +30 -0
- data/lib/jmeter-ruby/plugins/transactions_per_second.rb +50 -0
- data/lib/jmeter-ruby/plugins/ultimate_thread_group.rb +23 -0
- data/lib/jmeter-ruby/plugins/variable_throughput_timer.rb +27 -0
- data/lib/jmeter-ruby/version.rb +12 -0
- data/lib/jmeter-ruby.rb +27 -0
- data/mise.toml +2 -0
- data/script/release +162 -0
- data/spec/constant_throughput_timer_spec.rb +20 -0
- data/spec/csv_data_set_config_spec.rb +33 -0
- data/spec/header_manager_spec.rb +37 -0
- data/spec/http_cache_manager_spec.rb +29 -0
- data/spec/http_cookie_manager_spec.rb +169 -0
- data/spec/http_request_defaults_spec.rb +57 -0
- data/spec/http_request_spec.rb +305 -0
- data/spec/jmeter_plugins_spec.rb +245 -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/spec_helper.rb +19 -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 +360 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def setup_thread_group(params={}, &block)
|
4
|
+
node = JmeterRuby::SetupThreadGroup.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SetupThreadGroup
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SetupThreadGroup' : (params[:name] || 'SetupThreadGroup')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="#{testname}" enabled="true">
|
17
|
+
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
|
18
|
+
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="#{testname}" enabled="true">
|
19
|
+
<boolProp name="LoopController.continue_forever">false</boolProp>
|
20
|
+
<stringProp name="LoopController.loops">-1</stringProp>
|
21
|
+
</elementProp>
|
22
|
+
<stringProp name="ThreadGroup.num_threads">1</stringProp>
|
23
|
+
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
|
24
|
+
<longProp name="ThreadGroup.start_time">1442954623000</longProp>
|
25
|
+
<longProp name="ThreadGroup.end_time">1442954623000</longProp>
|
26
|
+
<boolProp name="ThreadGroup.scheduler">true</boolProp>
|
27
|
+
<stringProp name="ThreadGroup.duration"></stringProp>
|
28
|
+
<stringProp name="ThreadGroup.delay"></stringProp>
|
29
|
+
</SetupThreadGroup>)
|
30
|
+
EOS
|
31
|
+
update params
|
32
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def simple_config_element(params={}, &block)
|
4
|
+
node = JmeterRuby::SimpleConfigElement.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SimpleConfigElement
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SimpleConfigElement' : (params[:name] || 'SimpleConfigElement')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<ConfigTestElement guiclass="SimpleConfigGui" testclass="ConfigTestElement" testname="#{testname}" enabled="true"/>)
|
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
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def simple_controller(params={}, &block)
|
4
|
+
node = JmeterRuby::SimpleController.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SimpleController
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SimpleController' : (params[:name] || 'SimpleController')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="#{testname}" enabled="true"/>)
|
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
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def simple_data_writer(params={}, &block)
|
4
|
+
node = JmeterRuby::SimpleDataWriter.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SimpleDataWriter
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SimpleDataWriter' : (params[:name] || 'SimpleDataWriter')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="#{testname}" enabled="true">
|
17
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
18
|
+
<objProp>
|
19
|
+
<name>saveConfig</name>
|
20
|
+
<value class="SampleSaveConfiguration">
|
21
|
+
<time>true</time>
|
22
|
+
<latency>true</latency>
|
23
|
+
<timestamp>true</timestamp>
|
24
|
+
<success>true</success>
|
25
|
+
<label>true</label>
|
26
|
+
<code>true</code>
|
27
|
+
<message>true</message>
|
28
|
+
<threadName>true</threadName>
|
29
|
+
<dataType>false</dataType>
|
30
|
+
<encoding>false</encoding>
|
31
|
+
<assertions>false</assertions>
|
32
|
+
<subresults>false</subresults>
|
33
|
+
<responseData>false</responseData>
|
34
|
+
<samplerData>false</samplerData>
|
35
|
+
<xml>true</xml>
|
36
|
+
<fieldNames>false</fieldNames>
|
37
|
+
<responseHeaders>true</responseHeaders>
|
38
|
+
<requestHeaders>false</requestHeaders>
|
39
|
+
<responseDataOnError>false</responseDataOnError>
|
40
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
41
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
42
|
+
<bytes>true</bytes>
|
43
|
+
<threadCounts>true</threadCounts>
|
44
|
+
<sampleCount>true</sampleCount>
|
45
|
+
</value>
|
46
|
+
</objProp>
|
47
|
+
<stringProp name="filename"/>
|
48
|
+
</ResultCollector>)
|
49
|
+
EOS
|
50
|
+
update params
|
51
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def smime_assertion(params={}, &block)
|
4
|
+
node = JmeterRuby::SmimeAssertion.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SmimeAssertion
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SmimeAssertion' : (params[:name] || 'SmimeAssertion')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<SMIMEAssertion guiclass="SMIMEAssertionGui" testclass="SMIMEAssertion" testname="#{testname}" enabled="true">
|
17
|
+
<boolProp name="SMIMEAssert.verifySignature">false</boolProp>
|
18
|
+
<boolProp name="SMIMEAssert.notSigned">false</boolProp>
|
19
|
+
<stringProp name="SMIMEAssert.issuerDn"/>
|
20
|
+
<stringProp name="SMIMEAssert.signerDn"/>
|
21
|
+
<stringProp name="SMIMEAssert.signerSerial"/>
|
22
|
+
<stringProp name="SMIMEAssert.signerEmail"/>
|
23
|
+
<stringProp name="SMIMEAssert.signerCertFile"/>
|
24
|
+
<boolProp name="SMIMEAssert.signerNoCheck">false</boolProp>
|
25
|
+
<boolProp name="SMIMEAssert.signerCheckConstraints">false</boolProp>
|
26
|
+
<boolProp name="SMIMEAssert.signerCheckByFile">false</boolProp>
|
27
|
+
<stringProp name="SMIMEAssert.messagePosition"/>
|
28
|
+
</SMIMEAssertion>)
|
29
|
+
EOS
|
30
|
+
update params
|
31
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def smtp_sampler(params={}, &block)
|
4
|
+
node = JmeterRuby::SmtpSampler.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SmtpSampler
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SmtpSampler' : (params[:name] || 'SmtpSampler')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<SmtpSampler guiclass="SmtpSamplerGui" testclass="SmtpSampler" testname="#{testname}" enabled="true">
|
17
|
+
<stringProp name="SMTPSampler.server"/>
|
18
|
+
<stringProp name="SMTPSampler.serverPort"/>
|
19
|
+
<stringProp name="SMTPSampler.mailFrom"/>
|
20
|
+
<stringProp name="SMTPSampler.replyTo"/>
|
21
|
+
<stringProp name="SMTPSampler.receiverTo"/>
|
22
|
+
<stringProp name="SMTPSampler.receiverCC"/>
|
23
|
+
<stringProp name="SMTPSampler.receiverBCC"/>
|
24
|
+
<stringProp name="SMTPSampler.subject"/>
|
25
|
+
<stringProp name="SMTPSampler.suppressSubject">false</stringProp>
|
26
|
+
<stringProp name="SMTPSampler.include_timestamp">false</stringProp>
|
27
|
+
<stringProp name="SMTPSampler.message"/>
|
28
|
+
<stringProp name="SMTPSampler.plainBody">false</stringProp>
|
29
|
+
<stringProp name="SMTPSampler.attachFile"/>
|
30
|
+
<stringProp name="SMTPSampler.useSSL">false</stringProp>
|
31
|
+
<stringProp name="SMTPSampler.useStartTLS">false</stringProp>
|
32
|
+
<stringProp name="SMTPSampler.trustAllCerts">false</stringProp>
|
33
|
+
<stringProp name="SMTPSampler.enforceStartTLS">false</stringProp>
|
34
|
+
<stringProp name="SMTPSampler.useLocalTrustStore">false</stringProp>
|
35
|
+
<stringProp name="SMTPSampler.trustStoreToUse"/>
|
36
|
+
<boolProp name="SMTPSampler.use_eml">false</boolProp>
|
37
|
+
<stringProp name="SMTPSampler.emlMessageToSend"/>
|
38
|
+
<stringProp name="SMTPSampler.useAuth">false</stringProp>
|
39
|
+
<stringProp name="SMTPSampler.password"/>
|
40
|
+
<stringProp name="SMTPSampler.username"/>
|
41
|
+
<stringProp name="SMTPSampler.messageSizeStatistics">false</stringProp>
|
42
|
+
<stringProp name="SMTPSampler.enableDebug">false</stringProp>
|
43
|
+
<collectionProp name="SMTPSampler.headerFields"/>
|
44
|
+
</SmtpSampler>)
|
45
|
+
EOS
|
46
|
+
update params
|
47
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def soapxmlrpc_request(params={}, &block)
|
4
|
+
node = JmeterRuby::SoapxmlrpcRequest.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SoapxmlrpcRequest
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SoapxmlrpcRequest' : (params[:name] || 'SoapxmlrpcRequest')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" testname="#{testname}" enabled="true">
|
17
|
+
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
|
18
|
+
<collectionProp name="Arguments.arguments"/>
|
19
|
+
</elementProp>
|
20
|
+
<stringProp name="SoapSampler.URL_DATA"/>
|
21
|
+
<stringProp name="HTTPSamper.xml_data"/>
|
22
|
+
<stringProp name="SoapSampler.xml_data_file"/>
|
23
|
+
<stringProp name="SoapSampler.SOAP_ACTION"/>
|
24
|
+
<stringProp name="SoapSampler.SEND_SOAP_ACTION">true</stringProp>
|
25
|
+
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
|
26
|
+
</SoapSampler>)
|
27
|
+
EOS
|
28
|
+
update params
|
29
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def spline_visualizer(params={}, &block)
|
4
|
+
node = JmeterRuby::SplineVisualizer.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SplineVisualizer
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SplineVisualizer' : (params[:name] || 'SplineVisualizer')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<ResultCollector guiclass="SplineVisualizer" testclass="ResultCollector" testname="#{testname}" enabled="true">
|
17
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
18
|
+
<objProp>
|
19
|
+
<name>saveConfig</name>
|
20
|
+
<value class="SampleSaveConfiguration">
|
21
|
+
<time>true</time>
|
22
|
+
<latency>true</latency>
|
23
|
+
<timestamp>true</timestamp>
|
24
|
+
<success>true</success>
|
25
|
+
<label>true</label>
|
26
|
+
<code>true</code>
|
27
|
+
<message>false</message>
|
28
|
+
<threadName>true</threadName>
|
29
|
+
<dataType>false</dataType>
|
30
|
+
<encoding>false</encoding>
|
31
|
+
<assertions>false</assertions>
|
32
|
+
<subresults>false</subresults>
|
33
|
+
<responseData>false</responseData>
|
34
|
+
<samplerData>false</samplerData>
|
35
|
+
<xml>false</xml>
|
36
|
+
<fieldNames>false</fieldNames>
|
37
|
+
<responseHeaders>false</responseHeaders>
|
38
|
+
<requestHeaders>false</requestHeaders>
|
39
|
+
<responseDataOnError>false</responseDataOnError>
|
40
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
41
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
42
|
+
<bytes>true</bytes>
|
43
|
+
<threadCounts>true</threadCounts>
|
44
|
+
<sampleCount>true</sampleCount>
|
45
|
+
</value>
|
46
|
+
</objProp>
|
47
|
+
<stringProp name="filename"/>
|
48
|
+
</ResultCollector>)
|
49
|
+
EOS
|
50
|
+
update params
|
51
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def summary_report(params={}, &block)
|
4
|
+
node = JmeterRuby::SummaryReport.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SummaryReport
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SummaryReport' : (params[:name] || 'SummaryReport')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="#{testname}" enabled="true">
|
17
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
18
|
+
<objProp>
|
19
|
+
<name>saveConfig</name>
|
20
|
+
<value class="SampleSaveConfiguration">
|
21
|
+
<time>true</time>
|
22
|
+
<latency>true</latency>
|
23
|
+
<timestamp>true</timestamp>
|
24
|
+
<success>true</success>
|
25
|
+
<label>true</label>
|
26
|
+
<code>true</code>
|
27
|
+
<message>false</message>
|
28
|
+
<threadName>true</threadName>
|
29
|
+
<dataType>false</dataType>
|
30
|
+
<encoding>false</encoding>
|
31
|
+
<assertions>false</assertions>
|
32
|
+
<subresults>false</subresults>
|
33
|
+
<responseData>false</responseData>
|
34
|
+
<samplerData>false</samplerData>
|
35
|
+
<xml>false</xml>
|
36
|
+
<fieldNames>false</fieldNames>
|
37
|
+
<responseHeaders>false</responseHeaders>
|
38
|
+
<requestHeaders>false</requestHeaders>
|
39
|
+
<responseDataOnError>false</responseDataOnError>
|
40
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
41
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
42
|
+
<bytes>true</bytes>
|
43
|
+
<threadCounts>true</threadCounts>
|
44
|
+
<sampleCount>true</sampleCount>
|
45
|
+
</value>
|
46
|
+
</objProp>
|
47
|
+
<stringProp name="filename"/>
|
48
|
+
</ResultCollector>)
|
49
|
+
EOS
|
50
|
+
update params
|
51
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def switch_controller(params={}, &block)
|
4
|
+
node = JmeterRuby::SwitchController.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SwitchController
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SwitchController' : (params[:name] || 'SwitchController')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<SwitchController guiclass="SwitchControllerGui" testclass="SwitchController" testname="#{testname}" enabled="true">
|
17
|
+
<stringProp name="SwitchController.value"/>
|
18
|
+
</SwitchController>)
|
19
|
+
EOS
|
20
|
+
update params
|
21
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def synchronizing_timer(params={}, &block)
|
4
|
+
node = JmeterRuby::SynchronizingTimer.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SynchronizingTimer
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'SynchronizingTimer' : (params[:name] || 'SynchronizingTimer')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<SyncTimer guiclass="TestBeanGUI" testclass="SyncTimer" testname="#{testname}" enabled="true">
|
17
|
+
<intProp name="groupSize">0</intProp>
|
18
|
+
<longProp name="timeoutInMs">0</longProp>
|
19
|
+
</SyncTimer>)
|
20
|
+
EOS
|
21
|
+
update params
|
22
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def tcp_sampler(params={}, &block)
|
4
|
+
node = JmeterRuby::TcpSampler.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class TcpSampler
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'TcpSampler' : (params[:name] || 'TcpSampler')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<TCPSampler guiclass="TCPSamplerGui" testclass="TCPSampler" testname="#{testname}" enabled="true">
|
17
|
+
<stringProp name="TCPSampler.server"/>
|
18
|
+
<boolProp name="TCPSampler.reUseConnection">true</boolProp>
|
19
|
+
<stringProp name="TCPSampler.port"/>
|
20
|
+
<boolProp name="TCPSampler.nodelay">false</boolProp>
|
21
|
+
<stringProp name="TCPSampler.timeout"/>
|
22
|
+
<stringProp name="TCPSampler.request"/>
|
23
|
+
<boolProp name="TCPSampler.closeConnection">false</boolProp>
|
24
|
+
<stringProp name="ConfigTestElement.username"/>
|
25
|
+
<stringProp name="ConfigTestElement.password"/>
|
26
|
+
</TCPSampler>)
|
27
|
+
EOS
|
28
|
+
update params
|
29
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def tcp_sampler_config(params={}, &block)
|
4
|
+
node = JmeterRuby::TcpSamplerConfig.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class TcpSamplerConfig
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'TcpSamplerConfig' : (params[:name] || 'TcpSamplerConfig')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<ConfigTestElement guiclass="TCPConfigGui" testclass="ConfigTestElement" testname="#{testname}" enabled="true">
|
17
|
+
<stringProp name="TCPSampler.server"/>
|
18
|
+
<boolProp name="TCPSampler.reUseConnection">true</boolProp>
|
19
|
+
<stringProp name="TCPSampler.port"/>
|
20
|
+
<boolProp name="TCPSampler.nodelay">false</boolProp>
|
21
|
+
<stringProp name="TCPSampler.timeout"/>
|
22
|
+
<stringProp name="TCPSampler.request"/>
|
23
|
+
<boolProp name="TCPSampler.closeConnection">false</boolProp>
|
24
|
+
</ConfigTestElement>)
|
25
|
+
EOS
|
26
|
+
update params
|
27
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def test_action(params={}, &block)
|
4
|
+
node = JmeterRuby::TestAction.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class TestAction
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'TestAction' : (params[:name] || 'TestAction')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<TestAction guiclass="TestActionGui" testclass="TestAction" testname="#{testname}" enabled="true">
|
17
|
+
<intProp name="ActionProcessor.action">1</intProp>
|
18
|
+
<intProp name="ActionProcessor.target">0</intProp>
|
19
|
+
<stringProp name="ActionProcessor.duration"/>
|
20
|
+
</TestAction>)
|
21
|
+
EOS
|
22
|
+
update params
|
23
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def test_fragment(params={}, &block)
|
4
|
+
node = JmeterRuby::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="true"/>)
|
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
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def test_plan(params={}, &block)
|
4
|
+
node = JmeterRuby::TestPlan.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class TestPlan
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'TestPlan' : (params[:name] || 'TestPlan')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="#{testname}" enabled="true">
|
17
|
+
<stringProp name="TestPlan.comments"/>
|
18
|
+
<boolProp name="TestPlan.functional_mode">false</boolProp>
|
19
|
+
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
|
20
|
+
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="#{testname}" enabled="true">
|
21
|
+
<collectionProp name="Arguments.arguments"/>
|
22
|
+
</elementProp>
|
23
|
+
<stringProp name="TestPlan.user_define_classpath"/>
|
24
|
+
</TestPlan>)
|
25
|
+
EOS
|
26
|
+
update params
|
27
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def thread_group(params={}, &block)
|
4
|
+
node = JmeterRuby::ThreadGroup.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class ThreadGroup
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'ThreadGroup' : (params[:name] || 'ThreadGroup')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="#{testname}" enabled="true">
|
17
|
+
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
|
18
|
+
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="#{testname}" enabled="true">
|
19
|
+
<boolProp name="LoopController.continue_forever">false</boolProp>
|
20
|
+
<intProp name="LoopController.loops">-1</intProp>
|
21
|
+
</elementProp>
|
22
|
+
<stringProp name="ThreadGroup.num_threads">1</stringProp>
|
23
|
+
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
|
24
|
+
<longProp name="ThreadGroup.start_time">1366415241000</longProp>
|
25
|
+
<longProp name="ThreadGroup.end_time">1366415241000</longProp>
|
26
|
+
<boolProp name="ThreadGroup.scheduler">true</boolProp>
|
27
|
+
<stringProp name="ThreadGroup.duration"/>
|
28
|
+
<stringProp name="ThreadGroup.delay"/>
|
29
|
+
<boolProp name="ThreadGroup.delayedStart">true</boolProp>
|
30
|
+
</ThreadGroup>)
|
31
|
+
EOS
|
32
|
+
update params
|
33
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
class DSL
|
3
|
+
def throughput_controller(params={}, &block)
|
4
|
+
node = JmeterRuby::ThroughputController.new(params)
|
5
|
+
attach_node(node, &block)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class ThroughputController
|
10
|
+
attr_accessor :doc
|
11
|
+
include Helper
|
12
|
+
|
13
|
+
def initialize(params={})
|
14
|
+
testname = params.kind_of?(Array) ? 'ThroughputController' : (params[:name] || 'ThroughputController')
|
15
|
+
@doc = Nokogiri::XML(<<-EOS.strip_heredoc)
|
16
|
+
<ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="#{testname}" enabled="true">
|
17
|
+
<intProp name="ThroughputController.style">0</intProp>
|
18
|
+
<boolProp name="ThroughputController.perThread">false</boolProp>
|
19
|
+
<intProp name="ThroughputController.maxThroughput">1</intProp>
|
20
|
+
<FloatProperty>
|
21
|
+
<name>ThroughputController.percentThroughput</name>
|
22
|
+
<value>100.0</value>
|
23
|
+
<savedValue>0.0</savedValue>
|
24
|
+
</FloatProperty>
|
25
|
+
</ThroughputController>)
|
26
|
+
EOS
|
27
|
+
update params
|
28
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|