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,36 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element HTTPUrlRewritingModifier
4
+ # @param params [Hash] Parameters for the HTTPUrlRewritingModifier element (default: `{}`).
5
+ # @yield block to attach to the HTTPUrlRewritingModifier element
6
+ # @return [JmeterPerf::HTTPUrlRewritingModifier], 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#httpurlrewritingmodifier
8
+ def http_url_rewriting_modifier(params = {}, &)
9
+ node = HTTPUrlRewritingModifier.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class HTTPUrlRewritingModifier
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "HTTPUrlRewritingModifier" : (params[:name] || "HTTPUrlRewritingModifier")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <URLRewritingModifier guiclass="URLRewritingModifierGui" testclass="URLRewritingModifier" testname="#{testname}" enabled="true">
22
+ <stringProp name="argument_name"/>
23
+ <boolProp name="path_extension">false</boolProp>
24
+ <boolProp name="path_extension_no_equals">false</boolProp>
25
+ <boolProp name="path_extension_no_questionmark">false</boolProp>
26
+ <boolProp name="cache_value">false</boolProp>
27
+ <boolProp name="encode">false</boolProp>
28
+ </URLRewritingModifier>
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,33 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element IfController
4
+ # @param params [Hash] Parameters for the IfController element (default: `{}`).
5
+ # @yield block to attach to the IfController element
6
+ # @return [JmeterPerf::IfController], 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#ifcontroller
8
+ def if_controller(params = {}, &)
9
+ node = IfController.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class IfController
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "IfController" : (params[:name] || "IfController")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <IfController guiclass="IfControllerPanel" testclass="IfController" testname="#{testname}" enabled="true">
22
+ <stringProp name="IfController.condition"/>
23
+ <boolProp name="IfController.evaluateAll">false</boolProp>
24
+ <boolProp name="IfController.useExpression">true</boolProp>
25
+ </IfController>
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,31 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element IncludeController
4
+ # @param params [Hash] Parameters for the IncludeController element (default: `{}`).
5
+ # @yield block to attach to the IncludeController element
6
+ # @return [JmeterPerf::IncludeController], 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#includecontroller
8
+ def include_controller(params = {}, &)
9
+ node = IncludeController.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class IncludeController
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "IncludeController" : (params[:name] || "IncludeController")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <IncludeController guiclass="IncludeControllerGui" testclass="IncludeController" testname="#{testname}" enabled="true">
22
+ <stringProp name="IncludeController.includepath"/>
23
+ </IncludeController>
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,43 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JUnitRequest
4
+ # @param params [Hash] Parameters for the JUnitRequest element (default: `{}`).
5
+ # @yield block to attach to the JUnitRequest element
6
+ # @return [JmeterPerf::JUnitRequest], 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#junitrequest
8
+ def j_unit_request(params = {}, &)
9
+ node = JUnitRequest.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JUnitRequest
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JUnitRequest" : (params[:name] || "JUnitRequest")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JUnitSampler guiclass="JUnitTestSamplerGui" testclass="JUnitSampler" testname="#{testname}" enabled="true">
22
+ <stringProp name="junitSampler.classname">test.RerunTest</stringProp>
23
+ <stringProp name="junitsampler.constructorstring"/>
24
+ <stringProp name="junitsampler.method">testRerun</stringProp>
25
+ <stringProp name="junitsampler.pkg.filter"/>
26
+ <stringProp name="junitsampler.success">Test successful</stringProp>
27
+ <stringProp name="junitsampler.success.code">1000</stringProp>
28
+ <stringProp name="junitsampler.failure">Test failed</stringProp>
29
+ <stringProp name="junitsampler.failure.code">0001</stringProp>
30
+ <stringProp name="junitsampler.error">An unexpected error occured</stringProp>
31
+ <stringProp name="junitsampler.error.code">9999</stringProp>
32
+ <stringProp name="junitsampler.exec.setup">false</stringProp>
33
+ <stringProp name="junitsampler.append.error">false</stringProp>
34
+ <stringProp name="junitsampler.append.exception">false</stringProp>
35
+ </JUnitSampler>
36
+ EOS
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,75 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JavaRequest
4
+ # @param params [Hash] Parameters for the JavaRequest element (default: `{}`).
5
+ # @yield block to attach to the JavaRequest element
6
+ # @return [JmeterPerf::JavaRequest], 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#javarequest
8
+ def java_request(params = {}, &)
9
+ node = JavaRequest.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JavaRequest
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JavaRequest" : (params[:name] || "JavaRequest")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="#{testname}" enabled="true">
22
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
23
+ <collectionProp name="Arguments.arguments">
24
+ <elementProp name="Sleep_Time" elementType="Argument">
25
+ <stringProp name="Argument.name">Sleep_Time</stringProp>
26
+ <stringProp name="Argument.value">100</stringProp>
27
+ <stringProp name="Argument.metadata">=</stringProp>
28
+ </elementProp>
29
+ <elementProp name="Sleep_Mask" elementType="Argument">
30
+ <stringProp name="Argument.name">Sleep_Mask</stringProp>
31
+ <stringProp name="Argument.value">0xFF</stringProp>
32
+ <stringProp name="Argument.metadata">=</stringProp>
33
+ </elementProp>
34
+ <elementProp name="Label" elementType="Argument">
35
+ <stringProp name="Argument.name">Label</stringProp>
36
+ <stringProp name="Argument.value"/>
37
+ <stringProp name="Argument.metadata">=</stringProp>
38
+ </elementProp>
39
+ <elementProp name="ResponseCode" elementType="Argument">
40
+ <stringProp name="Argument.name">ResponseCode</stringProp>
41
+ <stringProp name="Argument.value"/>
42
+ <stringProp name="Argument.metadata">=</stringProp>
43
+ </elementProp>
44
+ <elementProp name="ResponseMessage" elementType="Argument">
45
+ <stringProp name="Argument.name">ResponseMessage</stringProp>
46
+ <stringProp name="Argument.value"/>
47
+ <stringProp name="Argument.metadata">=</stringProp>
48
+ </elementProp>
49
+ <elementProp name="Status" elementType="Argument">
50
+ <stringProp name="Argument.name">Status</stringProp>
51
+ <stringProp name="Argument.value">OK</stringProp>
52
+ <stringProp name="Argument.metadata">=</stringProp>
53
+ </elementProp>
54
+ <elementProp name="SamplerData" elementType="Argument">
55
+ <stringProp name="Argument.name">SamplerData</stringProp>
56
+ <stringProp name="Argument.value"/>
57
+ <stringProp name="Argument.metadata">=</stringProp>
58
+ </elementProp>
59
+ <elementProp name="ResultData" elementType="Argument">
60
+ <stringProp name="Argument.name">ResultData</stringProp>
61
+ <stringProp name="Argument.value"/>
62
+ <stringProp name="Argument.metadata">=</stringProp>
63
+ </elementProp>
64
+ </collectionProp>
65
+ </elementProp>
66
+ <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
67
+ </JavaSampler>
68
+ EOS
69
+ ))
70
+ update params
71
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,75 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JavaRequestDefaults
4
+ # @param params [Hash] Parameters for the JavaRequestDefaults element (default: `{}`).
5
+ # @yield block to attach to the JavaRequestDefaults element
6
+ # @return [JmeterPerf::JavaRequestDefaults], 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#javarequestdefaults
8
+ def java_request_defaults(params = {}, &)
9
+ node = JavaRequestDefaults.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JavaRequestDefaults
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JavaRequestDefaults" : (params[:name] || "JavaRequestDefaults")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JavaConfig guiclass="JavaConfigGui" testclass="JavaConfig" testname="#{testname}" enabled="true">
22
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
23
+ <collectionProp name="Arguments.arguments">
24
+ <elementProp name="Sleep_Time" elementType="Argument">
25
+ <stringProp name="Argument.name">Sleep_Time</stringProp>
26
+ <stringProp name="Argument.value">100</stringProp>
27
+ <stringProp name="Argument.metadata">=</stringProp>
28
+ </elementProp>
29
+ <elementProp name="Sleep_Mask" elementType="Argument">
30
+ <stringProp name="Argument.name">Sleep_Mask</stringProp>
31
+ <stringProp name="Argument.value">0xFF</stringProp>
32
+ <stringProp name="Argument.metadata">=</stringProp>
33
+ </elementProp>
34
+ <elementProp name="Label" elementType="Argument">
35
+ <stringProp name="Argument.name">Label</stringProp>
36
+ <stringProp name="Argument.value"/>
37
+ <stringProp name="Argument.metadata">=</stringProp>
38
+ </elementProp>
39
+ <elementProp name="ResponseCode" elementType="Argument">
40
+ <stringProp name="Argument.name">ResponseCode</stringProp>
41
+ <stringProp name="Argument.value"/>
42
+ <stringProp name="Argument.metadata">=</stringProp>
43
+ </elementProp>
44
+ <elementProp name="ResponseMessage" elementType="Argument">
45
+ <stringProp name="Argument.name">ResponseMessage</stringProp>
46
+ <stringProp name="Argument.value"/>
47
+ <stringProp name="Argument.metadata">=</stringProp>
48
+ </elementProp>
49
+ <elementProp name="Status" elementType="Argument">
50
+ <stringProp name="Argument.name">Status</stringProp>
51
+ <stringProp name="Argument.value">OK</stringProp>
52
+ <stringProp name="Argument.metadata">=</stringProp>
53
+ </elementProp>
54
+ <elementProp name="SamplerData" elementType="Argument">
55
+ <stringProp name="Argument.name">SamplerData</stringProp>
56
+ <stringProp name="Argument.value"/>
57
+ <stringProp name="Argument.metadata">=</stringProp>
58
+ </elementProp>
59
+ <elementProp name="ResultData" elementType="Argument">
60
+ <stringProp name="Argument.name">ResultData</stringProp>
61
+ <stringProp name="Argument.value"/>
62
+ <stringProp name="Argument.metadata">=</stringProp>
63
+ </elementProp>
64
+ </collectionProp>
65
+ </elementProp>
66
+ <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
67
+ </JavaConfig>
68
+ EOS
69
+ ))
70
+ update params
71
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,43 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JDBCConnectionConfiguration
4
+ # @param params [Hash] Parameters for the JDBCConnectionConfiguration element (default: `{}`).
5
+ # @yield block to attach to the JDBCConnectionConfiguration element
6
+ # @return [JmeterPerf::JDBCConnectionConfiguration], 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#jdbcconnectionconfiguration
8
+ def jdbc_connection_configuration(params = {}, &)
9
+ node = JDBCConnectionConfiguration.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JDBCConnectionConfiguration
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JDBCConnectionConfiguration" : (params[:name] || "JDBCConnectionConfiguration")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" testname="#{testname}" enabled="true">
22
+ <boolProp name="autocommit">true</boolProp>
23
+ <stringProp name="checkQuery">Select 1</stringProp>
24
+ <stringProp name="connectionAge">5000</stringProp>
25
+ <stringProp name="dataSource"/>
26
+ <stringProp name="dbUrl"/>
27
+ <stringProp name="driver"/>
28
+ <boolProp name="keepAlive">true</boolProp>
29
+ <stringProp name="password"/>
30
+ <stringProp name="poolMax">10</stringProp>
31
+ <stringProp name="timeout">10000</stringProp>
32
+ <stringProp name="transactionIsolation">DEFAULT</stringProp>
33
+ <stringProp name="trimInterval">60000</stringProp>
34
+ <stringProp name="username"/>
35
+ </JDBCDataSource>
36
+ EOS
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,39 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JDBCPostprocessor
4
+ # @param params [Hash] Parameters for the JDBCPostprocessor element (default: `{}`).
5
+ # @yield block to attach to the JDBCPostprocessor element
6
+ # @return [JmeterPerf::JDBCPostprocessor], 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#jdbcpostprocessor
8
+ def jdbc_postprocessor(params = {}, &)
9
+ node = JDBCPostprocessor.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JDBCPostprocessor
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JDBCPostprocessor" : (params[:name] || "JDBCPostprocessor")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JDBCPostProcessor guiclass="TestBeanGUI" testclass="JDBCPostProcessor" testname="#{testname}" enabled="true">
22
+ <stringProp name="dataSource"/>
23
+ <stringProp name="query"/>
24
+ <stringProp name="queryArguments"/>
25
+ <stringProp name="queryArgumentsTypes"/>
26
+ <stringProp name="queryType">Select Statement</stringProp>
27
+ <stringProp name="resultVariable"/>
28
+ <stringProp name="variableNames"/>
29
+ <stringProp name="queryTimeout"/>
30
+ <stringProp name="resultSetHandler">Store as String</stringProp>
31
+ </JDBCPostProcessor>
32
+ EOS
33
+ ))
34
+ update params
35
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JDBCPreprocessor
4
+ # @param params [Hash] Parameters for the JDBCPreprocessor element (default: `{}`).
5
+ # @yield block to attach to the JDBCPreprocessor element
6
+ # @return [JmeterPerf::JDBCPreprocessor], 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#jdbcpreprocessor
8
+ def jdbc_preprocessor(params = {}, &)
9
+ node = JDBCPreprocessor.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JDBCPreprocessor
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JDBCPreprocessor" : (params[:name] || "JDBCPreprocessor")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JDBCPreProcessor guiclass="TestBeanGUI" testclass="JDBCPreProcessor" testname="#{testname}" enabled="true">
22
+ <stringProp name="dataSource"/>
23
+ <stringProp name="query"/>
24
+ <stringProp name="queryArguments"/>
25
+ <stringProp name="queryArgumentsTypes"/>
26
+ <stringProp name="queryType">Select Statement</stringProp>
27
+ <stringProp name="resultVariable"/>
28
+ <stringProp name="variableNames"/>
29
+ <stringProp name="queryTimeout"/>
30
+ <stringProp name="resultSetHandler">Store as String</stringProp>
31
+ </JDBCPreProcessor>
32
+ EOS
33
+ ))
34
+ update params
35
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JDBCRequest
4
+ # @param params [Hash] Parameters for the JDBCRequest element (default: `{}`).
5
+ # @yield block to attach to the JDBCRequest element
6
+ # @return [JmeterPerf::JDBCRequest], 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#jdbcrequest
8
+ def jdbc_request(params = {}, &)
9
+ node = JDBCRequest.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JDBCRequest
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JDBCRequest" : (params[:name] || "JDBCRequest")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="#{testname}" enabled="true">
22
+ <stringProp name="dataSource"/>
23
+ <stringProp name="query"/>
24
+ <stringProp name="queryArguments"/>
25
+ <stringProp name="queryArgumentsTypes"/>
26
+ <stringProp name="queryType">Select Statement</stringProp>
27
+ <stringProp name="resultVariable"/>
28
+ <stringProp name="variableNames"/>
29
+ <stringProp name="queryTimeout"/>
30
+ <stringProp name="resultSetHandler">Store as String</stringProp>
31
+ </JDBCSampler>
32
+ EOS
33
+ ))
34
+ update params
35
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,47 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JMSPointtoPoint
4
+ # @param params [Hash] Parameters for the JMSPointtoPoint element (default: `{}`).
5
+ # @yield block to attach to the JMSPointtoPoint element
6
+ # @return [JmeterPerf::JMSPointtoPoint], 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#jmspointtopoint
8
+ def jms_pointto_point(params = {}, &)
9
+ node = JMSPointtoPoint.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JMSPointtoPoint
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JMSPointtoPoint" : (params[:name] || "JMSPointtoPoint")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JMSSampler guiclass="JMSSamplerGui" testclass="JMSSampler" testname="#{testname}" enabled="true">
22
+ <stringProp name="JMSSampler.queueconnectionfactory"/>
23
+ <stringProp name="JMSSampler.SendQueue"/>
24
+ <stringProp name="JMSSampler.ReceiveQueue"/>
25
+ <boolProp name="JMSSampler.isFireAndForget">true</boolProp>
26
+ <boolProp name="JMSSampler.isNonPersistent">false</boolProp>
27
+ <boolProp name="JMSSampler.useReqMsgIdAsCorrelId">false</boolProp>
28
+ <boolProp name="JMSSampler.useResMsgIdAsCorrelId">false</boolProp>
29
+ <stringProp name="JMSSampler.timeout"/>
30
+ <stringProp name="HTTPSamper.xml_data"/>
31
+ <stringProp name="JMSSampler.initialContextFactory"/>
32
+ <stringProp name="JMSSampler.contextProviderUrl"/>
33
+ <elementProp name="JMSSampler.jndiProperties" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="#{testname}" enabled="true">
34
+ <collectionProp name="Arguments.arguments"/>
35
+ </elementProp>
36
+ <elementProp name="arguments" elementType="JMSProperties">
37
+ <collectionProp name="JMSProperties.properties"/>
38
+ </elementProp>
39
+ </JMSSampler>
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,49 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JMSPublisher
4
+ # @param params [Hash] Parameters for the JMSPublisher element (default: `{}`).
5
+ # @yield block to attach to the JMSPublisher element
6
+ # @return [JmeterPerf::JMSPublisher], 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#jmspublisher
8
+ def jms_publisher(params = {}, &)
9
+ node = JMSPublisher.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JMSPublisher
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JMSPublisher" : (params[:name] || "JMSPublisher")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <PublisherSampler guiclass="JMSPublisherGui" testclass="PublisherSampler" testname="#{testname}" enabled="true">
22
+ <stringProp name="jms.jndi_properties">false</stringProp>
23
+ <stringProp name="jms.initial_context_factory"/>
24
+ <stringProp name="jms.provider_url"/>
25
+ <stringProp name="jms.connection_factory"/>
26
+ <stringProp name="jms.topic"/>
27
+ <stringProp name="jms.security_principle"/>
28
+ <stringProp name="jms.security_credentials"/>
29
+ <stringProp name="jms.text_message"/>
30
+ <stringProp name="jms.input_file"/>
31
+ <stringProp name="jms.random_path"/>
32
+ <stringProp name="jms.config_choice">jms_use_text</stringProp>
33
+ <stringProp name="jms.config_msg_type">jms_text_message</stringProp>
34
+ <stringProp name="jms.iterations">1</stringProp>
35
+ <boolProp name="jms.authenticate">false</boolProp>
36
+ <elementProp name="arguments" elementType="JMSProperties">
37
+ <collectionProp name="JMSProperties.properties"/>
38
+ </elementProp>
39
+ <stringProp name="jms.expiration"/>
40
+ <stringProp name="jms.priority"/>
41
+ </PublisherSampler>
42
+ EOS
43
+ ))
44
+ update params
45
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,41 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JMSSubscriber
4
+ # @param params [Hash] Parameters for the JMSSubscriber element (default: `{}`).
5
+ # @yield block to attach to the JMSSubscriber element
6
+ # @return [JmeterPerf::JMSSubscriber], 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#jmssubscriber
8
+ def jms_subscriber(params = {}, &)
9
+ node = JMSSubscriber.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JMSSubscriber
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JMSSubscriber" : (params[:name] || "JMSSubscriber")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <SubscriberSampler guiclass="JMSSubscriberGui" testclass="SubscriberSampler" testname="#{testname}" enabled="true">
22
+ <stringProp name="jms.jndi_properties">false</stringProp>
23
+ <stringProp name="jms.initial_context_factory"/>
24
+ <stringProp name="jms.provider_url"/>
25
+ <stringProp name="jms.connection_factory"/>
26
+ <stringProp name="jms.topic"/>
27
+ <stringProp name="jms.security_principle"/>
28
+ <stringProp name="jms.security_credentials"/>
29
+ <boolProp name="jms.authenticate">false</boolProp>
30
+ <stringProp name="jms.iterations">1</stringProp>
31
+ <stringProp name="jms.read_response">true</stringProp>
32
+ <stringProp name="jms.client_choice">jms_subscriber_receive</stringProp>
33
+ </SubscriberSampler>
34
+ EOS
35
+ ))
36
+ update params
37
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,33 @@
1
+ module JmeterPerf
2
+ class DSL
3
+ # DSL method synonymous with the JMeter Element JSONPathPostprocessor
4
+ # @param params [Hash] Parameters for the JSONPathPostprocessor element (default: `{}`).
5
+ # @yield block to attach to the JSONPathPostprocessor element
6
+ # @return [JmeterPerf::JSONPathPostprocessor], 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#jsonpathpostprocessor
8
+ def json_path_postprocessor(params = {}, &)
9
+ node = JSONPathPostprocessor.new(params)
10
+ attach_node(node, &)
11
+ end
12
+
13
+ class JSONPathPostprocessor
14
+ attr_accessor :doc
15
+ include JmeterPerf::Helpers::XmlDocumentUpdater
16
+
17
+ def initialize(params = {})
18
+ testname = params.is_a?(Array) ? "JSONPathPostprocessor" : (params[:name] || "JSONPathPostprocessor")
19
+ @doc = Nokogiri::XML(JmeterPerf::Helpers::String.strip_heredoc(
20
+ <<~EOS
21
+ <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="#{testname}" enabled="true">
22
+ <stringProp name="JSONPostProcessor.referenceNames"/>
23
+ <stringProp name="JSONPostProcessor.jsonPathExprs"/>
24
+ <stringProp name="JSONPostProcessor.match_numbers"/>
25
+ </JSONPostProcessor>
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