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,57 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class ActiveThreadsOverTime
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'ActiveThreadsOverTime' : (params[:name] || 'ActiveThreadsOverTime')
|
8
|
+
@doc = Nokogiri::XML(<<-XML.strip_heredoc)
|
9
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ThreadsStateOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{testname}" enabled="true">
|
10
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
11
|
+
<objProp>
|
12
|
+
<name>saveConfig</name>
|
13
|
+
<value class="SampleSaveConfiguration">
|
14
|
+
<time>true</time>
|
15
|
+
<latency>true</latency>
|
16
|
+
<timestamp>true</timestamp>
|
17
|
+
<success>true</success>
|
18
|
+
<label>true</label>
|
19
|
+
<code>true</code>
|
20
|
+
<message>false</message>
|
21
|
+
<threadName>true</threadName>
|
22
|
+
<dataType>false</dataType>
|
23
|
+
<encoding>false</encoding>
|
24
|
+
<assertions>false</assertions>
|
25
|
+
<subresults>false</subresults>
|
26
|
+
<responseData>false</responseData>
|
27
|
+
<samplerData>false</samplerData>
|
28
|
+
<xml>false</xml>
|
29
|
+
<fieldNames>false</fieldNames>
|
30
|
+
<responseHeaders>false</responseHeaders>
|
31
|
+
<requestHeaders>false</requestHeaders>
|
32
|
+
<responseDataOnError>false</responseDataOnError>
|
33
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
34
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
35
|
+
<bytes>true</bytes>
|
36
|
+
<threadCounts>true</threadCounts>
|
37
|
+
<sampleCount>true</sampleCount>
|
38
|
+
</value>
|
39
|
+
</objProp>
|
40
|
+
<stringProp name="filename"></stringProp>
|
41
|
+
<longProp name="interval_grouping">500</longProp>
|
42
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
43
|
+
<stringProp name="include_sample_labels"></stringProp>
|
44
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
45
|
+
<stringProp name="start_offset"></stringProp>
|
46
|
+
<stringProp name="end_offset"></stringProp>
|
47
|
+
<boolProp name="include_checkbox_state">false</boolProp>
|
48
|
+
<boolProp name="exclude_checkbox_state">false</boolProp>
|
49
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
50
|
+
XML
|
51
|
+
update params
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class CompositeGraph
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'CompositeGraph' : (params[:name] || 'CompositeGraph')
|
8
|
+
graphNodes = params.collect { |g| "<stringProp name=\"\">#{g[:graph]}</stringProp>"}
|
9
|
+
metricNodes = params.collect { |m| "<stringProp name=\"\">#{m[:metric]}</stringProp>"}
|
10
|
+
|
11
|
+
composite_collections = Nokogiri::XML(<<-XML.strip_heredoc)
|
12
|
+
<collectionProp name="COMPOSITE_CFG">
|
13
|
+
<collectionProp name="">
|
14
|
+
#{graphNodes.join "\n"}
|
15
|
+
</collectionProp>
|
16
|
+
<collectionProp name="">
|
17
|
+
#{metricNodes.join "\n"}
|
18
|
+
</collectionProp>
|
19
|
+
</collectionProp>
|
20
|
+
XML
|
21
|
+
|
22
|
+
@doc = Nokogiri::XML(<<-XML.strip_heredoc)
|
23
|
+
<kg.apc.jmeter.vizualizers.CompositeResultCollector guiclass="kg.apc.jmeter.vizualizers.CompositeGraphGui" testclass="kg.apc.jmeter.vizualizers.CompositeResultCollector" testname="#{testname}" enabled="true">
|
24
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
25
|
+
<objProp>
|
26
|
+
<name>saveConfig</name>
|
27
|
+
<value class="SampleSaveConfiguration">
|
28
|
+
<time>true</time>
|
29
|
+
<latency>true</latency>
|
30
|
+
<timestamp>true</timestamp>
|
31
|
+
<success>true</success>
|
32
|
+
<label>true</label>
|
33
|
+
<code>true</code>
|
34
|
+
<message>false</message>
|
35
|
+
<threadName>true</threadName>
|
36
|
+
<dataType>false</dataType>
|
37
|
+
<encoding>false</encoding>
|
38
|
+
<assertions>false</assertions>
|
39
|
+
<subresults>false</subresults>
|
40
|
+
<responseData>false</responseData>
|
41
|
+
<samplerData>false</samplerData>
|
42
|
+
<xml>false</xml>
|
43
|
+
<fieldNames>false</fieldNames>
|
44
|
+
<responseHeaders>false</responseHeaders>
|
45
|
+
<requestHeaders>false</requestHeaders>
|
46
|
+
<responseDataOnError>false</responseDataOnError>
|
47
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
48
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
49
|
+
<bytes>true</bytes>
|
50
|
+
<threadCounts>true</threadCounts>
|
51
|
+
<sampleCount>true</sampleCount>
|
52
|
+
</value>
|
53
|
+
</objProp>
|
54
|
+
<stringProp name="filename"></stringProp>
|
55
|
+
<longProp name="interval_grouping">500</longProp>
|
56
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
57
|
+
<stringProp name="include_sample_labels"></stringProp>
|
58
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
59
|
+
<stringProp name="start_offset"></stringProp>
|
60
|
+
<stringProp name="end_offset"></stringProp>
|
61
|
+
<boolProp name="include_checkbox_state">false</boolProp>
|
62
|
+
<boolProp name="exclude_checkbox_state">false</boolProp>
|
63
|
+
#{composite_collections.root.to_s}
|
64
|
+
</kg.apc.jmeter.vizualizers.CompositeResultCollector>
|
65
|
+
XML
|
66
|
+
update params
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class ConsoleStatusLogger
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'ConsoleStatusLogger' : (params[:name] || 'ConsoleStatusLogger')
|
8
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
9
|
+
<kg.apc.jmeter.reporters.ConsoleStatusLogger guiclass="kg.apc.jmeter.reporters.ConsoleStatusLoggerGui" testclass="kg.apc.jmeter.reporters.ConsoleStatusLogger" testname="#{testname}" enabled="true"/>
|
10
|
+
EOF
|
11
|
+
update params
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class DummySampler
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'DummySampler' : (params[:name] || 'DummySampler')
|
8
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
9
|
+
<kg.apc.jmeter.samplers.DummySampler guiclass="kg.apc.jmeter.samplers.DummySamplerGui" testclass="kg.apc.jmeter.samplers.DummySampler" testname="#{testname}" enabled="true">
|
10
|
+
<boolProp name="WAITING">true</boolProp>
|
11
|
+
<boolProp name="SUCCESFULL">true</boolProp>
|
12
|
+
<stringProp name="RESPONSE_CODE">200</stringProp>
|
13
|
+
<stringProp name="RESPONSE_MESSAGE">OK</stringProp>
|
14
|
+
<stringProp name="REQUEST_DATA"></stringProp>
|
15
|
+
<stringProp name="RESPONSE_DATA"></stringProp>
|
16
|
+
<stringProp name="RESPONSE_TIME">0</stringProp>
|
17
|
+
<stringProp name="LATENCY">0</stringProp>
|
18
|
+
</kg.apc.jmeter.samplers.DummySampler>
|
19
|
+
EOF
|
20
|
+
upcased_params = {}
|
21
|
+
params.each {|k,v| upcased_params[k.to_s.upcase] = v}
|
22
|
+
update upcased_params
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class JMXCollector
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
|
8
|
+
params[:name] ||= 'JMX Collector'
|
9
|
+
params[:jtl] ||= ''
|
10
|
+
params[:attribute_key] ||= ''
|
11
|
+
|
12
|
+
@doc = Nokogiri::XML(<<-XML.strip_heredoc)
|
13
|
+
<kg.apc.jmeter.jmxmon.JMXMonCollector guiclass="kg.apc.jmeter.vizualizers.JMXMonGui" testclass="kg.apc.jmeter.jmxmon.JMXMonCollector" testname="#{params[:name]}" enabled="true">
|
14
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
15
|
+
<objProp>
|
16
|
+
<name>saveConfig</name>
|
17
|
+
<value class="SampleSaveConfiguration">
|
18
|
+
<time>true</time>
|
19
|
+
<latency>true</latency>
|
20
|
+
<timestamp>true</timestamp>
|
21
|
+
<success>true</success>
|
22
|
+
<label>true</label>
|
23
|
+
<code>true</code>
|
24
|
+
<message>true</message>
|
25
|
+
<threadName>true</threadName>
|
26
|
+
<dataType>true</dataType>
|
27
|
+
<encoding>false</encoding>
|
28
|
+
<assertions>true</assertions>
|
29
|
+
<subresults>true</subresults>
|
30
|
+
<responseData>false</responseData>
|
31
|
+
<samplerData>false</samplerData>
|
32
|
+
<xml>false</xml>
|
33
|
+
<fieldNames>true</fieldNames>
|
34
|
+
<responseHeaders>false</responseHeaders>
|
35
|
+
<requestHeaders>false</requestHeaders>
|
36
|
+
<responseDataOnError>false</responseDataOnError>
|
37
|
+
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
|
38
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
39
|
+
<bytes>true</bytes>
|
40
|
+
<threadCounts>true</threadCounts>
|
41
|
+
<idleTime>true</idleTime>
|
42
|
+
</value>
|
43
|
+
</objProp>
|
44
|
+
<stringProp name="filename">#{params[:jtl]}</stringProp>
|
45
|
+
<longProp name="interval_grouping">1000</longProp
|
46
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
47
|
+
<stringProp name="include_sample_labels"></stringProp>
|
48
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
49
|
+
<stringProp name="start_offset"></stringProp>
|
50
|
+
<stringProp name="end_offset"></stringProp>
|
51
|
+
<boolProp name="include_checkbox_state">false</boolProp>
|
52
|
+
<boolProp name="exclude_checkbox_state">false</boolProp>
|
53
|
+
<collectionProp name="samplers">
|
54
|
+
<collectionProp name="311458936">
|
55
|
+
<stringProp name="label"></stringProp>
|
56
|
+
<stringProp name="service_endpoint">service:jmx:rmi:///jndi/rmi://#{params[:host]}:#{params[:port]}/jmxrmi</stringProp>
|
57
|
+
<stringProp name="username"></stringProp>
|
58
|
+
<stringProp name="password"></stringProp>
|
59
|
+
<stringProp name="object_name">#{params[:object_name]}</stringProp>
|
60
|
+
<stringProp name="attribute_name">#{params[:attribute_name]}</stringProp>
|
61
|
+
<stringProp name="attribute_key">#{params[:attribute_key]}</stringProp>
|
62
|
+
<stringProp name="delta">false</stringProp>
|
63
|
+
<stringProp name="retry">true</stringProp>
|
64
|
+
</collectionProp>
|
65
|
+
</collectionProp>
|
66
|
+
</kg.apc.jmeter.jmxmon.JMXMonCollector>
|
67
|
+
XML
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class JsonPathAssertion
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
8
|
+
<com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
|
9
|
+
<stringProp name="EXPECTED_VALUE"></stringProp>
|
10
|
+
<stringProp name="JSON_PATH"></stringProp>
|
11
|
+
<boolProp name="JSONVALIDATION">true</boolProp>
|
12
|
+
<boolProp name="INVERT">false</boolProp>
|
13
|
+
</com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
|
14
|
+
EOF
|
15
|
+
update params
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class JsonPathExtractor
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'XpathExtractor' : (params[:name] || 'XpathExtractor')
|
8
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
9
|
+
<com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
|
10
|
+
<stringProp name="VAR"></stringProp>
|
11
|
+
<stringProp name="JSONPATH"></stringProp>
|
12
|
+
</com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
|
13
|
+
EOF
|
14
|
+
update params
|
15
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class LatenciesOverTime
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'LatenciesOverTime' : (params[:name] || 'LatenciesOverTime')
|
8
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
9
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.LatenciesOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{testname}" enabled="#{enabled(params)}">
|
10
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
11
|
+
<objProp>
|
12
|
+
<name>saveConfig</name>
|
13
|
+
<value class="SampleSaveConfiguration">
|
14
|
+
<time>true</time>
|
15
|
+
<latency>true</latency>
|
16
|
+
<timestamp>true</timestamp>
|
17
|
+
<success>true</success>
|
18
|
+
<label>true</label>
|
19
|
+
<code>true</code>
|
20
|
+
<message>true</message>
|
21
|
+
<threadName>true</threadName>
|
22
|
+
<dataType>true</dataType>
|
23
|
+
<encoding>false</encoding>
|
24
|
+
<assertions>true</assertions>
|
25
|
+
<subresults>true</subresults>
|
26
|
+
<responseData>false</responseData>
|
27
|
+
<samplerData>false</samplerData>
|
28
|
+
<xml>true</xml>
|
29
|
+
<fieldNames>false</fieldNames>
|
30
|
+
<responseHeaders>false</responseHeaders>
|
31
|
+
<requestHeaders>false</requestHeaders>
|
32
|
+
<responseDataOnError>false</responseDataOnError>
|
33
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
34
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
35
|
+
<bytes>true</bytes>
|
36
|
+
</value>
|
37
|
+
</objProp>
|
38
|
+
<stringProp name="filename"></stringProp>
|
39
|
+
<longProp name="interval_grouping">500</longProp>
|
40
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
41
|
+
<stringProp name="include_sample_labels"></stringProp>
|
42
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
43
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
44
|
+
EOF
|
45
|
+
update params
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class LoadosophiaUploader
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(name="Loadosophia.org Uploader", params={})
|
7
|
+
params[:error_logging] ||= false;
|
8
|
+
params[:filename] ||= "";
|
9
|
+
params[:project] ||= "DEFAULT";
|
10
|
+
params[:uploadToken] ||= "Invalid Token";
|
11
|
+
params[:storeDir] ||= "/tmp";
|
12
|
+
params[:color] ||= "none";
|
13
|
+
params[:title] ||= "";
|
14
|
+
params[:useOnline] ||= false;
|
15
|
+
|
16
|
+
@doc = Nokogiri::XML(<<-XML.strip_heredoc)
|
17
|
+
<kg.apc.jmeter.reporters.LoadosophiaUploader guiclass="kg.apc.jmeter.reporters.LoadosophiaUploaderGui" testclass="kg.apc.jmeter.reporters.LoadosophiaUploader" testname="#{name}" enabled="#{enabled(params)}">
|
18
|
+
<boolProp name="ResultCollector.error_logging">#{params[:error_logging].to_s}</boolProp>
|
19
|
+
<objProp>
|
20
|
+
<name>saveConfig</name>
|
21
|
+
<value class="SampleSaveConfiguration">
|
22
|
+
<time>true</time>
|
23
|
+
<latency>true</latency>
|
24
|
+
<timestamp>true</timestamp>
|
25
|
+
<success>true</success>
|
26
|
+
<label>true</label>
|
27
|
+
<code>true</code>
|
28
|
+
<message>false</message>
|
29
|
+
<threadName>true</threadName>
|
30
|
+
<dataType>false</dataType>
|
31
|
+
<encoding>false</encoding>
|
32
|
+
<assertions>false</assertions>
|
33
|
+
<subresults>false</subresults>
|
34
|
+
<responseData>false</responseData>
|
35
|
+
<samplerData>false</samplerData>
|
36
|
+
<xml>false</xml>
|
37
|
+
<fieldNames>false</fieldNames>
|
38
|
+
<responseHeaders>false</responseHeaders>
|
39
|
+
<requestHeaders>false</requestHeaders>
|
40
|
+
<responseDataOnError>false</responseDataOnError>
|
41
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
42
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
43
|
+
<bytes>true</bytes>
|
44
|
+
<threadCounts>true</threadCounts>
|
45
|
+
<sampleCount>true</sampleCount>
|
46
|
+
</value>
|
47
|
+
</objProp>
|
48
|
+
<stringProp name="filename">#{params[:filename]}</stringProp>
|
49
|
+
<stringProp name="project">#{params[:project]}</stringProp>
|
50
|
+
<stringProp name="uploadToken">#{params[:uploadToken]}</stringProp>
|
51
|
+
<stringProp name="storeDir">#{params[:storeDir]}</stringProp>
|
52
|
+
<stringProp name="color">#{params[:color]}</stringProp>
|
53
|
+
<stringProp name="title">#{params[:title]}</stringProp>
|
54
|
+
<boolProp name="useOnline">#{params[:useOnline].to_s}</boolProp>
|
55
|
+
</kg.apc.jmeter.reporters.LoadosophiaUploader>
|
56
|
+
XML
|
57
|
+
|
58
|
+
#update params
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class PerfmonCollector
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
|
7
|
+
def initialize(params = {})
|
8
|
+
@doc = Nokogiri::XML(<<-XML.strip_heredoc)
|
9
|
+
<kg.apc.jmeter.perfmon.PerfMonCollector guiclass="kg.apc.jmeter.vizualizers.PerfMonGui" testclass="kg.apc.jmeter.perfmon.PerfMonCollector" testname="#{params[:name] || 'PerfmonCollector'}" enabled="true">
|
10
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
11
|
+
<objProp>
|
12
|
+
<name>saveConfig</name>
|
13
|
+
<value class="SampleSaveConfiguration">
|
14
|
+
<time>true</time>
|
15
|
+
<latency>true</latency>
|
16
|
+
<timestamp>true</timestamp>
|
17
|
+
<success>true</success>
|
18
|
+
<label>true</label>
|
19
|
+
<code>true</code>
|
20
|
+
<message>false</message>
|
21
|
+
<threadName>true</threadName>
|
22
|
+
<dataType>false</dataType>
|
23
|
+
<encoding>false</encoding>
|
24
|
+
<assertions>false</assertions>
|
25
|
+
<subresults>false</subresults>
|
26
|
+
<responseData>false</responseData>
|
27
|
+
<samplerData>false</samplerData>
|
28
|
+
<xml>#{(params[:xml] || false).to_s}</xml>
|
29
|
+
<fieldNames>false</fieldNames>
|
30
|
+
<responseHeaders>false</responseHeaders>
|
31
|
+
<requestHeaders>false</requestHeaders>
|
32
|
+
<responseDataOnError>false</responseDataOnError>
|
33
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
34
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
35
|
+
<bytes>true</bytes>
|
36
|
+
<threadCounts>true</threadCounts>
|
37
|
+
<sampleCount>true</sampleCount>
|
38
|
+
</value>
|
39
|
+
</objProp>
|
40
|
+
<stringProp name="filename">#{params[:filename] || 'perfmon.jtl'}</stringProp>
|
41
|
+
<longProp name="interval_grouping">1000</longProp>
|
42
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
43
|
+
<stringProp name="include_sample_labels"></stringProp>
|
44
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
45
|
+
<stringProp name="start_offset"></stringProp>
|
46
|
+
<stringProp name="end_offset"></stringProp>
|
47
|
+
<boolProp name="include_checkbox_state">false</boolProp>
|
48
|
+
<boolProp name="exclude_checkbox_state">false</boolProp>
|
49
|
+
#{metric_connections(params).root.to_s}
|
50
|
+
</kg.apc.jmeter.perfmon.PerfMonCollector>
|
51
|
+
XML
|
52
|
+
update params
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def metric_connections(params)
|
58
|
+
Nokogiri::XML(<<-XML.strip_heredoc)
|
59
|
+
<collectionProp name="metricConnections">
|
60
|
+
#{metric_nodes(params[:nodes]).join "\n"}
|
61
|
+
</collectionProp>
|
62
|
+
XML
|
63
|
+
end
|
64
|
+
|
65
|
+
def metric_nodes(nodes)
|
66
|
+
nodes.collect do |node|
|
67
|
+
%(
|
68
|
+
<collectionProp name="">
|
69
|
+
<stringProp name="">#{node[:server]}</stringProp>
|
70
|
+
<stringProp name="">#{node[:port]}</stringProp>
|
71
|
+
<stringProp name="">#{node[:metric]}</stringProp>
|
72
|
+
<stringProp name="">#{node[:parameters]}</stringProp>
|
73
|
+
</collectionProp>
|
74
|
+
)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class RedisDataSet
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'Redis Data Set Config' : (params[:name] || 'Redis Data Set Config')
|
8
|
+
params[:getMode] ||= "1" unless params[:remove] == true
|
9
|
+
@doc = Nokogiri::XML(<<-XML.strip_heredoc)
|
10
|
+
<kg.apc.jmeter.config.redis.RedisDataSet guiclass="TestBeanGUI" testclass="kg.apc.jmeter.config.redis.RedisDataSet" testname="#{testname}" enabled="true">
|
11
|
+
<stringProp name="database">0</stringProp>
|
12
|
+
<stringProp name="delimiter">,</stringProp>
|
13
|
+
<intProp name="getMode">0</intProp>
|
14
|
+
<stringProp name="host"></stringProp
|
15
|
+
<intProp name="maxActive">20</intProp>
|
16
|
+
<intProp name="maxIdle">10</intProp>
|
17
|
+
<longProp name="maxWait">30000</longProp>
|
18
|
+
<longProp name="minEvictableIdleTimeMillis">60000</longProp>
|
19
|
+
<intProp name="minIdle">0</intProp>
|
20
|
+
<intProp name="numTestsPerEvictionRun">0</intProp>
|
21
|
+
<stringProp name="password"></stringProp>
|
22
|
+
<stringProp name="port">6379</stringProp>
|
23
|
+
<stringProp name="redisKey"></stringProp>
|
24
|
+
<longProp name="softMinEvictableIdleTimeMillis">60000</longProp>
|
25
|
+
<boolProp name="testOnBorrow">false</boolProp>
|
26
|
+
<boolProp name="testOnReturn">false</boolProp>
|
27
|
+
<boolProp name="testWhileIdle">false</boolProp>
|
28
|
+
<longProp name="timeBetweenEvictionRunsMillis">30000</longProp>
|
29
|
+
<stringProp name="timeout">2000</stringProp>
|
30
|
+
<stringProp name="variableNames"></stringProp>
|
31
|
+
<intProp name="whenExhaustedAction">2</intProp>
|
32
|
+
</kg.apc.jmeter.config.redis.RedisDataSet>
|
33
|
+
XML
|
34
|
+
update params
|
35
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class ResponseCodesPerSecond
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'ResponseCodesPerSecond' : (params[:name] || 'ResponseCodesPerSecond')
|
8
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
9
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseCodesPerSecondGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{testname}" enabled="#{enabled(params)}">
|
10
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
11
|
+
<objProp>
|
12
|
+
<name>saveConfig</name>
|
13
|
+
<value class="SampleSaveConfiguration">
|
14
|
+
<time>true</time>
|
15
|
+
<latency>true</latency>
|
16
|
+
<timestamp>true</timestamp>
|
17
|
+
<success>true</success>
|
18
|
+
<label>true</label>
|
19
|
+
<code>true</code>
|
20
|
+
<message>true</message>
|
21
|
+
<threadName>true</threadName>
|
22
|
+
<dataType>true</dataType>
|
23
|
+
<encoding>false</encoding>
|
24
|
+
<assertions>true</assertions>
|
25
|
+
<subresults>true</subresults>
|
26
|
+
<responseData>false</responseData>
|
27
|
+
<samplerData>false</samplerData>
|
28
|
+
<xml>true</xml>
|
29
|
+
<fieldNames>false</fieldNames>
|
30
|
+
<responseHeaders>false</responseHeaders>
|
31
|
+
<requestHeaders>false</requestHeaders>
|
32
|
+
<responseDataOnError>false</responseDataOnError>
|
33
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
34
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
35
|
+
<bytes>true</bytes>
|
36
|
+
</value>
|
37
|
+
</objProp>
|
38
|
+
<stringProp name="filename"></stringProp>
|
39
|
+
<longProp name="interval_grouping">1000</longProp>
|
40
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
41
|
+
<stringProp name="include_sample_labels"></stringProp>
|
42
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
43
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
44
|
+
EOF
|
45
|
+
update params
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module JmeterRuby
|
2
|
+
module Plugins
|
3
|
+
class ResponseTimesDistribution
|
4
|
+
attr_accessor :doc
|
5
|
+
include Helper
|
6
|
+
def initialize(params={})
|
7
|
+
testname = params.kind_of?(Array) ? 'ResponseTimesDistribution' : (params[:name] || 'ResponseTimesDistribution')
|
8
|
+
@doc = Nokogiri::XML(<<-EOF.strip_heredoc)
|
9
|
+
<kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesDistributionGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{testname}" enabled="#{enabled(params)}">
|
10
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
11
|
+
<objProp>
|
12
|
+
<name>saveConfig</name>
|
13
|
+
<value class="SampleSaveConfiguration">
|
14
|
+
<time>true</time>
|
15
|
+
<latency>true</latency>
|
16
|
+
<timestamp>true</timestamp>
|
17
|
+
<success>true</success>
|
18
|
+
<label>true</label>
|
19
|
+
<code>true</code>
|
20
|
+
<message>true</message>
|
21
|
+
<threadName>true</threadName>
|
22
|
+
<dataType>true</dataType>
|
23
|
+
<encoding>false</encoding>
|
24
|
+
<assertions>true</assertions>
|
25
|
+
<subresults>true</subresults>
|
26
|
+
<responseData>false</responseData>
|
27
|
+
<samplerData>false</samplerData>
|
28
|
+
<xml>true</xml>
|
29
|
+
<fieldNames>false</fieldNames>
|
30
|
+
<responseHeaders>false</responseHeaders>
|
31
|
+
<requestHeaders>false</requestHeaders>
|
32
|
+
<responseDataOnError>false</responseDataOnError>
|
33
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
34
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
35
|
+
<bytes>true</bytes>
|
36
|
+
</value>
|
37
|
+
</objProp>
|
38
|
+
<stringProp name="filename"></stringProp>
|
39
|
+
<longProp name="interval_grouping">100</longProp>
|
40
|
+
<boolProp name="graph_aggregated">false</boolProp>
|
41
|
+
<stringProp name="include_sample_labels"></stringProp>
|
42
|
+
<stringProp name="exclude_sample_labels"></stringProp>
|
43
|
+
</kg.apc.jmeter.vizualizers.CorrectedResultCollector>
|
44
|
+
EOF
|
45
|
+
update params
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|