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,31 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element ModuleController
4
+ # @param params [Hash] Parameters for the ModuleController element (default: `{}`).
5
+ # @yield block to attach to the ModuleController element
6
+ # @return [JmeterPerf::ModuleController], 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#modulecontroller
8
+ def module_controller(params = {}, &)
9
+ node = ModuleController.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class ModuleController
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "ModuleController" : (params[:name] || "ModuleController")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="#{testname}" enabled="true">
22
+ <collectionProp name="ModuleController.node_path"/>
23
+ </ModuleController>
24
+ EOS
25
+ ))
26
+ update params
27
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,61 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element MonitorResults
4
+ # @param params [Hash] Parameters for the MonitorResults element (default: `{}`).
5
+ # @yield block to attach to the MonitorResults element
6
+ # @return [JmeterPerf::MonitorResults], 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#monitorresults
8
+ def monitor_results(params = {}, &)
9
+ node = MonitorResults.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class MonitorResults
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "MonitorResults" : (params[:name] || "MonitorResults")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <ResultCollector guiclass="MonitorHealthVisualizer" 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,29 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element OnceOnlyController
4
+ # @param params [Hash] Parameters for the OnceOnlyController element (default: `{}`).
5
+ # @yield block to attach to the OnceOnlyController element
6
+ # @return [JmeterPerf::OnceOnlyController], 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#onceonlycontroller
8
+ def once_only_controller(params = {}, &)
9
+ node = OnceOnlyController.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class OnceOnlyController
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "OnceOnlyController" : (params[:name] || "OnceOnlyController")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="#{testname}" enabled="true"/>
22
+ EOS
23
+ ))
24
+ update params
25
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,40 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element OSProcessSampler
4
+ # @param params [Hash] Parameters for the OSProcessSampler element (default: `{}`).
5
+ # @yield block to attach to the OSProcessSampler element
6
+ # @return [JmeterPerf::OSProcessSampler], 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#osprocesssampler
8
+ def os_process_sampler(params = {}, &)
9
+ node = OSProcessSampler.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class OSProcessSampler
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "OSProcessSampler" : (params[:name] || "OSProcessSampler")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <SystemSampler guiclass="SystemSamplerGui" testclass="SystemSampler" testname="#{testname}" enabled="true">
22
+ <boolProp name="SystemSampler.checkReturnCode">false</boolProp>
23
+ <stringProp name="SystemSampler.expectedReturnCode">0</stringProp>
24
+ <stringProp name="SystemSampler.command"/>
25
+ <elementProp name="SystemSampler.arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="#{testname}" enabled="true">
26
+ <collectionProp name="Arguments.arguments"/>
27
+ </elementProp>
28
+ <elementProp name="SystemSampler.environment" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="#{testname}" enabled="true">
29
+ <collectionProp name="Arguments.arguments"/>
30
+ </elementProp>
31
+ <stringProp name="SystemSampler.directory"/>
32
+ </SystemSampler>
33
+ EOS
34
+ ))
35
+ update params
36
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,32 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element PoissonRandomTimer
4
+ # @param params [Hash] Parameters for the PoissonRandomTimer element (default: `{}`).
5
+ # @yield block to attach to the PoissonRandomTimer element
6
+ # @return [JmeterPerf::PoissonRandomTimer], 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#poissonrandomtimer
8
+ def poisson_random_timer(params = {}, &)
9
+ node = PoissonRandomTimer.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class PoissonRandomTimer
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "PoissonRandomTimer" : (params[:name] || "PoissonRandomTimer")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <PoissonRandomTimer guiclass="PoissonRandomTimerGui" testclass="PoissonRandomTimer" testname="#{testname}" enabled="true">
22
+ <stringProp name="ConstantTimer.delay">300</stringProp>
23
+ <stringProp name="RandomTimer.range">100</stringProp>
24
+ </PoissonRandomTimer>
25
+ EOS
26
+ ))
27
+ update params
28
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,31 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element RandomController
4
+ # @param params [Hash] Parameters for the RandomController element (default: `{}`).
5
+ # @yield block to attach to the RandomController element
6
+ # @return [JmeterPerf::RandomController], 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#randomcontroller
8
+ def random_controller(params = {}, &)
9
+ node = RandomController.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class RandomController
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "RandomController" : (params[:name] || "RandomController")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <RandomController guiclass="RandomControlGui" testclass="RandomController" testname="#{testname}" enabled="true">
22
+ <intProp name="InterleaveControl.style">1</intProp>
23
+ </RandomController>
24
+ EOS
25
+ ))
26
+ update params
27
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,29 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element RandomOrderController
4
+ # @param params [Hash] Parameters for the RandomOrderController element (default: `{}`).
5
+ # @yield block to attach to the RandomOrderController element
6
+ # @return [JmeterPerf::RandomOrderController], 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#randomordercontroller
8
+ def random_order_controller(params = {}, &)
9
+ node = RandomOrderController.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class RandomOrderController
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "RandomOrderController" : (params[:name] || "RandomOrderController")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <RandomOrderController guiclass="RandomOrderControllerGui" testclass="RandomOrderController" testname="#{testname}" enabled="true"/>
22
+ EOS
23
+ ))
24
+ update params
25
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,36 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element RandomVariable
4
+ # @param params [Hash] Parameters for the RandomVariable element (default: `{}`).
5
+ # @yield block to attach to the RandomVariable element
6
+ # @return [JmeterPerf::RandomVariable], 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#randomvariable
8
+ def random_variable(params = {}, &)
9
+ node = RandomVariable.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class RandomVariable
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "RandomVariable" : (params[:name] || "RandomVariable")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <RandomVariableConfig guiclass="TestBeanGUI" testclass="RandomVariableConfig" testname="#{testname}" enabled="true">
22
+ <stringProp name="maximumValue"/>
23
+ <stringProp name="minimumValue">1</stringProp>
24
+ <stringProp name="outputFormat"/>
25
+ <boolProp name="perThread">false</boolProp>
26
+ <stringProp name="randomSeed"/>
27
+ <stringProp name="variableName"/>
28
+ </RandomVariableConfig>
29
+ EOS
30
+ ))
31
+ update params
32
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,29 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element RecordingController
4
+ # @param params [Hash] Parameters for the RecordingController element (default: `{}`).
5
+ # @yield block to attach to the RecordingController element
6
+ # @return [JmeterPerf::RecordingController], 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#recordingcontroller
8
+ def recording_controller(params = {}, &)
9
+ node = RecordingController.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class RecordingController
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "RecordingController" : (params[:name] || "RecordingController")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <RecordingController guiclass="RecordController" testclass="RecordingController" testname="#{testname}" enabled="true"/>
22
+ EOS
23
+ ))
24
+ update params
25
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,33 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element RegExUserParameters
4
+ # @param params [Hash] Parameters for the RegExUserParameters element (default: `{}`).
5
+ # @yield block to attach to the RegExUserParameters element
6
+ # @return [JmeterPerf::RegExUserParameters], 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#regexuserparameters
8
+ def reg_ex_user_parameters(params = {}, &)
9
+ node = RegExUserParameters.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class RegExUserParameters
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "RegExUserParameters" : (params[:name] || "RegExUserParameters")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <RegExUserParameters guiclass="RegExUserParametersGui" testclass="RegExUserParameters" testname="#{testname}" enabled="true">
22
+ <stringProp name="RegExUserParameters.regex_ref_name"/>
23
+ <stringProp name="RegExUserParameters.param_names_gr_nr"/>
24
+ <stringProp name="RegExUserParameters.param_values_gr_nr"/>
25
+ </RegExUserParameters>
26
+ EOS
27
+ ))
28
+ update params
29
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,38 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element RegularExpressionExtractor
4
+ # @param params [Hash] Parameters for the RegularExpressionExtractor element (default: `{}`).
5
+ # @yield block to attach to the RegularExpressionExtractor element
6
+ # @return [JmeterPerf::RegularExpressionExtractor], 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#regularexpressionextractor
8
+ def regular_expression_extractor(params = {}, &)
9
+ node = RegularExpressionExtractor.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class RegularExpressionExtractor
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "RegularExpressionExtractor" : (params[:name] || "RegularExpressionExtractor")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="#{testname}" enabled="true">
22
+ <stringProp name="RegexExtractor.useHeaders">false</stringProp>
23
+ <stringProp name="RegexExtractor.refname"/>
24
+ <stringProp name="RegexExtractor.regex"/>
25
+ <stringProp name="RegexExtractor.template"/>
26
+ <stringProp name="RegexExtractor.default"/>
27
+ <stringProp name="RegexExtractor.match_number"/>
28
+ <stringProp name="Sample.scope">all</stringProp>
29
+ <boolProp name="RegexExtractor.default_empty_value"/>
30
+ </RegexExtractor>
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,37 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element ResponseAssertion
4
+ # @param params [Hash] Parameters for the ResponseAssertion element (default: `{}`).
5
+ # @yield block to attach to the ResponseAssertion element
6
+ # @return [JmeterPerf::ResponseAssertion], 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#responseassertion
8
+ def response_assertion(params = {}, &)
9
+ node = ResponseAssertion.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class ResponseAssertion
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "ResponseAssertion" : (params[:name] || "ResponseAssertion")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="#{testname}" enabled="true">
22
+ <collectionProp name="Asserion.test_strings">
23
+ <stringProp name="0"/>
24
+ </collectionProp>
25
+ <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
26
+ <boolProp name="Assertion.assume_success">false</boolProp>
27
+ <intProp name="Assertion.test_type">16</intProp>
28
+ <stringProp name="Assertion.scope">all</stringProp>
29
+ </ResponseAssertion>
30
+ EOS
31
+ ))
32
+ update params
33
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,61 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element ResponseTimeGraph
4
+ # @param params [Hash] Parameters for the ResponseTimeGraph element (default: `{}`).
5
+ # @yield block to attach to the ResponseTimeGraph element
6
+ # @return [JmeterPerf::ResponseTimeGraph], 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#responsetimegraph
8
+ def response_time_graph(params = {}, &)
9
+ node = ResponseTimeGraph.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class ResponseTimeGraph
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "ResponseTimeGraph" : (params[:name] || "ResponseTimeGraph")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <ResultCollector guiclass="RespTimeGraphVisualizer" 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,31 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element ResultStatusActionHandler
4
+ # @param params [Hash] Parameters for the ResultStatusActionHandler element (default: `{}`).
5
+ # @yield block to attach to the ResultStatusActionHandler element
6
+ # @return [JmeterPerf::ResultStatusActionHandler], 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#resultstatusactionhandler
8
+ def result_status_action_handler(params = {}, &)
9
+ node = ResultStatusActionHandler.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class ResultStatusActionHandler
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "ResultStatusActionHandler" : (params[:name] || "ResultStatusActionHandler")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <ResultAction guiclass="ResultActionGui" testclass="ResultAction" testname="#{testname}" enabled="true">
22
+ <intProp name="OnError.action">0</intProp>
23
+ </ResultAction>
24
+ EOS
25
+ ))
26
+ update params
27
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element RuntimeController
4
+ # @param params [Hash] Parameters for the RuntimeController element (default: `{}`).
5
+ # @yield block to attach to the RuntimeController element
6
+ # @return [JmeterPerf::RuntimeController], 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#runtimecontroller
8
+ def runtime_controller(params = {}, &)
9
+ node = RuntimeController.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class RuntimeController
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "RuntimeController" : (params[:name] || "RuntimeController")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <RunTime guiclass="RunTimeGui" testclass="RunTime" testname="#{testname}" enabled="true">
22
+ <stringProp name="RunTime.seconds">1</stringProp>
23
+ </RunTime>
24
+ EOS
25
+ ))
26
+ update params
27
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,35 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element SaveResponsesToAFile
4
+ # @param params [Hash] Parameters for the SaveResponsesToAFile element (default: `{}`).
5
+ # @yield block to attach to the SaveResponsesToAFile element
6
+ # @return [JmeterPerf::SaveResponsesToAFile], 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#saveresponsestoafile
8
+ def save_responses_to_a_file(params = {}, &)
9
+ node = SaveResponsesToAFile.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class SaveResponsesToAFile
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "SaveResponsesToAFile" : (params[:name] || "SaveResponsesToAFile")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="#{testname}" enabled="true">
22
+ <stringProp name="FileSaver.filename"/>
23
+ <boolProp name="FileSaver.errorsonly">false</boolProp>
24
+ <boolProp name="FileSaver.skipautonumber">false</boolProp>
25
+ <boolProp name="FileSaver.skipsuffix">false</boolProp>
26
+ <boolProp name="FileSaver.successonly">false</boolProp>
27
+ </ResultSaver>
28
+ EOS
29
+ ))
30
+ update params
31
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,29 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element SimpleConfigElement
4
+ # @param params [Hash] Parameters for the SimpleConfigElement element (default: `{}`).
5
+ # @yield block to attach to the SimpleConfigElement element
6
+ # @return [JmeterPerf::SimpleConfigElement], 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#simpleconfigelement
8
+ def simple_config_element(params = {}, &)
9
+ node = SimpleConfigElement.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class SimpleConfigElement
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "SimpleConfigElement" : (params[:name] || "SimpleConfigElement")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <ConfigTestElement guiclass="SimpleConfigGui" testclass="ConfigTestElement" testname="#{testname}" enabled="true"/>
22
+ EOS
23
+ ))
24
+ update params
25
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
26
+ end
27
+ end
28
+ end
29
+ end