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.
Files changed (275) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +19 -0
  4. data/.standard.yml +4 -0
  5. data/CHANGELOG.md +18 -0
  6. data/DSL.md +235 -0
  7. data/README.md +24 -0
  8. data/Rakefile +12 -0
  9. data/example/Gemfile +39 -0
  10. data/example/Gemfile.lock +232 -0
  11. data/example/README.md +3 -0
  12. data/example/Rakefile +6 -0
  13. data/example/app/controllers/application_controller.rb +2 -0
  14. data/example/app/controllers/test_controller.rb +15 -0
  15. data/example/bin/bundle +109 -0
  16. data/example/bin/docker-entrypoint +8 -0
  17. data/example/bin/rails +4 -0
  18. data/example/bin/rake +4 -0
  19. data/example/bin/setup +33 -0
  20. data/example/config/application.rb +44 -0
  21. data/example/config/boot.rb +3 -0
  22. data/example/config/credentials.yml.enc +1 -0
  23. data/example/config/database.yml +25 -0
  24. data/example/config/environment.rb +5 -0
  25. data/example/config/environments/development.rb +64 -0
  26. data/example/config/environments/production.rb +82 -0
  27. data/example/config/environments/test.rb +61 -0
  28. data/example/config/initializers/cors.rb +16 -0
  29. data/example/config/initializers/filter_parameter_logging.rb +8 -0
  30. data/example/config/initializers/inflections.rb +16 -0
  31. data/example/config/locales/en.yml +31 -0
  32. data/example/config/puma.rb +35 -0
  33. data/example/config/routes.rb +5 -0
  34. data/example/config.ru +7 -0
  35. data/example/fast.log +49 -0
  36. data/example/jmeter.log +28 -0
  37. data/example/lib/tasks/test.rake +40 -0
  38. data/example/log/.keep +0 -0
  39. data/example/public/robots.txt +1 -0
  40. data/example/random.log +49 -0
  41. data/example/slow.log +49 -0
  42. data/example/vendor/.keep +0 -0
  43. data/lib/Rakefile +4 -0
  44. data/lib/jmeter_perf/dsl/access_log_sampler.rb +38 -0
  45. data/lib/jmeter_perf/dsl/aggregate_graph.rb +61 -0
  46. data/lib/jmeter_perf/dsl/aggregate_report.rb +61 -0
  47. data/lib/jmeter_perf/dsl/ajp13_sampler.rb +47 -0
  48. data/lib/jmeter_perf/dsl/assertion_results.rb +61 -0
  49. data/lib/jmeter_perf/dsl/bean_shell_assertion.rb +34 -0
  50. data/lib/jmeter_perf/dsl/bean_shell_listener.rb +34 -0
  51. data/lib/jmeter_perf/dsl/bean_shell_postprocessor.rb +34 -0
  52. data/lib/jmeter_perf/dsl/bean_shell_preprocessor.rb +34 -0
  53. data/lib/jmeter_perf/dsl/bean_shell_sampler.rb +34 -0
  54. data/lib/jmeter_perf/dsl/bean_shell_timer.rb +34 -0
  55. data/lib/jmeter_perf/dsl/bsf_assertion.rb +34 -0
  56. data/lib/jmeter_perf/dsl/bsf_listener.rb +34 -0
  57. data/lib/jmeter_perf/dsl/bsf_postprocessor.rb +34 -0
  58. data/lib/jmeter_perf/dsl/bsf_preprocessor.rb +34 -0
  59. data/lib/jmeter_perf/dsl/bsf_sampler.rb +34 -0
  60. data/lib/jmeter_perf/dsl/bsf_timer.rb +34 -0
  61. data/lib/jmeter_perf/dsl/compare_assertion.rb +33 -0
  62. data/lib/jmeter_perf/dsl/comparison_assertion_visualizer.rb +61 -0
  63. data/lib/jmeter_perf/dsl/constant_throughput_timer.rb +32 -0
  64. data/lib/jmeter_perf/dsl/constant_timer.rb +31 -0
  65. data/lib/jmeter_perf/dsl/counter.rb +37 -0
  66. data/lib/jmeter_perf/dsl/css_jquery_extractor.rb +37 -0
  67. data/lib/jmeter_perf/dsl/csv_data_set_config.rb +39 -0
  68. data/lib/jmeter_perf/dsl/debug_postprocessor.rb +34 -0
  69. data/lib/jmeter_perf/dsl/debug_sampler.rb +33 -0
  70. data/lib/jmeter_perf/dsl/distribution_graphalpha.rb +61 -0
  71. data/lib/jmeter_perf/dsl/duration_assertion.rb +31 -0
  72. data/lib/jmeter_perf/dsl/for_each_controller.rb +33 -0
  73. data/lib/jmeter_perf/dsl/ftp_request.rb +40 -0
  74. data/lib/jmeter_perf/dsl/ftp_request_defaults.rb +38 -0
  75. data/lib/jmeter_perf/dsl/gaussian_random_timer.rb +32 -0
  76. data/lib/jmeter_perf/dsl/generate_summary_results.rb +29 -0
  77. data/lib/jmeter_perf/dsl/graph_results.rb +61 -0
  78. data/lib/jmeter_perf/dsl/html_assertion.rb +36 -0
  79. data/lib/jmeter_perf/dsl/html_link_parser.rb +29 -0
  80. data/lib/jmeter_perf/dsl/html_parameter_mask.rb +38 -0
  81. data/lib/jmeter_perf/dsl/http_authorization_manager.rb +39 -0
  82. data/lib/jmeter_perf/dsl/http_cache_manager.rb +32 -0
  83. data/lib/jmeter_perf/dsl/http_cookie_manager.rb +34 -0
  84. data/lib/jmeter_perf/dsl/http_header_manager.rb +36 -0
  85. data/lib/jmeter_perf/dsl/http_request.rb +47 -0
  86. data/lib/jmeter_perf/dsl/http_request_defaults.rb +53 -0
  87. data/lib/jmeter_perf/dsl/http_url_rewriting_modifier.rb +36 -0
  88. data/lib/jmeter_perf/dsl/if_controller.rb +33 -0
  89. data/lib/jmeter_perf/dsl/include_controller.rb +31 -0
  90. data/lib/jmeter_perf/dsl/j_unit_request.rb +43 -0
  91. data/lib/jmeter_perf/dsl/java_request.rb +75 -0
  92. data/lib/jmeter_perf/dsl/java_request_defaults.rb +75 -0
  93. data/lib/jmeter_perf/dsl/jdbc_connection_configuration.rb +43 -0
  94. data/lib/jmeter_perf/dsl/jdbc_postprocessor.rb +39 -0
  95. data/lib/jmeter_perf/dsl/jdbc_preprocessor.rb +39 -0
  96. data/lib/jmeter_perf/dsl/jdbc_request.rb +39 -0
  97. data/lib/jmeter_perf/dsl/jms_pointto_point.rb +47 -0
  98. data/lib/jmeter_perf/dsl/jms_publisher.rb +49 -0
  99. data/lib/jmeter_perf/dsl/jms_subscriber.rb +41 -0
  100. data/lib/jmeter_perf/dsl/json_path_postprocessor.rb +33 -0
  101. data/lib/jmeter_perf/dsl/jsr223_assertion.rb +35 -0
  102. data/lib/jmeter_perf/dsl/jsr223_listener.rb +35 -0
  103. data/lib/jmeter_perf/dsl/jsr223_postprocessor.rb +35 -0
  104. data/lib/jmeter_perf/dsl/jsr223_preprocessor.rb +35 -0
  105. data/lib/jmeter_perf/dsl/jsr223_sampler.rb +35 -0
  106. data/lib/jmeter_perf/dsl/jsr223_timer.rb +35 -0
  107. data/lib/jmeter_perf/dsl/keystore_configuration.rb +34 -0
  108. data/lib/jmeter_perf/dsl/ldap_extended_request.rb +48 -0
  109. data/lib/jmeter_perf/dsl/ldap_extended_request_defaults.rb +48 -0
  110. data/lib/jmeter_perf/dsl/ldap_request.rb +41 -0
  111. data/lib/jmeter_perf/dsl/ldap_request_defaults.rb +45 -0
  112. data/lib/jmeter_perf/dsl/login_config_element.rb +32 -0
  113. data/lib/jmeter_perf/dsl/loop_controller.rb +32 -0
  114. data/lib/jmeter_perf/dsl/mail_reader_sampler.rb +43 -0
  115. data/lib/jmeter_perf/dsl/mailer_visualizer.rb +70 -0
  116. data/lib/jmeter_perf/dsl/md5_hex_assertion.rb +31 -0
  117. data/lib/jmeter_perf/dsl/module_controller.rb +31 -0
  118. data/lib/jmeter_perf/dsl/monitor_results.rb +61 -0
  119. data/lib/jmeter_perf/dsl/once_only_controller.rb +29 -0
  120. data/lib/jmeter_perf/dsl/os_process_sampler.rb +40 -0
  121. data/lib/jmeter_perf/dsl/poisson_random_timer.rb +32 -0
  122. data/lib/jmeter_perf/dsl/random_controller.rb +31 -0
  123. data/lib/jmeter_perf/dsl/random_order_controller.rb +29 -0
  124. data/lib/jmeter_perf/dsl/random_variable.rb +36 -0
  125. data/lib/jmeter_perf/dsl/recording_controller.rb +29 -0
  126. data/lib/jmeter_perf/dsl/reg_ex_user_parameters.rb +33 -0
  127. data/lib/jmeter_perf/dsl/regular_expression_extractor.rb +38 -0
  128. data/lib/jmeter_perf/dsl/response_assertion.rb +37 -0
  129. data/lib/jmeter_perf/dsl/response_time_graph.rb +61 -0
  130. data/lib/jmeter_perf/dsl/result_status_action_handler.rb +31 -0
  131. data/lib/jmeter_perf/dsl/runtime_controller.rb +31 -0
  132. data/lib/jmeter_perf/dsl/save_responses_to_a_file.rb +35 -0
  133. data/lib/jmeter_perf/dsl/simple_config_element.rb +29 -0
  134. data/lib/jmeter_perf/dsl/simple_controller.rb +29 -0
  135. data/lib/jmeter_perf/dsl/simple_data_writer.rb +61 -0
  136. data/lib/jmeter_perf/dsl/smime_assertion.rb +41 -0
  137. data/lib/jmeter_perf/dsl/smtp_sampler.rb +57 -0
  138. data/lib/jmeter_perf/dsl/soap_xml_rpc_request.rb +39 -0
  139. data/lib/jmeter_perf/dsl/spline_visualizer.rb +61 -0
  140. data/lib/jmeter_perf/dsl/summary_report.rb +61 -0
  141. data/lib/jmeter_perf/dsl/switch_controller.rb +31 -0
  142. data/lib/jmeter_perf/dsl/synchronizing_timer.rb +32 -0
  143. data/lib/jmeter_perf/dsl/tcp_sampler.rb +39 -0
  144. data/lib/jmeter_perf/dsl/tcp_sampler_config.rb +37 -0
  145. data/lib/jmeter_perf/dsl/test_action.rb +33 -0
  146. data/lib/jmeter_perf/dsl/test_fragment.rb +29 -0
  147. data/lib/jmeter_perf/dsl/test_plan.rb +37 -0
  148. data/lib/jmeter_perf/dsl/thread_group.rb +43 -0
  149. data/lib/jmeter_perf/dsl/throughput_controller.rb +38 -0
  150. data/lib/jmeter_perf/dsl/transaction_controller.rb +32 -0
  151. data/lib/jmeter_perf/dsl/uniform_random_timer.rb +32 -0
  152. data/lib/jmeter_perf/dsl/user_defined_variables.rb +39 -0
  153. data/lib/jmeter_perf/dsl/user_parameters.rb +36 -0
  154. data/lib/jmeter_perf/dsl/view_results_in_table.rb +61 -0
  155. data/lib/jmeter_perf/dsl/view_results_tree.rb +61 -0
  156. data/lib/jmeter_perf/dsl/while_controller.rb +31 -0
  157. data/lib/jmeter_perf/dsl/x_path_assertion.rb +37 -0
  158. data/lib/jmeter_perf/dsl/x_path_extractor.rb +37 -0
  159. data/lib/jmeter_perf/dsl/xml_assertion.rb +29 -0
  160. data/lib/jmeter_perf/dsl/xml_schema_assertion.rb +31 -0
  161. data/lib/jmeter_perf/extend/assertions/response_assertion.rb +38 -0
  162. data/lib/jmeter_perf/extend/config_elements/header_manager.rb +13 -0
  163. data/lib/jmeter_perf/extend/config_elements/http_cache_manager.rb +12 -0
  164. data/lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb +39 -0
  165. data/lib/jmeter_perf/extend/config_elements/http_request_defaults.rb +55 -0
  166. data/lib/jmeter_perf/extend/config_elements/user_defined_variables.rb +13 -0
  167. data/lib/jmeter_perf/extend/config_elements/user_parameters.rb +31 -0
  168. data/lib/jmeter_perf/extend/controllers/foreach_controller.rb +31 -0
  169. data/lib/jmeter_perf/extend/controllers/loop_controller.rb +11 -0
  170. data/lib/jmeter_perf/extend/controllers/module_controller.rb +26 -0
  171. data/lib/jmeter_perf/extend/controllers/throughput_controller.rb +15 -0
  172. data/lib/jmeter_perf/extend/controllers/transaction_controller.rb +14 -0
  173. data/lib/jmeter_perf/extend/misc/exists.rb +13 -0
  174. data/lib/jmeter_perf/extend/misc/rsync.rb +24 -0
  175. data/lib/jmeter_perf/extend/misc/uuid.rb +12 -0
  176. data/lib/jmeter_perf/extend/misc/with_helpers.rb +27 -0
  177. data/lib/jmeter_perf/extend/plugins/jmeter_plugins.rb +124 -0
  178. data/lib/jmeter_perf/extend/processors/extract.rb +27 -0
  179. data/lib/jmeter_perf/extend/processors/regular_expression_extractor.rb +27 -0
  180. data/lib/jmeter_perf/extend/samplers/http_request.rb +66 -0
  181. data/lib/jmeter_perf/extend/samplers/jms_pointtopoint.rb +23 -0
  182. data/lib/jmeter_perf/extend/samplers/soapxmlrpc_request.rb +10 -0
  183. data/lib/jmeter_perf/extend/threads/thread_group.rb +19 -0
  184. data/lib/jmeter_perf/extend/timers/constant_throughput_timer.rb +11 -0
  185. data/lib/jmeter_perf/extend/timers/random_timer.rb +14 -0
  186. data/lib/jmeter_perf/helpers/dsl_generator.rb +157 -0
  187. data/lib/jmeter_perf/helpers/fallback_content_proxy.rb +96 -0
  188. data/lib/jmeter_perf/helpers/helper.rb +63 -0
  189. data/lib/jmeter_perf/helpers/parser.rb +143 -0
  190. data/lib/jmeter_perf/helpers/running_statistics.rb +62 -0
  191. data/lib/jmeter_perf/helpers/string.rb +60 -0
  192. data/lib/jmeter_perf/helpers/user-agents.rb +42 -0
  193. data/lib/jmeter_perf/plugins/active_threads_over_time.rb +59 -0
  194. data/lib/jmeter_perf/plugins/composite_graph.rb +77 -0
  195. data/lib/jmeter_perf/plugins/console_status_logger.rb +19 -0
  196. data/lib/jmeter_perf/plugins/dummy_sampler.rb +30 -0
  197. data/lib/jmeter_perf/plugins/jmx_collector.rb +74 -0
  198. data/lib/jmeter_perf/plugins/json_path_assertion.rb +23 -0
  199. data/lib/jmeter_perf/plugins/json_path_extractor.rb +22 -0
  200. data/lib/jmeter_perf/plugins/latencies_over_time.rb +53 -0
  201. data/lib/jmeter_perf/plugins/loadosophia_uploader.rb +66 -0
  202. data/lib/jmeter_perf/plugins/perfmon_collector.rb +87 -0
  203. data/lib/jmeter_perf/plugins/redis_data_set.rb +43 -0
  204. data/lib/jmeter_perf/plugins/response_codes_per_second.rb +53 -0
  205. data/lib/jmeter_perf/plugins/response_times_distribution.rb +53 -0
  206. data/lib/jmeter_perf/plugins/response_times_over_time.rb +53 -0
  207. data/lib/jmeter_perf/plugins/response_times_percentiles.rb +54 -0
  208. data/lib/jmeter_perf/plugins/stepping_thread_group.rb +34 -0
  209. data/lib/jmeter_perf/plugins/transactions_per_second.rb +53 -0
  210. data/lib/jmeter_perf/plugins/ultimate_thread_group.rb +28 -0
  211. data/lib/jmeter_perf/plugins/variable_throughput_timer.rb +35 -0
  212. data/lib/jmeter_perf/report/comparator.rb +258 -0
  213. data/lib/jmeter_perf/report/summary.rb +268 -0
  214. data/lib/jmeter_perf/tasks/dsl.rake +19 -0
  215. data/lib/jmeter_perf/version.rb +5 -0
  216. data/lib/jmeter_perf/views/report_template.html.erb +114 -0
  217. data/lib/jmeter_perf.rb +183 -0
  218. data/lib/specifications/idl.xml +1494 -0
  219. data/sig/jmeter_perf.rbs +195 -0
  220. data/sorbet/config +5 -0
  221. data/sorbet/rbi/annotations/.gitattributes +1 -0
  222. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  223. data/sorbet/rbi/gems/.gitattributes +1 -0
  224. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  225. data/sorbet/rbi/gems/bump@0.10.0.rbi +169 -0
  226. data/sorbet/rbi/gems/byebug@11.1.3.rbi +3607 -0
  227. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3427 -0
  228. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
  229. data/sorbet/rbi/gems/docile@1.4.1.rbi +377 -0
  230. data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
  231. data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
  232. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  233. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
  234. data/sorbet/rbi/gems/method_source@1.1.0.rbi +304 -0
  235. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  236. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  237. data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
  238. data/sorbet/rbi/gems/parser@3.3.5.0.rbi +5519 -0
  239. data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
  240. data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +1151 -0
  241. data/sorbet/rbi/gems/pry@0.14.2.rbi +10076 -0
  242. data/sorbet/rbi/gems/racc@1.8.1.rbi +162 -0
  243. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  244. data/sorbet/rbi/gems/rake@13.2.1.rbi +3074 -0
  245. data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
  246. data/sorbet/rbi/gems/rbtree3@0.7.1.rbi +9 -0
  247. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
  248. data/sorbet/rbi/gems/rexml@3.3.8.rbi +4858 -0
  249. data/sorbet/rbi/gems/rspec-core@3.13.1.rbi +11132 -0
  250. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
  251. data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
  252. data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
  253. data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
  254. data/sorbet/rbi/gems/rubocop-ast@1.32.3.rbi +7054 -0
  255. data/sorbet/rbi/gems/rubocop-performance@1.21.1.rbi +9 -0
  256. data/sorbet/rbi/gems/rubocop@1.65.1.rbi +58182 -0
  257. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  258. data/sorbet/rbi/gems/simplecov-html@0.13.1.rbi +225 -0
  259. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  260. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  261. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  262. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +9 -0
  263. data/sorbet/rbi/gems/standard-performance@1.4.0.rbi +9 -0
  264. data/sorbet/rbi/gems/standard@1.40.0.rbi +926 -0
  265. data/sorbet/rbi/gems/tapioca@0.16.3.rbi +3596 -0
  266. data/sorbet/rbi/gems/tdigest@0.2.1.rbi +170 -0
  267. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  268. data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +66 -0
  269. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  270. data/sorbet/rbi/gems/yard@0.9.37.rbi +18379 -0
  271. data/sorbet/rbi/todo.rbi +31 -0
  272. data/sorbet/tapioca/config.yml +13 -0
  273. data/sorbet/tapioca/require.rb +15 -0
  274. data/tasks/dsl.rake +22 -0
  275. metadata +355 -0
