jmeter_perf 1.0.9
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/.rspec +3 -0
- data/.rubocop.yml +19 -0
- data/.standard.yml +4 -0
- data/CHANGELOG.md +18 -0
- data/DSL.md +235 -0
- data/README.md +24 -0
- data/Rakefile +12 -0
- data/example/Gemfile +39 -0
- data/example/Gemfile.lock +232 -0
- data/example/README.md +3 -0
- data/example/Rakefile +6 -0
- data/example/app/controllers/application_controller.rb +2 -0
- data/example/app/controllers/test_controller.rb +15 -0
- data/example/bin/bundle +109 -0
- data/example/bin/docker-entrypoint +8 -0
- data/example/bin/rails +4 -0
- data/example/bin/rake +4 -0
- data/example/bin/setup +33 -0
- data/example/config/application.rb +44 -0
- data/example/config/boot.rb +3 -0
- data/example/config/credentials.yml.enc +1 -0
- data/example/config/database.yml +25 -0
- data/example/config/environment.rb +5 -0
- data/example/config/environments/development.rb +64 -0
- data/example/config/environments/production.rb +82 -0
- data/example/config/environments/test.rb +61 -0
- data/example/config/initializers/cors.rb +16 -0
- data/example/config/initializers/filter_parameter_logging.rb +8 -0
- data/example/config/initializers/inflections.rb +16 -0
- data/example/config/locales/en.yml +31 -0
- data/example/config/puma.rb +35 -0
- data/example/config/routes.rb +5 -0
- data/example/config.ru +7 -0
- data/example/fast.log +49 -0
- data/example/jmeter.log +28 -0
- data/example/lib/tasks/test.rake +40 -0
- data/example/log/.keep +0 -0
- data/example/public/robots.txt +1 -0
- data/example/random.log +49 -0
- data/example/slow.log +49 -0
- data/example/vendor/.keep +0 -0
- data/lib/Rakefile +4 -0
- data/lib/jmeter_perf/dsl/access_log_sampler.rb +38 -0
- data/lib/jmeter_perf/dsl/aggregate_graph.rb +61 -0
- data/lib/jmeter_perf/dsl/aggregate_report.rb +61 -0
- data/lib/jmeter_perf/dsl/ajp13_sampler.rb +47 -0
- data/lib/jmeter_perf/dsl/assertion_results.rb +61 -0
- data/lib/jmeter_perf/dsl/bean_shell_assertion.rb +34 -0
- data/lib/jmeter_perf/dsl/bean_shell_listener.rb +34 -0
- data/lib/jmeter_perf/dsl/bean_shell_postprocessor.rb +34 -0
- data/lib/jmeter_perf/dsl/bean_shell_preprocessor.rb +34 -0
- data/lib/jmeter_perf/dsl/bean_shell_sampler.rb +34 -0
- data/lib/jmeter_perf/dsl/bean_shell_timer.rb +34 -0
- data/lib/jmeter_perf/dsl/bsf_assertion.rb +34 -0
- data/lib/jmeter_perf/dsl/bsf_listener.rb +34 -0
- data/lib/jmeter_perf/dsl/bsf_postprocessor.rb +34 -0
- data/lib/jmeter_perf/dsl/bsf_preprocessor.rb +34 -0
- data/lib/jmeter_perf/dsl/bsf_sampler.rb +34 -0
- data/lib/jmeter_perf/dsl/bsf_timer.rb +34 -0
- data/lib/jmeter_perf/dsl/compare_assertion.rb +33 -0
- data/lib/jmeter_perf/dsl/comparison_assertion_visualizer.rb +61 -0
- data/lib/jmeter_perf/dsl/constant_throughput_timer.rb +32 -0
- data/lib/jmeter_perf/dsl/constant_timer.rb +31 -0
- data/lib/jmeter_perf/dsl/counter.rb +37 -0
- data/lib/jmeter_perf/dsl/css_jquery_extractor.rb +37 -0
- data/lib/jmeter_perf/dsl/csv_data_set_config.rb +39 -0
- data/lib/jmeter_perf/dsl/debug_postprocessor.rb +34 -0
- data/lib/jmeter_perf/dsl/debug_sampler.rb +33 -0
- data/lib/jmeter_perf/dsl/distribution_graphalpha.rb +61 -0
- data/lib/jmeter_perf/dsl/duration_assertion.rb +31 -0
- data/lib/jmeter_perf/dsl/for_each_controller.rb +33 -0
- data/lib/jmeter_perf/dsl/ftp_request.rb +40 -0
- data/lib/jmeter_perf/dsl/ftp_request_defaults.rb +38 -0
- data/lib/jmeter_perf/dsl/gaussian_random_timer.rb +32 -0
- data/lib/jmeter_perf/dsl/generate_summary_results.rb +29 -0
- data/lib/jmeter_perf/dsl/graph_results.rb +61 -0
- data/lib/jmeter_perf/dsl/html_assertion.rb +36 -0
- data/lib/jmeter_perf/dsl/html_link_parser.rb +29 -0
- data/lib/jmeter_perf/dsl/html_parameter_mask.rb +38 -0
- data/lib/jmeter_perf/dsl/http_authorization_manager.rb +39 -0
- data/lib/jmeter_perf/dsl/http_cache_manager.rb +32 -0
- data/lib/jmeter_perf/dsl/http_cookie_manager.rb +34 -0
- data/lib/jmeter_perf/dsl/http_header_manager.rb +36 -0
- data/lib/jmeter_perf/dsl/http_request.rb +47 -0
- data/lib/jmeter_perf/dsl/http_request_defaults.rb +53 -0
- data/lib/jmeter_perf/dsl/http_url_rewriting_modifier.rb +36 -0
- data/lib/jmeter_perf/dsl/if_controller.rb +33 -0
- data/lib/jmeter_perf/dsl/include_controller.rb +31 -0
- data/lib/jmeter_perf/dsl/j_unit_request.rb +43 -0
- data/lib/jmeter_perf/dsl/java_request.rb +75 -0
- data/lib/jmeter_perf/dsl/java_request_defaults.rb +75 -0
- data/lib/jmeter_perf/dsl/jdbc_connection_configuration.rb +43 -0
- data/lib/jmeter_perf/dsl/jdbc_postprocessor.rb +39 -0
- data/lib/jmeter_perf/dsl/jdbc_preprocessor.rb +39 -0
- data/lib/jmeter_perf/dsl/jdbc_request.rb +39 -0
- data/lib/jmeter_perf/dsl/jms_pointto_point.rb +47 -0
- data/lib/jmeter_perf/dsl/jms_publisher.rb +49 -0
- data/lib/jmeter_perf/dsl/jms_subscriber.rb +41 -0
- data/lib/jmeter_perf/dsl/json_path_postprocessor.rb +33 -0
- data/lib/jmeter_perf/dsl/jsr223_assertion.rb +35 -0
- data/lib/jmeter_perf/dsl/jsr223_listener.rb +35 -0
- data/lib/jmeter_perf/dsl/jsr223_postprocessor.rb +35 -0
- data/lib/jmeter_perf/dsl/jsr223_preprocessor.rb +35 -0
- data/lib/jmeter_perf/dsl/jsr223_sampler.rb +35 -0
- data/lib/jmeter_perf/dsl/jsr223_timer.rb +35 -0
- data/lib/jmeter_perf/dsl/keystore_configuration.rb +34 -0
- data/lib/jmeter_perf/dsl/ldap_extended_request.rb +48 -0
- data/lib/jmeter_perf/dsl/ldap_extended_request_defaults.rb +48 -0
- data/lib/jmeter_perf/dsl/ldap_request.rb +41 -0
- data/lib/jmeter_perf/dsl/ldap_request_defaults.rb +45 -0
- data/lib/jmeter_perf/dsl/login_config_element.rb +32 -0
- data/lib/jmeter_perf/dsl/loop_controller.rb +32 -0
- data/lib/jmeter_perf/dsl/mail_reader_sampler.rb +43 -0
- data/lib/jmeter_perf/dsl/mailer_visualizer.rb +70 -0
- data/lib/jmeter_perf/dsl/md5_hex_assertion.rb +31 -0
- data/lib/jmeter_perf/dsl/module_controller.rb +31 -0
- data/lib/jmeter_perf/dsl/monitor_results.rb +61 -0
- data/lib/jmeter_perf/dsl/once_only_controller.rb +29 -0
- data/lib/jmeter_perf/dsl/os_process_sampler.rb +40 -0
- data/lib/jmeter_perf/dsl/poisson_random_timer.rb +32 -0
- data/lib/jmeter_perf/dsl/random_controller.rb +31 -0
- data/lib/jmeter_perf/dsl/random_order_controller.rb +29 -0
- data/lib/jmeter_perf/dsl/random_variable.rb +36 -0
- data/lib/jmeter_perf/dsl/recording_controller.rb +29 -0
- data/lib/jmeter_perf/dsl/reg_ex_user_parameters.rb +33 -0
- data/lib/jmeter_perf/dsl/regular_expression_extractor.rb +38 -0
- data/lib/jmeter_perf/dsl/response_assertion.rb +37 -0
- data/lib/jmeter_perf/dsl/response_time_graph.rb +61 -0
- data/lib/jmeter_perf/dsl/result_status_action_handler.rb +31 -0
- data/lib/jmeter_perf/dsl/runtime_controller.rb +31 -0
- data/lib/jmeter_perf/dsl/save_responses_to_a_file.rb +35 -0
- data/lib/jmeter_perf/dsl/simple_config_element.rb +29 -0
- data/lib/jmeter_perf/dsl/simple_controller.rb +29 -0
- data/lib/jmeter_perf/dsl/simple_data_writer.rb +61 -0
- data/lib/jmeter_perf/dsl/smime_assertion.rb +41 -0
- data/lib/jmeter_perf/dsl/smtp_sampler.rb +57 -0
- data/lib/jmeter_perf/dsl/soap_xml_rpc_request.rb +39 -0
- data/lib/jmeter_perf/dsl/spline_visualizer.rb +61 -0
- data/lib/jmeter_perf/dsl/summary_report.rb +61 -0
- data/lib/jmeter_perf/dsl/switch_controller.rb +31 -0
- data/lib/jmeter_perf/dsl/synchronizing_timer.rb +32 -0
- data/lib/jmeter_perf/dsl/tcp_sampler.rb +39 -0
- data/lib/jmeter_perf/dsl/tcp_sampler_config.rb +37 -0
- data/lib/jmeter_perf/dsl/test_action.rb +33 -0
- data/lib/jmeter_perf/dsl/test_fragment.rb +29 -0
- data/lib/jmeter_perf/dsl/test_plan.rb +37 -0
- data/lib/jmeter_perf/dsl/thread_group.rb +43 -0
- data/lib/jmeter_perf/dsl/throughput_controller.rb +38 -0
- data/lib/jmeter_perf/dsl/transaction_controller.rb +32 -0
- data/lib/jmeter_perf/dsl/uniform_random_timer.rb +32 -0
- data/lib/jmeter_perf/dsl/user_defined_variables.rb +39 -0
- data/lib/jmeter_perf/dsl/user_parameters.rb +36 -0
- data/lib/jmeter_perf/dsl/view_results_in_table.rb +61 -0
- data/lib/jmeter_perf/dsl/view_results_tree.rb +61 -0
- data/lib/jmeter_perf/dsl/while_controller.rb +31 -0
- data/lib/jmeter_perf/dsl/x_path_assertion.rb +37 -0
- data/lib/jmeter_perf/dsl/x_path_extractor.rb +37 -0
- data/lib/jmeter_perf/dsl/xml_assertion.rb +29 -0
- data/lib/jmeter_perf/dsl/xml_schema_assertion.rb +31 -0
- data/lib/jmeter_perf/extend/assertions/response_assertion.rb +38 -0
- data/lib/jmeter_perf/extend/config_elements/header_manager.rb +13 -0
- data/lib/jmeter_perf/extend/config_elements/http_cache_manager.rb +12 -0
- data/lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb +39 -0
- data/lib/jmeter_perf/extend/config_elements/http_request_defaults.rb +55 -0
- data/lib/jmeter_perf/extend/config_elements/user_defined_variables.rb +13 -0
- data/lib/jmeter_perf/extend/config_elements/user_parameters.rb +31 -0
- data/lib/jmeter_perf/extend/controllers/foreach_controller.rb +31 -0
- data/lib/jmeter_perf/extend/controllers/loop_controller.rb +11 -0
- data/lib/jmeter_perf/extend/controllers/module_controller.rb +26 -0
- data/lib/jmeter_perf/extend/controllers/throughput_controller.rb +15 -0
- data/lib/jmeter_perf/extend/controllers/transaction_controller.rb +14 -0
- data/lib/jmeter_perf/extend/misc/exists.rb +13 -0
- data/lib/jmeter_perf/extend/misc/rsync.rb +24 -0
- data/lib/jmeter_perf/extend/misc/uuid.rb +12 -0
- data/lib/jmeter_perf/extend/misc/with_helpers.rb +27 -0
- data/lib/jmeter_perf/extend/plugins/jmeter_plugins.rb +124 -0
- data/lib/jmeter_perf/extend/processors/extract.rb +27 -0
- data/lib/jmeter_perf/extend/processors/regular_expression_extractor.rb +27 -0
- data/lib/jmeter_perf/extend/samplers/http_request.rb +66 -0
- data/lib/jmeter_perf/extend/samplers/jms_pointtopoint.rb +23 -0
- data/lib/jmeter_perf/extend/samplers/soapxmlrpc_request.rb +10 -0
- data/lib/jmeter_perf/extend/threads/thread_group.rb +19 -0
- data/lib/jmeter_perf/extend/timers/constant_throughput_timer.rb +11 -0
- data/lib/jmeter_perf/extend/timers/random_timer.rb +14 -0
- data/lib/jmeter_perf/helpers/dsl_generator.rb +157 -0
- data/lib/jmeter_perf/helpers/fallback_content_proxy.rb +96 -0
- data/lib/jmeter_perf/helpers/helper.rb +63 -0
- data/lib/jmeter_perf/helpers/parser.rb +143 -0
- data/lib/jmeter_perf/helpers/running_statistics.rb +62 -0
- data/lib/jmeter_perf/helpers/string.rb +60 -0
- data/lib/jmeter_perf/helpers/user-agents.rb +42 -0
- data/lib/jmeter_perf/plugins/active_threads_over_time.rb +59 -0
- data/lib/jmeter_perf/plugins/composite_graph.rb +77 -0
- data/lib/jmeter_perf/plugins/console_status_logger.rb +19 -0
- data/lib/jmeter_perf/plugins/dummy_sampler.rb +30 -0
- data/lib/jmeter_perf/plugins/jmx_collector.rb +74 -0
- data/lib/jmeter_perf/plugins/json_path_assertion.rb +23 -0
- data/lib/jmeter_perf/plugins/json_path_extractor.rb +22 -0
- data/lib/jmeter_perf/plugins/latencies_over_time.rb +53 -0
- data/lib/jmeter_perf/plugins/loadosophia_uploader.rb +66 -0
- data/lib/jmeter_perf/plugins/perfmon_collector.rb +87 -0
- data/lib/jmeter_perf/plugins/redis_data_set.rb +43 -0
- data/lib/jmeter_perf/plugins/response_codes_per_second.rb +53 -0
- data/lib/jmeter_perf/plugins/response_times_distribution.rb +53 -0
- data/lib/jmeter_perf/plugins/response_times_over_time.rb +53 -0
- data/lib/jmeter_perf/plugins/response_times_percentiles.rb +54 -0
- data/lib/jmeter_perf/plugins/stepping_thread_group.rb +34 -0
- data/lib/jmeter_perf/plugins/transactions_per_second.rb +53 -0
- data/lib/jmeter_perf/plugins/ultimate_thread_group.rb +28 -0
- data/lib/jmeter_perf/plugins/variable_throughput_timer.rb +35 -0
- data/lib/jmeter_perf/report/comparator.rb +258 -0
- data/lib/jmeter_perf/report/summary.rb +268 -0
- data/lib/jmeter_perf/tasks/dsl.rake +19 -0
- data/lib/jmeter_perf/version.rb +5 -0
- data/lib/jmeter_perf/views/report_template.html.erb +114 -0
- data/lib/jmeter_perf.rb +183 -0
- data/lib/specifications/idl.xml +1494 -0
- data/sig/jmeter_perf.rbs +195 -0
- data/sorbet/config +5 -0
- data/sorbet/rbi/annotations/.gitattributes +1 -0
- data/sorbet/rbi/annotations/rainbow.rbi +269 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
- data/sorbet/rbi/gems/bump@0.10.0.rbi +169 -0
- data/sorbet/rbi/gems/byebug@11.1.3.rbi +3607 -0
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +3427 -0
- data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
- data/sorbet/rbi/gems/docile@1.4.1.rbi +377 -0
- data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
- data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
- data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
- data/sorbet/rbi/gems/method_source@1.1.0.rbi +304 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
- data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
- data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
- data/sorbet/rbi/gems/parser@3.3.5.0.rbi +5519 -0
- data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
- data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +1151 -0
- data/sorbet/rbi/gems/pry@0.14.2.rbi +10076 -0
- data/sorbet/rbi/gems/racc@1.8.1.rbi +162 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
- data/sorbet/rbi/gems/rake@13.2.1.rbi +3074 -0
- data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
- data/sorbet/rbi/gems/rbtree3@0.7.1.rbi +9 -0
- data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
- data/sorbet/rbi/gems/rexml@3.3.8.rbi +4858 -0
- data/sorbet/rbi/gems/rspec-core@3.13.1.rbi +11132 -0
- data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
- data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
- data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
- data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
- data/sorbet/rbi/gems/rubocop-ast@1.32.3.rbi +7054 -0
- data/sorbet/rbi/gems/rubocop-performance@1.21.1.rbi +9 -0
- data/sorbet/rbi/gems/rubocop@1.65.1.rbi +58182 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
- data/sorbet/rbi/gems/simplecov-html@0.13.1.rbi +225 -0
- data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
- data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
- data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
- data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +9 -0
- data/sorbet/rbi/gems/standard-performance@1.4.0.rbi +9 -0
- data/sorbet/rbi/gems/standard@1.40.0.rbi +926 -0
- data/sorbet/rbi/gems/tapioca@0.16.3.rbi +3596 -0
- data/sorbet/rbi/gems/tdigest@0.2.1.rbi +170 -0
- data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
- data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +66 -0
- data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
- data/sorbet/rbi/gems/yard@0.9.37.rbi +18379 -0
- data/sorbet/rbi/todo.rbi +31 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +15 -0
- data/tasks/dsl.rake +22 -0
- metadata +355 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element DurationAssertion
|
|
4
|
+
# @param params [Hash] Parameters for the DurationAssertion element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the DurationAssertion element
|
|
6
|
+
# @return [JmeterPerf::DurationAssertion], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#durationassertion
|
|
8
|
+
def duration_assertion(params = {}, &)
|
|
9
|
+
node = DurationAssertion.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class DurationAssertion
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "DurationAssertion" : (params[:name] || "DurationAssertion")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<DurationAssertion guiclass="DurationAssertionGui" testclass="DurationAssertion" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="DurationAssertion.duration"/>
|
|
23
|
+
</DurationAssertion>
|
|
24
|
+
EOS
|
|
25
|
+
))
|
|
26
|
+
update params
|
|
27
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element ForEachController
|
|
4
|
+
# @param params [Hash] Parameters for the ForEachController element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the ForEachController element
|
|
6
|
+
# @return [JmeterPerf::ForEachController], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#foreachcontroller
|
|
8
|
+
def for_each_controller(params = {}, &)
|
|
9
|
+
node = ForEachController.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class ForEachController
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "ForEachController" : (params[:name] || "ForEachController")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="ForeachController.inputVal"/>
|
|
23
|
+
<stringProp name="ForeachController.returnVal"/>
|
|
24
|
+
<boolProp name="ForeachController.useSeparator">true</boolProp>
|
|
25
|
+
</ForeachController>
|
|
26
|
+
EOS
|
|
27
|
+
))
|
|
28
|
+
update params
|
|
29
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element FTPRequest
|
|
4
|
+
# @param params [Hash] Parameters for the FTPRequest element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the FTPRequest element
|
|
6
|
+
# @return [JmeterPerf::FTPRequest], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#ftprequest
|
|
8
|
+
def ftp_request(params = {}, &)
|
|
9
|
+
node = FTPRequest.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class FTPRequest
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "FTPRequest" : (params[:name] || "FTPRequest")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<FTPSampler guiclass="FtpTestSamplerGui" testclass="FTPSampler" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="FTPSampler.server"/>
|
|
23
|
+
<stringProp name="FTPSampler.port"/>
|
|
24
|
+
<stringProp name="FTPSampler.filename"/>
|
|
25
|
+
<stringProp name="FTPSampler.localfilename"/>
|
|
26
|
+
<stringProp name="FTPSampler.inputdata"/>
|
|
27
|
+
<boolProp name="FTPSampler.binarymode">false</boolProp>
|
|
28
|
+
<boolProp name="FTPSampler.saveresponse">false</boolProp>
|
|
29
|
+
<boolProp name="FTPSampler.upload">false</boolProp>
|
|
30
|
+
<stringProp name="ConfigTestElement.username"/>
|
|
31
|
+
<stringProp name="ConfigTestElement.password"/>
|
|
32
|
+
</FTPSampler>
|
|
33
|
+
EOS
|
|
34
|
+
))
|
|
35
|
+
update params
|
|
36
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element FTPRequestDefaults
|
|
4
|
+
# @param params [Hash] Parameters for the FTPRequestDefaults element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the FTPRequestDefaults element
|
|
6
|
+
# @return [JmeterPerf::FTPRequestDefaults], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#ftprequestdefaults
|
|
8
|
+
def ftp_request_defaults(params = {}, &)
|
|
9
|
+
node = FTPRequestDefaults.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class FTPRequestDefaults
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "FTPRequestDefaults" : (params[:name] || "FTPRequestDefaults")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<ConfigTestElement guiclass="FtpConfigGui" testclass="ConfigTestElement" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="FTPSampler.server"/>
|
|
23
|
+
<stringProp name="FTPSampler.port"/>
|
|
24
|
+
<stringProp name="FTPSampler.filename"/>
|
|
25
|
+
<stringProp name="FTPSampler.localfilename"/>
|
|
26
|
+
<stringProp name="FTPSampler.inputdata"/>
|
|
27
|
+
<boolProp name="FTPSampler.binarymode">false</boolProp>
|
|
28
|
+
<boolProp name="FTPSampler.saveresponse">false</boolProp>
|
|
29
|
+
<boolProp name="FTPSampler.upload">false</boolProp>
|
|
30
|
+
</ConfigTestElement>
|
|
31
|
+
EOS
|
|
32
|
+
))
|
|
33
|
+
update params
|
|
34
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element GaussianRandomTimer
|
|
4
|
+
# @param params [Hash] Parameters for the GaussianRandomTimer element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the GaussianRandomTimer element
|
|
6
|
+
# @return [JmeterPerf::GaussianRandomTimer], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#gaussianrandomtimer
|
|
8
|
+
def gaussian_random_timer(params = {}, &)
|
|
9
|
+
node = GaussianRandomTimer.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class GaussianRandomTimer
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "GaussianRandomTimer" : (params[:name] || "GaussianRandomTimer")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="ConstantTimer.delay">300</stringProp>
|
|
23
|
+
<stringProp name="RandomTimer.range">100.0</stringProp>
|
|
24
|
+
</GaussianRandomTimer>
|
|
25
|
+
EOS
|
|
26
|
+
))
|
|
27
|
+
update params
|
|
28
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element GenerateSummaryResults
|
|
4
|
+
# @param params [Hash] Parameters for the GenerateSummaryResults element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the GenerateSummaryResults element
|
|
6
|
+
# @return [JmeterPerf::GenerateSummaryResults], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#generatesummaryresults
|
|
8
|
+
def generate_summary_results(params = {}, &)
|
|
9
|
+
node = GenerateSummaryResults.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class GenerateSummaryResults
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "GenerateSummaryResults" : (params[:name] || "GenerateSummaryResults")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<Summariser guiclass="SummariserGui" testclass="Summariser" testname="#{testname}" enabled="true"/>
|
|
22
|
+
EOS
|
|
23
|
+
))
|
|
24
|
+
update params
|
|
25
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element GraphResults
|
|
4
|
+
# @param params [Hash] Parameters for the GraphResults element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the GraphResults element
|
|
6
|
+
# @return [JmeterPerf::GraphResults], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#graphresults
|
|
8
|
+
def graph_results(params = {}, &)
|
|
9
|
+
node = GraphResults.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class GraphResults
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "GraphResults" : (params[:name] || "GraphResults")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="#{testname}" enabled="true">
|
|
22
|
+
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
|
23
|
+
<objProp>
|
|
24
|
+
<name>saveConfig</name>
|
|
25
|
+
<value class="SampleSaveConfiguration">
|
|
26
|
+
<time>true</time>
|
|
27
|
+
<latency>true</latency>
|
|
28
|
+
<timestamp>true</timestamp>
|
|
29
|
+
<success>true</success>
|
|
30
|
+
<label>true</label>
|
|
31
|
+
<code>true</code>
|
|
32
|
+
<message>false</message>
|
|
33
|
+
<threadName>true</threadName>
|
|
34
|
+
<dataType>false</dataType>
|
|
35
|
+
<encoding>false</encoding>
|
|
36
|
+
<assertions>false</assertions>
|
|
37
|
+
<subresults>false</subresults>
|
|
38
|
+
<responseData>false</responseData>
|
|
39
|
+
<samplerData>false</samplerData>
|
|
40
|
+
<xml>false</xml>
|
|
41
|
+
<fieldNames>false</fieldNames>
|
|
42
|
+
<responseHeaders>false</responseHeaders>
|
|
43
|
+
<requestHeaders>false</requestHeaders>
|
|
44
|
+
<responseDataOnError>false</responseDataOnError>
|
|
45
|
+
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
|
|
46
|
+
<assertionsResultsToSave>0</assertionsResultsToSave>
|
|
47
|
+
<bytes>true</bytes>
|
|
48
|
+
<threadCounts>true</threadCounts>
|
|
49
|
+
<sampleCount>true</sampleCount>
|
|
50
|
+
</value>
|
|
51
|
+
</objProp>
|
|
52
|
+
<stringProp name="filename"/>
|
|
53
|
+
</ResultCollector>
|
|
54
|
+
EOS
|
|
55
|
+
))
|
|
56
|
+
update params
|
|
57
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTMLAssertion
|
|
4
|
+
# @param params [Hash] Parameters for the HTMLAssertion element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTMLAssertion element
|
|
6
|
+
# @return [JmeterPerf::HTMLAssertion], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#htmlassertion
|
|
8
|
+
def html_assertion(params = {}, &)
|
|
9
|
+
node = HTMLAssertion.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTMLAssertion
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTMLAssertion" : (params[:name] || "HTMLAssertion")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<HTMLAssertion guiclass="HTMLAssertionGui" testclass="HTMLAssertion" testname="#{testname}" enabled="true">
|
|
22
|
+
<longProp name="html_assertion_error_threshold">0</longProp>
|
|
23
|
+
<longProp name="html_assertion_warning_threshold">0</longProp>
|
|
24
|
+
<stringProp name="html_assertion_doctype">omit</stringProp>
|
|
25
|
+
<boolProp name="html_assertion_errorsonly">false</boolProp>
|
|
26
|
+
<longProp name="html_assertion_format">0</longProp>
|
|
27
|
+
<stringProp name="html_assertion_filename"/>
|
|
28
|
+
</HTMLAssertion>
|
|
29
|
+
EOS
|
|
30
|
+
))
|
|
31
|
+
update params
|
|
32
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTMLLinkParser
|
|
4
|
+
# @param params [Hash] Parameters for the HTMLLinkParser element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTMLLinkParser element
|
|
6
|
+
# @return [JmeterPerf::HTMLLinkParser], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#htmllinkparser
|
|
8
|
+
def html_link_parser(params = {}, &)
|
|
9
|
+
node = HTMLLinkParser.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTMLLinkParser
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTMLLinkParser" : (params[:name] || "HTMLLinkParser")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<AnchorModifier guiclass="AnchorModifierGui" testclass="AnchorModifier" testname="#{testname}" enabled="true"/>
|
|
22
|
+
EOS
|
|
23
|
+
))
|
|
24
|
+
update params
|
|
25
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTMLParameterMask
|
|
4
|
+
# @param params [Hash] Parameters for the HTMLParameterMask element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTMLParameterMask element
|
|
6
|
+
# @return [JmeterPerf::HTMLParameterMask], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#htmlparametermask
|
|
8
|
+
def html_parameter_mask(params = {}, &)
|
|
9
|
+
node = HTMLParameterMask.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTMLParameterMask
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTMLParameterMask" : (params[:name] || "HTMLParameterMask")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<ConfigTestElement guiclass="ObsoleteGui" testclass="ConfigTestElement" testname="#{testname}" enabled="true">
|
|
22
|
+
<elementProp name="ParamModifier.mask" elementType="ConfigTestElement">
|
|
23
|
+
<stringProp name="ParamModifier.field_name"/>
|
|
24
|
+
<stringProp name="ParamModifier.prefix"/>
|
|
25
|
+
<longProp name="ParamModifier.lower_bound">0</longProp>
|
|
26
|
+
<longProp name="ParamModifier.upper_bound">10</longProp>
|
|
27
|
+
<longProp name="ParamModifier.increment">1</longProp>
|
|
28
|
+
<stringProp name="ParamModifier.suffix"/>
|
|
29
|
+
</elementProp>
|
|
30
|
+
</ConfigTestElement>
|
|
31
|
+
EOS
|
|
32
|
+
))
|
|
33
|
+
update params
|
|
34
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTTPAuthorizationManager
|
|
4
|
+
# @param params [Hash] Parameters for the HTTPAuthorizationManager element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTTPAuthorizationManager element
|
|
6
|
+
# @return [JmeterPerf::HTTPAuthorizationManager], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#httpauthorizationmanager
|
|
8
|
+
def http_authorization_manager(params = {}, &)
|
|
9
|
+
node = HTTPAuthorizationManager.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTTPAuthorizationManager
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTTPAuthorizationManager" : (params[:name] || "HTTPAuthorizationManager")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="#{testname}" enabled="true">
|
|
22
|
+
<collectionProp name="AuthManager.auth_list">
|
|
23
|
+
<elementProp name="" elementType="Authorization">
|
|
24
|
+
<stringProp name="Authorization.url"/>
|
|
25
|
+
<stringProp name="Authorization.username"/>
|
|
26
|
+
<stringProp name="Authorization.password"/>
|
|
27
|
+
<stringProp name="Authorization.domain"/>
|
|
28
|
+
<stringProp name="Authorization.realm"/>
|
|
29
|
+
</elementProp>
|
|
30
|
+
</collectionProp>
|
|
31
|
+
</AuthManager>
|
|
32
|
+
EOS
|
|
33
|
+
))
|
|
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,32 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTTPCacheManager
|
|
4
|
+
# @param params [Hash] Parameters for the HTTPCacheManager element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTTPCacheManager element
|
|
6
|
+
# @return [JmeterPerf::HTTPCacheManager], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#httpcachemanager
|
|
8
|
+
def http_cache_manager(params = {}, &)
|
|
9
|
+
node = HTTPCacheManager.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTTPCacheManager
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTTPCacheManager" : (params[:name] || "HTTPCacheManager")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<CacheManager guiclass="CacheManagerGui" testclass="CacheManager" testname="#{testname}" enabled="true">
|
|
22
|
+
<boolProp name="clearEachIteration">false</boolProp>
|
|
23
|
+
<boolProp name="useExpires">false</boolProp>
|
|
24
|
+
</CacheManager>
|
|
25
|
+
EOS
|
|
26
|
+
))
|
|
27
|
+
update params
|
|
28
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTTPCookieManager
|
|
4
|
+
# @param params [Hash] Parameters for the HTTPCookieManager element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTTPCookieManager element
|
|
6
|
+
# @return [JmeterPerf::HTTPCookieManager], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#httpcookiemanager
|
|
8
|
+
def http_cookie_manager(params = {}, &)
|
|
9
|
+
node = HTTPCookieManager.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTTPCookieManager
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTTPCookieManager" : (params[:name] || "HTTPCookieManager")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="#{testname}" enabled="true">
|
|
22
|
+
<collectionProp name="CookieManager.cookies"/>
|
|
23
|
+
<boolProp name="CookieManager.clearEachIteration">false</boolProp>
|
|
24
|
+
<stringProp name="CookieManager.policy">default</stringProp>
|
|
25
|
+
<stringProp name="CookieManager.implementation">org.apache.jmeter.protocol.http.control.HC4CookieHandler</stringProp>
|
|
26
|
+
</CookieManager>
|
|
27
|
+
EOS
|
|
28
|
+
))
|
|
29
|
+
update params
|
|
30
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTTPHeaderManager
|
|
4
|
+
# @param params [Hash] Parameters for the HTTPHeaderManager element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTTPHeaderManager element
|
|
6
|
+
# @return [JmeterPerf::HTTPHeaderManager], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#httpheadermanager
|
|
8
|
+
def http_header_manager(params = {}, &)
|
|
9
|
+
node = HTTPHeaderManager.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTTPHeaderManager
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTTPHeaderManager" : (params[:name] || "HTTPHeaderManager")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="#{testname}" enabled="true">
|
|
22
|
+
<collectionProp name="HeaderManager.headers">
|
|
23
|
+
<elementProp name="" elementType="Header">
|
|
24
|
+
<stringProp name="Header.name"/>
|
|
25
|
+
<stringProp name="Header.value"/>
|
|
26
|
+
</elementProp>
|
|
27
|
+
</collectionProp>
|
|
28
|
+
</HeaderManager>
|
|
29
|
+
EOS
|
|
30
|
+
))
|
|
31
|
+
update params
|
|
32
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTTPRequest
|
|
4
|
+
# @param params [Hash] Parameters for the HTTPRequest element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTTPRequest element
|
|
6
|
+
# @return [JmeterPerf::HTTPRequest], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#httprequest
|
|
8
|
+
def http_request(params = {}, &)
|
|
9
|
+
node = HTTPRequest.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTTPRequest
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTTPRequest" : (params[:name] || "HTTPRequest")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="#{testname}" enabled="true">
|
|
22
|
+
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="#{testname}" enabled="true">
|
|
23
|
+
<collectionProp name="Arguments.arguments"/>
|
|
24
|
+
</elementProp>
|
|
25
|
+
<stringProp name="HTTPSampler.domain"/>
|
|
26
|
+
<stringProp name="HTTPSampler.port"/>
|
|
27
|
+
<stringProp name="HTTPSampler.connect_timeout"/>
|
|
28
|
+
<stringProp name="HTTPSampler.response_timeout"/>
|
|
29
|
+
<stringProp name="HTTPSampler.protocol"/>
|
|
30
|
+
<stringProp name="HTTPSampler.contentEncoding"/>
|
|
31
|
+
<stringProp name="HTTPSampler.path"/>
|
|
32
|
+
<stringProp name="HTTPSampler.method">GET</stringProp>
|
|
33
|
+
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
|
|
34
|
+
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
|
|
35
|
+
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
|
|
36
|
+
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
|
|
37
|
+
<boolProp name="HTTPSampler.monitor">false</boolProp>
|
|
38
|
+
<stringProp name="HTTPSampler.embedded_url_re"/>
|
|
39
|
+
</HTTPSamplerProxy>
|
|
40
|
+
EOS
|
|
41
|
+
))
|
|
42
|
+
update params
|
|
43
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element HTTPRequestDefaults
|
|
4
|
+
# @param params [Hash] Parameters for the HTTPRequestDefaults element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the HTTPRequestDefaults element
|
|
6
|
+
# @return [JmeterPerf::HTTPRequestDefaults], a subclass of JmeterPerf::DSL that can be chained with other DSL methods.
|
|
7
|
+
# @see https://github.com/jlurena/jmeter_perf/wiki/1.-DSL-Documentation#httprequestdefaults
|
|
8
|
+
def http_request_defaults(params = {}, &)
|
|
9
|
+
node = HTTPRequestDefaults.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class HTTPRequestDefaults
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "HTTPRequestDefaults" : (params[:name] || "HTTPRequestDefaults")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="#{testname}" enabled="true">
|
|
22
|
+
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="#{testname}" enabled="true">
|
|
23
|
+
<collectionProp name="Arguments.arguments">
|
|
24
|
+
<elementProp name="" elementType="HTTPArgument">
|
|
25
|
+
<boolProp name="HTTPArgument.always_encode">false</boolProp>
|
|
26
|
+
<stringProp name="Argument.value">username=my_name&password=my_password&email="my name <test@example.com>"</stringProp>
|
|
27
|
+
<stringProp name="Argument.metadata">=</stringProp>
|
|
28
|
+
</elementProp>
|
|
29
|
+
</collectionProp>
|
|
30
|
+
</elementProp>
|
|
31
|
+
<stringProp name="HTTPSampler.domain"/>
|
|
32
|
+
<stringProp name="HTTPSampler.port"/>
|
|
33
|
+
<stringProp name="HTTPSampler.proxyHost"/>
|
|
34
|
+
<stringProp name="HTTPSampler.proxyPort"/>
|
|
35
|
+
<stringProp name="HTTPSampler.connect_timeout"/>
|
|
36
|
+
<stringProp name="HTTPSampler.response_timeout"/>
|
|
37
|
+
<stringProp name="HTTPSampler.protocol"/>
|
|
38
|
+
<stringProp name="HTTPSampler.contentEncoding"/>
|
|
39
|
+
<stringProp name="HTTPSampler.path">/</stringProp>
|
|
40
|
+
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
|
|
41
|
+
<boolProp name="HTTPSampler.image_parser">true</boolProp>
|
|
42
|
+
<boolProp name="HTTPSampler.concurrentDwn">true</boolProp>
|
|
43
|
+
<stringProp name="HTTPSampler.concurrentPool">4</stringProp>
|
|
44
|
+
<stringProp name="HTTPSampler.embedded_url_re"/>
|
|
45
|
+
</ConfigTestElement>
|
|
46
|
+
EOS
|
|
47
|
+
))
|
|
48
|
+
update params
|
|
49
|
+
update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|