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
data/example/jmeter.log
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
2024-10-17 15:09:36,136 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN
|
|
2
|
+
2024-10-17 15:09:36,162 INFO o.a.j.JMeter: Loading user properties from: /opt/homebrew/Cellar/jmeter/5.6.3/libexec/bin/user.properties
|
|
3
|
+
2024-10-17 15:09:36,162 INFO o.a.j.JMeter: Loading system properties from: /opt/homebrew/Cellar/jmeter/5.6.3/libexec/bin/system.properties
|
|
4
|
+
2024-10-17 15:09:36,165 INFO o.a.j.JMeter: Copyright (c) 1998-2024 The Apache Software Foundation
|
|
5
|
+
2024-10-17 15:09:36,165 INFO o.a.j.JMeter: Version 5.6.3
|
|
6
|
+
2024-10-17 15:09:36,165 INFO o.a.j.JMeter: java.version=21.0.4
|
|
7
|
+
2024-10-17 15:09:36,165 INFO o.a.j.JMeter: java.vm.name=OpenJDK 64-Bit Server VM
|
|
8
|
+
2024-10-17 15:09:36,165 INFO o.a.j.JMeter: os.name=Mac OS X
|
|
9
|
+
2024-10-17 15:09:36,165 INFO o.a.j.JMeter: os.arch=aarch64
|
|
10
|
+
2024-10-17 15:09:36,165 INFO o.a.j.JMeter: os.version=14.7
|
|
11
|
+
2024-10-17 15:09:36,165 INFO o.a.j.JMeter: file.encoding=UTF-8
|
|
12
|
+
2024-10-17 15:09:36,166 INFO o.a.j.JMeter: java.awt.headless=null
|
|
13
|
+
2024-10-17 15:09:36,166 INFO o.a.j.JMeter: Max memory =1073741824
|
|
14
|
+
2024-10-17 15:09:36,166 INFO o.a.j.JMeter: Available Processors =10
|
|
15
|
+
2024-10-17 15:09:36,172 INFO o.a.j.JMeter: Default Locale=English (EN)
|
|
16
|
+
2024-10-17 15:09:36,172 INFO o.a.j.JMeter: JMeter Locale=English (EN)
|
|
17
|
+
2024-10-17 15:09:36,172 INFO o.a.j.JMeter: JMeterHome=/opt/homebrew/Cellar/jmeter/5.6.3/libexec
|
|
18
|
+
2024-10-17 15:09:36,172 INFO o.a.j.JMeter: user.dir =/Users/jeanluis.urena/Projects/jmeter_perf/example
|
|
19
|
+
2024-10-17 15:09:36,172 INFO o.a.j.JMeter: PWD =/Users/jeanluis.urena/Projects/jmeter_perf/example
|
|
20
|
+
2024-10-17 15:09:36,192 INFO o.a.j.JMeter: IP: 192.168.1.235 Name: Jean Luis X9CK0310Y7 FullName: jeanluick0310y7.fios-router.home
|
|
21
|
+
2024-10-17 15:09:36,200 INFO o.a.j.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties
|
|
22
|
+
2024-10-17 15:09:36,621 INFO o.a.j.JMeterGuiLauncher: Setting LAF to: com.github.weisj.darklaf.DarkLaf:com.github.weisj.darklaf.theme.DarculaTheme
|
|
23
|
+
2024-10-17 15:09:38,657 INFO o.a.j.r.ClassFinder: Will scan jar /opt/homebrew/Cellar/jmeter/5.6.3/libexec/lib/ext/jmeter-plugins-cohendeffectsize-1.2.0.jar with filter ExtendsClassFilter [parents=[interface org.apache.jmeter.gui.action.Command], inner=false, contains=null, notContains=null]. Consider exposing JMeter plugins via META-INF/services, and add JMeter-Skip-Class-Scanning=true manifest attribute so JMeter can skip classfile scanning
|
|
24
|
+
2024-10-17 15:09:38,659 INFO o.a.j.r.ClassFinder: Will scan jar /opt/homebrew/Cellar/jmeter/5.6.3/libexec/lib/ext/jmeter-plugins-manager-1.10.jar with filter ExtendsClassFilter [parents=[interface org.apache.jmeter.gui.action.Command], inner=false, contains=null, notContains=null]. Consider exposing JMeter plugins via META-INF/services, and add JMeter-Skip-Class-Scanning=true manifest attribute so JMeter can skip classfile scanning
|
|
25
|
+
2024-10-17 15:09:38,785 INFO o.a.j.r.ClassFinder: Will scan jar /opt/homebrew/Cellar/jmeter/5.6.3/libexec/lib/ext/jmeter-plugins-cohendeffectsize-1.2.0.jar with filter ExtendsClassFilter [parents=[interface org.apache.jmeter.gui.plugin.MenuCreator], inner=false, contains=null, notContains=null]. Consider exposing JMeter plugins via META-INF/services, and add JMeter-Skip-Class-Scanning=true manifest attribute so JMeter can skip classfile scanning
|
|
26
|
+
2024-10-17 15:09:38,786 INFO o.a.j.r.ClassFinder: Will scan jar /opt/homebrew/Cellar/jmeter/5.6.3/libexec/lib/ext/jmeter-plugins-manager-1.10.jar with filter ExtendsClassFilter [parents=[interface org.apache.jmeter.gui.plugin.MenuCreator], inner=false, contains=null, notContains=null]. Consider exposing JMeter plugins via META-INF/services, and add JMeter-Skip-Class-Scanning=true manifest attribute so JMeter can skip classfile scanning
|
|
27
|
+
2024-10-17 15:09:38,859 INFO o.j.r.JARSourceHTTP: Requesting https://jmeter-plugins.org/repo/?installID=mac_os_x-8d6452e57a9014389b6edeb7f5fec408-gui
|
|
28
|
+
2024-10-17 15:09:39,732 INFO o.j.r.PluginManager: Plugins Status: [rbourga-jmeter-plugins-cohendeffectsize=1.2.0, jpgc-plugins-manager=1.10, jmeter-core=5.6.3, jmeter-ftp=5.6.3, jmeter-http=5.6.3, jmeter-jdbc=5.6.3, jmeter-jms=5.6.3, jmeter-junit=5.6.3, jmeter-java=5.6.3, jmeter-ldap=5.6.3, jmeter-mail=5.6.3, jmeter-mongodb=5.6.3, jmeter-native=5.6.3, jmeter-tcp=5.6.3, jmeter-components=5.6.3]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require "jmeter_perf"
|
|
2
|
+
|
|
3
|
+
namespace :test do
|
|
4
|
+
desc "Runs performance tests"
|
|
5
|
+
task performance: :environment do
|
|
6
|
+
port = 3301
|
|
7
|
+
puts "Starting Rails server on port #{port}"
|
|
8
|
+
pid = Process.spawn("bundle exec rails server -p #{port}", out: File::NULL, err: $stderr)
|
|
9
|
+
Process.detach(pid)
|
|
10
|
+
sleep 5
|
|
11
|
+
|
|
12
|
+
summaries = ["fast", "random", "slow"].map do |action|
|
|
13
|
+
JmeterPerf.test do
|
|
14
|
+
threads count: 2, duration: 10 do
|
|
15
|
+
get(
|
|
16
|
+
name: "#{action} action",
|
|
17
|
+
url: "http://127.0.0.1:#{port}/test/#{action}"
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
end.run(
|
|
21
|
+
name: action,
|
|
22
|
+
out_jmx: "tmp/#{action}.jmx",
|
|
23
|
+
out_jmeter_log: "tmp/#{action}.log",
|
|
24
|
+
out_jtl: "tmp/#{action}.jtl",
|
|
25
|
+
out_cmd_log: "tmp/#{action}_cmd.log"
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
base_summary = summaries.shift
|
|
30
|
+
comparator = JmeterPerf::Report::Comparator.new(base_summary, base_summary, "#{base_summary.name}_vs_#{base_summary.name}")
|
|
31
|
+
comparator.generate_reports(output_dir: "tmp")
|
|
32
|
+
summaries.each do |summary|
|
|
33
|
+
comparator = JmeterPerf::Report::Comparator.new(base_summary, summary, "#{base_summary.name}_vs_#{summary.name}")
|
|
34
|
+
comparator.generate_reports(output_dir: "tmp")
|
|
35
|
+
end
|
|
36
|
+
ensure
|
|
37
|
+
Process.kill("TERM", pid)
|
|
38
|
+
puts "Rails server stopped."
|
|
39
|
+
end
|
|
40
|
+
end
|
data/example/log/.keep
ADDED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
|
data/example/random.log
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
2024-10-17 09:15:18,795 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN
|
|
2
|
+
2024-10-17 09:15:18,805 INFO o.a.j.JMeter: Loading user properties from: /opt/homebrew/Cellar/jmeter/5.6.3/libexec/bin/user.properties
|
|
3
|
+
2024-10-17 09:15:18,805 INFO o.a.j.JMeter: Loading system properties from: /opt/homebrew/Cellar/jmeter/5.6.3/libexec/bin/system.properties
|
|
4
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: Copyright (c) 1998-2024 The Apache Software Foundation
|
|
5
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: Version 5.6.3
|
|
6
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: java.version=21.0.4
|
|
7
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: java.vm.name=OpenJDK 64-Bit Server VM
|
|
8
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: os.name=Mac OS X
|
|
9
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: os.arch=aarch64
|
|
10
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: os.version=14.7
|
|
11
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: file.encoding=UTF-8
|
|
12
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: java.awt.headless=true
|
|
13
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: Max memory =1073741824
|
|
14
|
+
2024-10-17 09:15:18,808 INFO o.a.j.JMeter: Available Processors =10
|
|
15
|
+
2024-10-17 09:15:18,813 INFO o.a.j.JMeter: Default Locale=English (EN)
|
|
16
|
+
2024-10-17 09:15:18,813 INFO o.a.j.JMeter: JMeter Locale=English (EN)
|
|
17
|
+
2024-10-17 09:15:18,813 INFO o.a.j.JMeter: JMeterHome=/opt/homebrew/Cellar/jmeter/5.6.3/libexec
|
|
18
|
+
2024-10-17 09:15:18,813 INFO o.a.j.JMeter: user.dir =/Users/jeanluis.urena/Projects/jmeter_perf/example
|
|
19
|
+
2024-10-17 09:15:18,814 INFO o.a.j.JMeter: PWD =/Users/jeanluis.urena/Projects/jmeter_perf/example
|
|
20
|
+
2024-10-17 09:15:18,815 INFO o.a.j.JMeter: IP: 192.168.1.235 Name: Jean Luis X9CK0310Y7 FullName: jeanluick0310y7.fios-router.home
|
|
21
|
+
2024-10-17 09:15:18,823 INFO o.a.j.s.FileServer: Default base='/Users/jeanluis.urena/Projects/jmeter_perf/example'
|
|
22
|
+
2024-10-17 09:15:18,824 INFO o.a.j.s.FileServer: Set new base='/Users/jeanluis.urena/Projects/jmeter_perf/example'
|
|
23
|
+
2024-10-17 09:15:18,926 INFO o.a.j.s.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2
|
|
24
|
+
2024-10-17 09:15:18,951 INFO o.a.j.s.SaveService: Using SaveService properties version 5.0
|
|
25
|
+
2024-10-17 09:15:18,953 INFO o.a.j.s.SaveService: Using SaveService properties file encoding UTF-8
|
|
26
|
+
2024-10-17 09:15:18,954 INFO o.a.j.s.SaveService: Loading file: random.jmx
|
|
27
|
+
2024-10-17 09:15:18,990 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/html is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
|
|
28
|
+
2024-10-17 09:15:18,990 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xhtml+xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
|
|
29
|
+
2024-10-17 09:15:18,991 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
|
|
30
|
+
2024-10-17 09:15:18,991 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
|
|
31
|
+
2024-10-17 09:15:18,991 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
|
|
32
|
+
2024-10-17 09:15:18,991 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/css is org.apache.jmeter.protocol.http.parser.CssParser
|
|
33
|
+
2024-10-17 09:15:18,994 INFO o.a.j.JMeter: Creating summariser <summary>
|
|
34
|
+
2024-10-17 09:15:19,004 INFO o.a.j.e.StandardJMeterEngine: Running the test!
|
|
35
|
+
2024-10-17 09:15:19,004 INFO o.a.j.s.SampleEvent: List of sample_variables: []
|
|
36
|
+
2024-10-17 09:15:19,004 INFO o.a.j.s.SampleEvent: List of sample_variables: []
|
|
37
|
+
2024-10-17 09:15:19,006 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.'
|
|
38
|
+
2024-10-17 09:15:19,006 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must not contain the string: '.gui.'
|
|
39
|
+
2024-10-17 09:15:19,037 INFO o.a.j.r.ClassFinder: Will scan jar /opt/homebrew/Cellar/jmeter/5.6.3/libexec/lib/ext/jmeter-plugins-manager-1.10.jar with filter ExtendsClassFilter [parents=[interface org.apache.jmeter.functions.Function], inner=false, contains=null, notContains=null]. Consider exposing JMeter plugins via META-INF/services, and add JMeter-Skip-Class-Scanning=true manifest attribute so JMeter can skip classfile scanning
|
|
40
|
+
2024-10-17 09:15:19,079 INFO o.a.j.r.ClassFinder: Will scan jar /opt/homebrew/Cellar/jmeter/5.6.3/libexec/lib/ext/jmeter-plugins-cohendeffectsize-1.0.0.jar with filter ExtendsClassFilter [parents=[interface org.apache.jmeter.functions.Function], inner=false, contains=null, notContains=null]. Consider exposing JMeter plugins via META-INF/services, and add JMeter-Skip-Class-Scanning=true manifest attribute so JMeter can skip classfile scanning
|
|
41
|
+
2024-10-17 09:15:19,083 INFO o.a.j.JMeter: Running test (1729170919083)
|
|
42
|
+
2024-10-17 09:15:19,093 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : ThreadGroup
|
|
43
|
+
2024-10-17 09:15:19,094 INFO o.a.j.e.StandardJMeterEngine: Starting 10 threads for group ThreadGroup.
|
|
44
|
+
2024-10-17 09:15:19,094 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
|
|
45
|
+
2024-10-17 09:15:19,094 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=10 ramp-up=5 delayedStart=true
|
|
46
|
+
2024-10-17 09:15:19,094 INFO o.a.j.t.ThreadGroup: Started thread group number 1
|
|
47
|
+
2024-10-17 09:15:19,095 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
|
|
48
|
+
2024-10-17 09:15:19,095 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
|
|
49
|
+
2024-10-17 09:15:19,095 INFO o.a.j.r.Summariser: summary = 0 in 00:00:00 = ******/s Avg: 0 Min: 9223372036854775807 Max: -9223372036854775808 Err: 0 (0.00%)
|
data/example/slow.log
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
2024-10-17 09:15:16,569 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN
|
|
2
|
+
2024-10-17 09:15:16,579 INFO o.a.j.JMeter: Loading user properties from: /opt/homebrew/Cellar/jmeter/5.6.3/libexec/bin/user.properties
|
|
3
|
+
2024-10-17 09:15:16,580 INFO o.a.j.JMeter: Loading system properties from: /opt/homebrew/Cellar/jmeter/5.6.3/libexec/bin/system.properties
|
|
4
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: Copyright (c) 1998-2024 The Apache Software Foundation
|
|
5
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: Version 5.6.3
|
|
6
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: java.version=21.0.4
|
|
7
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: java.vm.name=OpenJDK 64-Bit Server VM
|
|
8
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: os.name=Mac OS X
|
|
9
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: os.arch=aarch64
|
|
10
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: os.version=14.7
|
|
11
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: file.encoding=UTF-8
|
|
12
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: java.awt.headless=true
|
|
13
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: Max memory =1073741824
|
|
14
|
+
2024-10-17 09:15:16,583 INFO o.a.j.JMeter: Available Processors =10
|
|
15
|
+
2024-10-17 09:15:16,588 INFO o.a.j.JMeter: Default Locale=English (EN)
|
|
16
|
+
2024-10-17 09:15:16,588 INFO o.a.j.JMeter: JMeter Locale=English (EN)
|
|
17
|
+
2024-10-17 09:15:16,588 INFO o.a.j.JMeter: JMeterHome=/opt/homebrew/Cellar/jmeter/5.6.3/libexec
|
|
18
|
+
2024-10-17 09:15:16,588 INFO o.a.j.JMeter: user.dir =/Users/jeanluis.urena/Projects/jmeter_perf/example
|
|
19
|
+
2024-10-17 09:15:16,588 INFO o.a.j.JMeter: PWD =/Users/jeanluis.urena/Projects/jmeter_perf/example
|
|
20
|
+
2024-10-17 09:15:16,591 INFO o.a.j.JMeter: IP: 192.168.1.235 Name: Jean Luis X9CK0310Y7 FullName: jeanluick0310y7.fios-router.home
|
|
21
|
+
2024-10-17 09:15:16,598 INFO o.a.j.s.FileServer: Default base='/Users/jeanluis.urena/Projects/jmeter_perf/example'
|
|
22
|
+
2024-10-17 09:15:16,599 INFO o.a.j.s.FileServer: Set new base='/Users/jeanluis.urena/Projects/jmeter_perf/example'
|
|
23
|
+
2024-10-17 09:15:16,704 INFO o.a.j.s.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2
|
|
24
|
+
2024-10-17 09:15:16,731 INFO o.a.j.s.SaveService: Using SaveService properties version 5.0
|
|
25
|
+
2024-10-17 09:15:16,733 INFO o.a.j.s.SaveService: Using SaveService properties file encoding UTF-8
|
|
26
|
+
2024-10-17 09:15:16,734 INFO o.a.j.s.SaveService: Loading file: slow.jmx
|
|
27
|
+
2024-10-17 09:15:16,773 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/html is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
|
|
28
|
+
2024-10-17 09:15:16,773 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xhtml+xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
|
|
29
|
+
2024-10-17 09:15:16,773 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
|
|
30
|
+
2024-10-17 09:15:16,773 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
|
|
31
|
+
2024-10-17 09:15:16,773 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
|
|
32
|
+
2024-10-17 09:15:16,773 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/css is org.apache.jmeter.protocol.http.parser.CssParser
|
|
33
|
+
2024-10-17 09:15:16,776 INFO o.a.j.JMeter: Creating summariser <summary>
|
|
34
|
+
2024-10-17 09:15:16,786 INFO o.a.j.e.StandardJMeterEngine: Running the test!
|
|
35
|
+
2024-10-17 09:15:16,786 INFO o.a.j.s.SampleEvent: List of sample_variables: []
|
|
36
|
+
2024-10-17 09:15:16,786 INFO o.a.j.s.SampleEvent: List of sample_variables: []
|
|
37
|
+
2024-10-17 09:15:16,788 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.'
|
|
38
|
+
2024-10-17 09:15:16,788 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must not contain the string: '.gui.'
|
|
39
|
+
2024-10-17 09:15:16,818 INFO o.a.j.r.ClassFinder: Will scan jar /opt/homebrew/Cellar/jmeter/5.6.3/libexec/lib/ext/jmeter-plugins-manager-1.10.jar with filter ExtendsClassFilter [parents=[interface org.apache.jmeter.functions.Function], inner=false, contains=null, notContains=null]. Consider exposing JMeter plugins via META-INF/services, and add JMeter-Skip-Class-Scanning=true manifest attribute so JMeter can skip classfile scanning
|
|
40
|
+
2024-10-17 09:15:16,859 INFO o.a.j.r.ClassFinder: Will scan jar /opt/homebrew/Cellar/jmeter/5.6.3/libexec/lib/ext/jmeter-plugins-cohendeffectsize-1.0.0.jar with filter ExtendsClassFilter [parents=[interface org.apache.jmeter.functions.Function], inner=false, contains=null, notContains=null]. Consider exposing JMeter plugins via META-INF/services, and add JMeter-Skip-Class-Scanning=true manifest attribute so JMeter can skip classfile scanning
|
|
41
|
+
2024-10-17 09:15:16,863 INFO o.a.j.JMeter: Running test (1729170916863)
|
|
42
|
+
2024-10-17 09:15:16,872 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : ThreadGroup
|
|
43
|
+
2024-10-17 09:15:16,872 INFO o.a.j.e.StandardJMeterEngine: Starting 10 threads for group ThreadGroup.
|
|
44
|
+
2024-10-17 09:15:16,872 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
|
|
45
|
+
2024-10-17 09:15:16,873 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=10 ramp-up=5 delayedStart=true
|
|
46
|
+
2024-10-17 09:15:16,873 INFO o.a.j.t.ThreadGroup: Started thread group number 1
|
|
47
|
+
2024-10-17 09:15:16,873 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
|
|
48
|
+
2024-10-17 09:15:16,873 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
|
|
49
|
+
2024-10-17 09:15:16,874 INFO o.a.j.r.Summariser: summary = 0 in 00:00:00 = ******/s Avg: 0 Min: 9223372036854775807 Max: -9223372036854775808 Err: 0 (0.00%)
|
|
File without changes
|
data/lib/Rakefile
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element AccessLogSampler
|
|
4
|
+
# @param params [Hash] Parameters for the AccessLogSampler element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the AccessLogSampler element
|
|
6
|
+
# @return [JmeterPerf::AccessLogSampler], 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#accesslogsampler
|
|
8
|
+
def access_log_sampler(params = {}, &)
|
|
9
|
+
node = AccessLogSampler.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class AccessLogSampler
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "AccessLogSampler" : (params[:name] || "AccessLogSampler")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<AccessLogSampler guiclass="TestBeanGUI" testclass="AccessLogSampler" testname="#{testname}" enabled="true">
|
|
22
|
+
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
|
|
23
|
+
<collectionProp name="Arguments.arguments"/>
|
|
24
|
+
</elementProp>
|
|
25
|
+
<stringProp name="domain"/>
|
|
26
|
+
<boolProp name="imageParsing">false</boolProp>
|
|
27
|
+
<stringProp name="logFile"/>
|
|
28
|
+
<stringProp name="parserClassName">org.apache.jmeter.protocol.http.util.accesslog.TCLogParser</stringProp>
|
|
29
|
+
<stringProp name="portString"/>
|
|
30
|
+
</AccessLogSampler>
|
|
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,61 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element AggregateGraph
|
|
4
|
+
# @param params [Hash] Parameters for the AggregateGraph element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the AggregateGraph element
|
|
6
|
+
# @return [JmeterPerf::AggregateGraph], 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#aggregategraph
|
|
8
|
+
def aggregate_graph(params = {}, &)
|
|
9
|
+
node = AggregateGraph.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class AggregateGraph
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "AggregateGraph" : (params[:name] || "AggregateGraph")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<ResultCollector guiclass="StatGraphVisualizer" 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,61 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element AggregateReport
|
|
4
|
+
# @param params [Hash] Parameters for the AggregateReport element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the AggregateReport element
|
|
6
|
+
# @return [JmeterPerf::AggregateReport], 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#aggregatereport
|
|
8
|
+
def aggregate_report(params = {}, &)
|
|
9
|
+
node = AggregateReport.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class AggregateReport
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "AggregateReport" : (params[:name] || "AggregateReport")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<ResultCollector guiclass="StatVisualizer" 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,47 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element AJP13Sampler
|
|
4
|
+
# @param params [Hash] Parameters for the AJP13Sampler element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the AJP13Sampler element
|
|
6
|
+
# @return [JmeterPerf::AJP13Sampler], 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#ajp13sampler
|
|
8
|
+
def ajp13_sampler(params = {}, &)
|
|
9
|
+
node = AJP13Sampler.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class AJP13Sampler
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "AJP13Sampler" : (params[:name] || "AJP13Sampler")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<AjpSampler guiclass="AjpSamplerGui" testclass="AjpSampler" 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
|
+
</AjpSampler>
|
|
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,61 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element AssertionResults
|
|
4
|
+
# @param params [Hash] Parameters for the AssertionResults element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the AssertionResults element
|
|
6
|
+
# @return [JmeterPerf::AssertionResults], 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#assertionresults
|
|
8
|
+
def assertion_results(params = {}, &)
|
|
9
|
+
node = AssertionResults.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class AssertionResults
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "AssertionResults" : (params[:name] || "AssertionResults")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<ResultCollector guiclass="AssertionVisualizer" 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,34 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element BeanShellAssertion
|
|
4
|
+
# @param params [Hash] Parameters for the BeanShellAssertion element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the BeanShellAssertion element
|
|
6
|
+
# @return [JmeterPerf::BeanShellAssertion], 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#beanshellassertion
|
|
8
|
+
def bean_shell_assertion(params = {}, &)
|
|
9
|
+
node = BeanShellAssertion.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class BeanShellAssertion
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "BeanShellAssertion" : (params[:name] || "BeanShellAssertion")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="BeanShellAssertion.query"/>
|
|
23
|
+
<stringProp name="BeanShellAssertion.filename"/>
|
|
24
|
+
<stringProp name="BeanShellAssertion.parameters"/>
|
|
25
|
+
<boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
|
|
26
|
+
</BeanShellAssertion>
|
|
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,34 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element BeanShellListener
|
|
4
|
+
# @param params [Hash] Parameters for the BeanShellListener element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the BeanShellListener element
|
|
6
|
+
# @return [JmeterPerf::BeanShellListener], 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#beanshelllistener
|
|
8
|
+
def bean_shell_listener(params = {}, &)
|
|
9
|
+
node = BeanShellListener.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class BeanShellListener
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "BeanShellListener" : (params[:name] || "BeanShellListener")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<BeanShellListener guiclass="TestBeanGUI" testclass="BeanShellListener" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="filename"/>
|
|
23
|
+
<stringProp name="parameters"/>
|
|
24
|
+
<boolProp name="resetInterpreter">false</boolProp>
|
|
25
|
+
<stringProp name="script"/>
|
|
26
|
+
</BeanShellListener>
|
|
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,34 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element BeanShellPostprocessor
|
|
4
|
+
# @param params [Hash] Parameters for the BeanShellPostprocessor element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the BeanShellPostprocessor element
|
|
6
|
+
# @return [JmeterPerf::BeanShellPostprocessor], 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#beanshellpostprocessor
|
|
8
|
+
def bean_shell_postprocessor(params = {}, &)
|
|
9
|
+
node = BeanShellPostprocessor.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class BeanShellPostprocessor
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "BeanShellPostprocessor" : (params[:name] || "BeanShellPostprocessor")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="filename"/>
|
|
23
|
+
<stringProp name="parameters"/>
|
|
24
|
+
<boolProp name="resetInterpreter">false</boolProp>
|
|
25
|
+
<stringProp name="script"/>
|
|
26
|
+
</BeanShellPostProcessor>
|
|
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,34 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element BeanShellPreprocessor
|
|
4
|
+
# @param params [Hash] Parameters for the BeanShellPreprocessor element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the BeanShellPreprocessor element
|
|
6
|
+
# @return [JmeterPerf::BeanShellPreprocessor], 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#beanshellpreprocessor
|
|
8
|
+
def bean_shell_preprocessor(params = {}, &)
|
|
9
|
+
node = BeanShellPreprocessor.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class BeanShellPreprocessor
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "BeanShellPreprocessor" : (params[:name] || "BeanShellPreprocessor")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="filename"/>
|
|
23
|
+
<stringProp name="parameters"/>
|
|
24
|
+
<boolProp name="resetInterpreter">false</boolProp>
|
|
25
|
+
<stringProp name="script"/>
|
|
26
|
+
</BeanShellPreProcessor>
|
|
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,34 @@
|
|
|
1
|
+
module JmeterPerf
|
|
2
|
+
class DSL
|
|
3
|
+
# DSL method synonymous with the JMeter Element BeanShellSampler
|
|
4
|
+
# @param params [Hash] Parameters for the BeanShellSampler element (default: `{}`).
|
|
5
|
+
# @yield block to attach to the BeanShellSampler element
|
|
6
|
+
# @return [JmeterPerf::BeanShellSampler], 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#beanshellsampler
|
|
8
|
+
def bean_shell_sampler(params = {}, &)
|
|
9
|
+
node = BeanShellSampler.new(params)
|
|
10
|
+
attach_node(node, &)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class BeanShellSampler
|
|
14
|
+
attr_accessor :doc
|
|
15
|
+
include JmeterPerf::Helpers::XmlDocumentUpdater
|
|
16
|
+
|
|
17
|
+
def initialize(params = {})
|
|
18
|
+
testname = params.is_a?(Array) ? "BeanShellSampler" : (params[:name] || "BeanShellSampler")
|
|
19
|
+
@doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
|
|
20
|
+
<<~EOS
|
|
21
|
+
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="#{testname}" enabled="true">
|
|
22
|
+
<stringProp name="BeanShellSampler.query"/>
|
|
23
|
+
<stringProp name="BeanShellSampler.filename"/>
|
|
24
|
+
<stringProp name="BeanShellSampler.parameters"/>
|
|
25
|
+
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
|
|
26
|
+
</BeanShellSampler>
|
|
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
|