@@ -0,0 +1,77 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class CompositeGraph
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ testname = params.is_a?(Array) ? "CompositeGraph" : (params[:name] || "CompositeGraph")
8
+ graph_nodes = params.collect { |g| "<stringProp name=\"\">#{g[:graph]}</stringProp>" }
9
+ metric_nodes = params.collect { |m| "<stringProp name=\"\">#{m[:metric]}</stringProp>" }
10
+
11
+ composite_collections = Nokogiri::XML(
12
+ JmeterPerf::Helpers::String.strip_heredoc(
13
+ <<-XML
14
+ <collectionProp name="COMPOSITE_CFG">
15
+ <collectionProp name="">
16
+ #{graph_nodes.join "\n"}
17
+ </collectionProp>
18
+ <collectionProp name="">
19
+ #{metric_nodes.join "\n"}
20
+ </collectionProp>
21
+ </collectionProp>
22
+ XML
23
+ )
24
+ )
25
+ @doc = Nokogiri::XML(
26
+ JmeterPerf::Helpers::String.strip_heredoc(
27
+ <<-XML
28
+ <kg.apc.jmeter.vizualizers.CompositeResultCollector guiclass="kg.apc.jmeter.vizualizers.CompositeGraphGui" testclass="kg.apc.jmeter.vizualizers.CompositeResultCollector" testname="#{testname}" enabled="true">
29
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
30
+ <objProp>
31
+ <name>saveConfig</name>
32
+ <value class="SampleSaveConfiguration">
33
+ <time>true</time>
34
+ <latency>true</latency>
35
+ <timestamp>true</timestamp>
36
+ <success>true</success>
37
+ <label>true</label>
38
+ <code>true</code>
39
+ <message>false</message>
40
+ <threadName>true</threadName>
41
+ <dataType>false</dataType>
42
+ <encoding>false</encoding>
43
+ <assertions>false</assertions>
44
+ <subresults>false</subresults>
45
+ <responseData>false</responseData>
46
+ <samplerData>false</samplerData>
47
+ <xml>false</xml>
48
+ <fieldNames>false</fieldNames>
49
+ <responseHeaders>false</responseHeaders>
50
+ <requestHeaders>false</requestHeaders>
51
+ <responseDataOnError>false</responseDataOnError>
52
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
53
+ <assertionsResultsToSave>0</assertionsResultsToSave>
54
+ <bytes>true</bytes>
55
+ <threadCounts>true</threadCounts>
56
+ <sampleCount>true</sampleCount>
57
+ </value>
58
+ </objProp>
59
+ <stringProp name="filename"></stringProp>
60
+ <longProp name="interval_grouping">500</longProp>
61
+ <boolProp name="graph_aggregated">false</boolProp>
62
+ <stringProp name="include_sample_labels"></stringProp>
63
+ <stringProp name="exclude_sample_labels"></stringProp>
64
+ <stringProp name="start_offset"></stringProp>
65
+ <stringProp name="end_offset"></stringProp>
66
+ <boolProp name="include_checkbox_state">false</boolProp>
67
+ <boolProp name="exclude_checkbox_state">false</boolProp>
68
+ #{composite_collections.root}
69
+ </kg.apc.jmeter.vizualizers.CompositeResultCollector>
70
+ XML
71
+ )
72
+ )
73
+ update params
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,19 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class ConsoleStatusLogger
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ testname = params.is_a?(Array) ? "ConsoleStatusLogger" : (params[:name] || "ConsoleStatusLogger")
8
+ @doc = Nokogiri::XML(
9
+ JmeterPerf::Helpers::String.strip_heredoc(
10
+ <<-EOF
11
+ <kg.apc.jmeter.reporters.ConsoleStatusLogger guiclass="kg.apc.jmeter.reporters.ConsoleStatusLoggerGui" testclass="kg.apc.jmeter.reporters.ConsoleStatusLogger" testname="#{testname}" enabled="true"/>
12
+ EOF
13
+ )
14
+ )
15
+ update params
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,30 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class DummySampler
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ testname = params.is_a?(Array) ? "DummySampler" : (params[:name] || "DummySampler")
8
+ @doc = Nokogiri::XML(
9
+ JmeterPerf::Helpers::String.strip_heredoc(
10
+ <<-EOF
11
+ <kg.apc.jmeter.samplers.DummySampler guiclass="kg.apc.jmeter.samplers.DummySamplerGui" testclass="kg.apc.jmeter.samplers.DummySampler" testname="#{testname}" enabled="true">
12
+ <boolProp name="WAITING">true</boolProp>
13
+ <boolProp name="SUCCESFULL">true</boolProp>
14
+ <stringProp name="RESPONSE_CODE">200</stringProp>
15
+ <stringProp name="RESPONSE_MESSAGE">OK</stringProp>
16
+ <stringProp name="REQUEST_DATA"></stringProp>
17
+ <stringProp name="RESPONSE_DATA"></stringProp>
18
+ <stringProp name="RESPONSE_TIME">0</stringProp>
19
+ <stringProp name="LATENCY">0</stringProp>
20
+ </kg.apc.jmeter.samplers.DummySampler>
21
+ EOF
22
+ )
23
+ )
24
+ upcased_params = {}
25
+ params.each { |k, v| upcased_params[k.to_s.upcase] = v }
26
+ update upcased_params
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,74 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class JMXCollector
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ params[:name] ||= "JMX Collector"
8
+ params[:jtl] ||= ""
9
+ params[:attribute_key] ||= ""
10
+
11
+ @doc = Nokogiri::XML(
12
+ JmeterPerf::Helpers::String.strip_heredoc(
13
+ <<-XML
14
+ <kg.apc.jmeter.jmxmon.JMXMonCollector guiclass="kg.apc.jmeter.vizualizers.JMXMonGui" testclass="kg.apc.jmeter.jmxmon.JMXMonCollector" testname="#{params[:name]}" enabled="true">
15
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
16
+ <objProp>
17
+ <name>saveConfig</name>
18
+ <value class="SampleSaveConfiguration">
19
+ <time>true</time>
20
+ <latency>true</latency>
21
+ <timestamp>true</timestamp>
22
+ <success>true</success>
23
+ <label>true</label>
24
+ <code>true</code>
25
+ <message>true</message>
26
+ <threadName>true</threadName>
27
+ <dataType>true</dataType>
28
+ <encoding>false</encoding>
29
+ <assertions>true</assertions>
30
+ <subresults>true</subresults>
31
+ <responseData>false</responseData>
32
+ <samplerData>false</samplerData>
33
+ <xml>false</xml>
34
+ <fieldNames>true</fieldNames>
35
+ <responseHeaders>false</responseHeaders>
36
+ <requestHeaders>false</requestHeaders>
37
+ <responseDataOnError>false</responseDataOnError>
38
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
39
+ <assertionsResultsToSave>0</assertionsResultsToSave>
40
+ <bytes>true</bytes>
41
+ <threadCounts>true</threadCounts>
42
+ <idleTime>true</idleTime>
43
+ </value>
44
+ </objProp>
45
+ <stringProp name="filename">#{params[:jtl]}</stringProp>
46
+ <longProp name="interval_grouping">1000</longProp
47
+ <boolProp name="graph_aggregated">false</boolProp>
48
+ <stringProp name="include_sample_labels"></stringProp>
49
+ <stringProp name="exclude_sample_labels"></stringProp>
50
+ <stringProp name="start_offset"></stringProp>
51
+ <stringProp name="end_offset"></stringProp>
52
+ <boolProp name="include_checkbox_state">false</boolProp>
53
+ <boolProp name="exclude_checkbox_state">false</boolProp>
54
+ <collectionProp name="samplers">
55
+ <collectionProp name="311458936">
56
+ <stringProp name="label"></stringProp>
57
+ <stringProp name="service_endpoint">service:jmx:rmi:///jndi/rmi://#{params[:host]}:#{params[:port]}/jmxrmi</stringProp>
58
+ <stringProp name="username"></stringProp>
59
+ <stringProp name="password"></stringProp>
60
+ <stringProp name="object_name">#{params[:object_name]}</stringProp>
61
+ <stringProp name="attribute_name">#{params[:attribute_name]}</stringProp>
62
+ <stringProp name="attribute_key">#{params[:attribute_key]}</stringProp>
63
+ <stringProp name="delta">false</stringProp>
64
+ <stringProp name="retry">true</stringProp>
65
+ </collectionProp>
66
+ </collectionProp>
67
+ </kg.apc.jmeter.jmxmon.JMXMonCollector>
68
+ XML
69
+ )
70
+ )
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,23 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class JsonPathAssertion
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ @doc = Nokogiri::XML(
8
+ JmeterPerf::Helpers::String.strip_heredoc(
9
+ <<-EOF
10
+ <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
11
+ <stringProp name="EXPECTED_VALUE"></stringProp>
12
+ <stringProp name="JSON_PATH"></stringProp>
13
+ <boolProp name="JSONVALIDATION">true</boolProp>
14
+ <boolProp name="INVERT">false</boolProp>
15
+ </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
16
+ EOF
17
+ )
18
+ )
19
+ update params
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class JsonPathExtractor
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ @doc = Nokogiri::XML(
8
+ JmeterPerf::Helpers::String.strip_heredoc(
9
+ <<-EOF
10
+ <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
11
+ <stringProp name="VAR"></stringProp>
12
+ <stringProp name="JSONPATH"></stringProp>
13
+ </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
14
+ EOF
15
+ )
16
+ )
17
+ update params
18
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,53 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class LatenciesOverTime
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ testname = params.is_a?(Array) ? "LatenciesOverTime" : (params[:name] || "LatenciesOverTime")
8
+ @doc = Nokogiri::XML(
9
+ JmeterPerf::Helpers::String.strip_heredoc(
10
+ <<-EOF
11
+ <kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.LatenciesOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{testname}" enabled="#{enabled(params)}">
12
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
13
+ <objProp>
14
+ <name>saveConfig</name>
15
+ <value class="SampleSaveConfiguration">
16
+ <time>true</time>
17
+ <latency>true</latency>
18
+ <timestamp>true</timestamp>
19
+ <success>true</success>
20
+ <label>true</label>
21
+ <code>true</code>
22
+ <message>true</message>
23
+ <threadName>true</threadName>
24
+ <dataType>true</dataType>
25
+ <encoding>false</encoding>
26
+ <assertions>true</assertions>
27
+ <subresults>true</subresults>
28
+ <responseData>false</responseData>
29
+ <samplerData>false</samplerData>
30
+ <xml>true</xml>
31
+ <fieldNames>false</fieldNames>
32
+ <responseHeaders>false</responseHeaders>
33
+ <requestHeaders>false</requestHeaders>
34
+ <responseDataOnError>false</responseDataOnError>
35
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
36
+ <assertionsResultsToSave>0</assertionsResultsToSave>
37
+ <bytes>true</bytes>
38
+ </value>
39
+ </objProp>
40
+ <stringProp name="filename"></stringProp>
41
+ <longProp name="interval_grouping">500</longProp>
42
+ <boolProp name="graph_aggregated">false</boolProp>
43
+ <stringProp name="include_sample_labels"></stringProp>
44
+ <stringProp name="exclude_sample_labels"></stringProp>
45
+ </kg.apc.jmeter.vizualizers.CorrectedResultCollector>
46
+ EOF
47
+ )
48
+ )
49
+ update params
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,66 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class LoadosophiaUploader
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(name = "Loadosophia.org Uploader", params = {})
7
+ params[:error_logging] ||= false
8
+ params[:filename] ||= ""
9
+ params[:project] ||= "DEFAULT"
10
+ params[:uploadToken] ||= "Invalid Token"
11
+ params[:storeDir] ||= "/tmp"
12
+ params[:color] ||= "none"
13
+ params[:title] ||= ""
14
+ params[:useOnline] ||= false
15
+
16
+ @doc = Nokogiri::XML(
17
+ JmeterPerf::Helpers::String.strip_heredoc(
18
+ <<-XML
19
+ <kg.apc.jmeter.reporters.LoadosophiaUploader guiclass="kg.apc.jmeter.reporters.LoadosophiaUploaderGui" testclass="kg.apc.jmeter.reporters.LoadosophiaUploader" testname="#{name}" enabled="#{enabled(params)}">
20
+ <boolProp name="ResultCollector.error_logging">#{params[:error_logging]}</boolProp>
21
+ <objProp>
22
+ <name>saveConfig</name>
23
+ <value class="SampleSaveConfiguration">
24
+ <time>true</time>
25
+ <latency>true</latency>
26
+ <timestamp>true</timestamp>
27
+ <success>true</success>
28
+ <label>true</label>
29
+ <code>true</code>
30
+ <message>false</message>
31
+ <threadName>true</threadName>
32
+ <dataType>false</dataType>
33
+ <encoding>false</encoding>
34
+ <assertions>false</assertions>
35
+ <subresults>false</subresults>
36
+ <responseData>false</responseData>
37
+ <samplerData>false</samplerData>
38
+ <xml>false</xml>
39
+ <fieldNames>false</fieldNames>
40
+ <responseHeaders>false</responseHeaders>
41
+ <requestHeaders>false</requestHeaders>
42
+ <responseDataOnError>false</responseDataOnError>
43
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
44
+ <assertionsResultsToSave>0</assertionsResultsToSave>
45
+ <bytes>true</bytes>
46
+ <threadCounts>true</threadCounts>
47
+ <sampleCount>true</sampleCount>
48
+ </value>
49
+ </objProp>
50
+ <stringProp name="filename">#{params[:filename]}</stringProp>
51
+ <stringProp name="project">#{params[:project]}</stringProp>
52
+ <stringProp name="uploadToken">#{params[:uploadToken]}</stringProp>
53
+ <stringProp name="storeDir">#{params[:storeDir]}</stringProp>
54
+ <stringProp name="color">#{params[:color]}</stringProp>
55
+ <stringProp name="title">#{params[:title]}</stringProp>
56
+ <boolProp name="useOnline">#{params[:useOnline]}</boolProp>
57
+ </kg.apc.jmeter.reporters.LoadosophiaUploader>
58
+ XML
59
+ )
60
+ )
61
+
62
+ # update params
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,87 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class PerfmonCollector
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+
7
+ def initialize(params = {})
8
+ @doc = Nokogiri::XML(
9
+ JmeterPerf::Helpers::String.strip_heredoc(
10
+ <<-XML
11
+ <kg.apc.jmeter.perfmon.PerfMonCollector guiclass="kg.apc.jmeter.vizualizers.PerfMonGui" testclass="kg.apc.jmeter.perfmon.PerfMonCollector" testname="#{params[:name] || "PerfmonCollector"}" enabled="true">
12
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
13
+ <objProp>
14
+ <name>saveConfig</name>
15
+ <value class="SampleSaveConfiguration">
16
+ <time>true</time>
17
+ <latency>true</latency>
18
+ <timestamp>true</timestamp>
19
+ <success>true</success>
20
+ <label>true</label>
21
+ <code>true</code>
22
+ <message>false</message>
23
+ <threadName>true</threadName>
24
+ <dataType>false</dataType>
25
+ <encoding>false</encoding>
26
+ <assertions>false</assertions>
27
+ <subresults>false</subresults>
28
+ <responseData>false</responseData>
29
+ <samplerData>false</samplerData>
30
+ <xml>#{params[:xml] || false}</xml>
31
+ <fieldNames>false</fieldNames>
32
+ <responseHeaders>false</responseHeaders>
33
+ <requestHeaders>false</requestHeaders>
34
+ <responseDataOnError>false</responseDataOnError>
35
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
36
+ <assertionsResultsToSave>0</assertionsResultsToSave>
37
+ <bytes>true</bytes>
38
+ <threadCounts>true</threadCounts>
39
+ <sampleCount>true</sampleCount>
40
+ </value>
41
+ </objProp>
42
+ <stringProp name="filename">#{params[:filename] || "perfmon.jtl"}</stringProp>
43
+ <longProp name="interval_grouping">1000</longProp>
44
+ <boolProp name="graph_aggregated">false</boolProp>
45
+ <stringProp name="include_sample_labels"></stringProp>
46
+ <stringProp name="exclude_sample_labels"></stringProp>
47
+ <stringProp name="start_offset"></stringProp>
48
+ <stringProp name="end_offset"></stringProp>
49
+ <boolProp name="include_checkbox_state">false</boolProp>
50
+ <boolProp name="exclude_checkbox_state">false</boolProp>
51
+ #{metric_connections(params).root}
52
+ </kg.apc.jmeter.perfmon.PerfMonCollector>
53
+ XML
54
+ )
55
+ )
56
+ update params
57
+ end
58
+
59
+ private
60
+
61
+ def metric_connections(params)
62
+ Nokogiri::XML(
63
+ JmeterPerf::Helpers::String.strip_heredoc(
64
+ <<-XML
65
+ <collectionProp name="metricConnections">
66
+ #{metric_nodes(params[:nodes]).join "\n"}
67
+ </collectionProp>
68
+ XML
69
+ )
70
+ )
71
+ end
72
+
73
+ def metric_nodes(nodes)
74
+ nodes.collect do |node|
75
+ %(
76
+ <collectionProp name="">
77
+ <stringProp name="">#{node[:server]}</stringProp>
78
+ <stringProp name="">#{node[:port]}</stringProp>
79
+ <stringProp name="">#{node[:metric]}</stringProp>
80
+ <stringProp name="">#{node[:parameters]}</stringProp>
81
+ </collectionProp>
82
+ )
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,43 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class RedisDataSet
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ testname = params.is_a?(Array) ? "Redis Data Set Config" : (params[:name] || "Redis Data Set Config")
8
+ params[:getMode] ||= "1" unless params[:remove] == true
9
+ @doc = Nokogiri::XML(
10
+ JmeterPerf::Helpers::String.strip_heredoc(
11
+ <<-XML
12
+ <kg.apc.jmeter.config.redis.RedisDataSet guiclass="TestBeanGUI" testclass="kg.apc.jmeter.config.redis.RedisDataSet" testname="#{testname}" enabled="true">
13
+ <stringProp name="database">0</stringProp>
14
+ <stringProp name="delimiter">,</stringProp>
15
+ <intProp name="getMode">0</intProp>
16
+ <stringProp name="host"></stringProp
17
+ <intProp name="maxActive">20</intProp>
18
+ <intProp name="maxIdle">10</intProp>
19
+ <longProp name="maxWait">30000</longProp>
20
+ <longProp name="minEvictableIdleTimeMillis">60000</longProp>
21
+ <intProp name="minIdle">0</intProp>
22
+ <intProp name="numTestsPerEvictionRun">0</intProp>
23
+ <stringProp name="password"></stringProp>
24
+ <stringProp name="port">6379</stringProp>
25
+ <stringProp name="redisKey"></stringProp>
26
+ <longProp name="softMinEvictableIdleTimeMillis">60000</longProp>
27
+ <boolProp name="testOnBorrow">false</boolProp>
28
+ <boolProp name="testOnReturn">false</boolProp>
29
+ <boolProp name="testWhileIdle">false</boolProp>
30
+ <longProp name="timeBetweenEvictionRunsMillis">30000</longProp>
31
+ <stringProp name="timeout">2000</stringProp>
32
+ <stringProp name="variableNames"></stringProp>
33
+ <intProp name="whenExhaustedAction">2</intProp>
34
+ </kg.apc.jmeter.config.redis.RedisDataSet>
35
+ XML
36
+ )
37
+ )
38
+ update params
39
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,53 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class ResponseCodesPerSecond
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ testname = params.is_a?(Array) ? "ResponseCodesPerSecond" : (params[:name] || "ResponseCodesPerSecond")
8
+ @doc = Nokogiri::XML(
9
+ JmeterPerf::Helpers::String.strip_heredoc(
10
+ <<-EOF
11
+ <kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseCodesPerSecondGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{testname}" enabled="#{enabled(params)}">
12
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
13
+ <objProp>
14
+ <name>saveConfig</name>
15
+ <value class="SampleSaveConfiguration">
16
+ <time>true</time>
17
+ <latency>true</latency>
18
+ <timestamp>true</timestamp>
19
+ <success>true</success>
20
+ <label>true</label>
21
+ <code>true</code>
22
+ <message>true</message>
23
+ <threadName>true</threadName>
24
+ <dataType>true</dataType>
25
+ <encoding>false</encoding>
26
+ <assertions>true</assertions>
27
+ <subresults>true</subresults>
28
+ <responseData>false</responseData>
29
+ <samplerData>false</samplerData>
30
+ <xml>true</xml>
31
+ <fieldNames>false</fieldNames>
32
+ <responseHeaders>false</responseHeaders>
33
+ <requestHeaders>false</requestHeaders>
34
+ <responseDataOnError>false</responseDataOnError>
35
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
36
+ <assertionsResultsToSave>0</assertionsResultsToSave>
37
+ <bytes>true</bytes>
38
+ </value>
39
+ </objProp>
40
+ <stringProp name="filename"></stringProp>
41
+ <longProp name="interval_grouping">1000</longProp>
42
+ <boolProp name="graph_aggregated">false</boolProp>
43
+ <stringProp name="include_sample_labels"></stringProp>
44
+ <stringProp name="exclude_sample_labels"></stringProp>
45
+ </kg.apc.jmeter.vizualizers.CorrectedResultCollector>
46
+ EOF
47
+ )
48
+ )
49
+ update params
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,53 @@
1
+ module JmeterPerf
2
+ module Plugins
3
+ class ResponseTimesDistribution
4
+ attr_accessor :doc
5
+ include JmeterPerf::Helpers::XmlDocumentUpdater
6
+ def initialize(params = {})
7
+ testname = params.is_a?(Array) ? "ResponseTimesDistribution" : (params[:name] || "ResponseTimesDistribution")
8
+ @doc = Nokogiri::XML(
9
+ JmeterPerf::Helpers::String.strip_heredoc(
10
+ <<-EOF
11
+ <kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesDistributionGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="#{testname}" enabled="#{enabled(params)}">
12
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
13
+ <objProp>
14
+ <name>saveConfig</name>
15
+ <value class="SampleSaveConfiguration">
16
+ <time>true</time>
17
+ <latency>true</latency>
18
+ <timestamp>true</timestamp>
19
+ <success>true</success>
20
+ <label>true</label>
21
+ <code>true</code>
22
+ <message>true</message>
23
+ <threadName>true</threadName>
24
+ <dataType>true</dataType>
25
+ <encoding>false</encoding>
26
+ <assertions>true</assertions>
27
+ <subresults>true</subresults>
28
+ <responseData>false</responseData>
29
+ <samplerData>false</samplerData>
30
+ <xml>true</xml>
31
+ <fieldNames>false</fieldNames>
32
+ <responseHeaders>false</responseHeaders>
33
+ <requestHeaders>false</requestHeaders>
34
+ <responseDataOnError>false</responseDataOnError>
35
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
36
+ <assertionsResultsToSave>0</assertionsResultsToSave>
37
+ <bytes>true</bytes>
38
+ </value>
39
+ </objProp>
40
+ <stringProp name="filename"></stringProp>
41
+ <longProp name="interval_grouping">100</longProp>
42
+ <boolProp name="graph_aggregated">false</boolProp>
43
+ <stringProp name="include_sample_labels"></stringProp>
44
+ <stringProp name="exclude_sample_labels"></stringProp>
45
+ </kg.apc.jmeter.vizualizers.CorrectedResultCollector>
46
+ EOF
47
+ )
48
+ )
49
+ update params
50
+ end
51
+ end
52
+ end
53
+ end