jmeter-ruby 3.0.0

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 (266) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +22 -0
  3. data/.github/workflows/ci.yml +54 -0
  4. data/.gitignore +24 -0
  5. data/.rspec +1 -0
  6. data/.ruby-version +1 -0
  7. data/CHANGES.md +77 -0
  8. data/Gemfile +23 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +434 -0
  11. data/Rakefile +18 -0
  12. data/examples/OS_process_sampler.rb +24 -0
  13. data/examples/assertion_results.rb +18 -0
  14. data/examples/basic_auth.rb +11 -0
  15. data/examples/browser_headers.rb +7 -0
  16. data/examples/composite_graph.rb +29 -0
  17. data/examples/constant_throughput_timer.rb +11 -0
  18. data/examples/csv_data_set.rb +11 -0
  19. data/examples/dummy_sampler.rb +9 -0
  20. data/examples/duration_assertion.rb +10 -0
  21. data/examples/etsy_login_browse.rb +61 -0
  22. data/examples/extract.rb +12 -0
  23. data/examples/foreach_controller.rb +29 -0
  24. data/examples/header_manager.rb +29 -0
  25. data/examples/http_cache_manager.rb +11 -0
  26. data/examples/http_cookie_manager.rb +11 -0
  27. data/examples/http_request_defaults.rb +11 -0
  28. data/examples/http_request_post.rb +11 -0
  29. data/examples/http_request_with_files.rb +13 -0
  30. data/examples/http_request_with_query_params.rb +8 -0
  31. data/examples/jmeter_plugins_graphs.rb +22 -0
  32. data/examples/json_path_assertions.rb +11 -0
  33. data/examples/json_path_extractor.rb +10 -0
  34. data/examples/json_path_postprocessor.rb +10 -0
  35. data/examples/jsr223_assertion.rb +13 -0
  36. data/examples/ldap_sampler.rb +16 -0
  37. data/examples/loadosophia.rb +18 -0
  38. data/examples/loop_controller.rb +10 -0
  39. data/examples/loops_with_counter.rb +15 -0
  40. data/examples/once_only_controller.rb +15 -0
  41. data/examples/perfmon.rb +46 -0
  42. data/examples/real_custom_methods.rb +19 -0
  43. data/examples/real_page_objects.rb +41 -0
  44. data/examples/real_redis_data_set_with_setup.rb +123 -0
  45. data/examples/real_user_objects_github.rb +112 -0
  46. data/examples/regular_expression_extractor.rb +12 -0
  47. data/examples/response_assertion.rb +15 -0
  48. data/examples/response_time_percentiles_graph.rb +11 -0
  49. data/examples/rsync.rb +16 -0
  50. data/examples/sample_transaction.rb +18 -0
  51. data/examples/simple_data_writer_listener.rb +11 -0
  52. data/examples/stepping_thread_group.rb +30 -0
  53. data/examples/test_fragment.rb +14 -0
  54. data/examples/think_time.rb +15 -0
  55. data/examples/thread_groups.rb +7 -0
  56. data/examples/throughput_controller.rb +14 -0
  57. data/examples/throughput_shaping_timer.rb +20 -0
  58. data/examples/ultimate_thread_group.rb +39 -0
  59. data/examples/unicode.rb +8 -0
  60. data/examples/user_defined_variables.rb +10 -0
  61. data/examples/user_parameters.rb +28 -0
  62. data/examples/uuid_per_iteration.rb +15 -0
  63. data/jmeter-ruby.gemspec +28 -0
  64. data/lib/jmeter-ruby/DSL.md +235 -0
  65. data/lib/jmeter-ruby/dsl/access_log_sampler.rb +32 -0
  66. data/lib/jmeter-ruby/dsl/aggregate_graph.rb +55 -0
  67. data/lib/jmeter-ruby/dsl/aggregate_report.rb +55 -0
  68. data/lib/jmeter-ruby/dsl/ajp13_sampler.rb +41 -0
  69. data/lib/jmeter-ruby/dsl/assertion_results.rb +55 -0
  70. data/lib/jmeter-ruby/dsl/beanshell_assertion.rb +28 -0
  71. data/lib/jmeter-ruby/dsl/beanshell_listener.rb +28 -0
  72. data/lib/jmeter-ruby/dsl/beanshell_postprocessor.rb +28 -0
  73. data/lib/jmeter-ruby/dsl/beanshell_preprocessor.rb +28 -0
  74. data/lib/jmeter-ruby/dsl/beanshell_sampler.rb +28 -0
  75. data/lib/jmeter-ruby/dsl/beanshell_timer.rb +28 -0
  76. data/lib/jmeter-ruby/dsl/bsf_assertion.rb +28 -0
  77. data/lib/jmeter-ruby/dsl/bsf_listener.rb +28 -0
  78. data/lib/jmeter-ruby/dsl/bsf_postprocessor.rb +28 -0
  79. data/lib/jmeter-ruby/dsl/bsf_preprocessor.rb +28 -0
  80. data/lib/jmeter-ruby/dsl/bsf_sampler.rb +28 -0
  81. data/lib/jmeter-ruby/dsl/bsf_timer.rb +28 -0
  82. data/lib/jmeter-ruby/dsl/compare_assertion.rb +27 -0
  83. data/lib/jmeter-ruby/dsl/comparison_assertion_visualizer.rb +55 -0
  84. data/lib/jmeter-ruby/dsl/constant_throughput_timer.rb +26 -0
  85. data/lib/jmeter-ruby/dsl/constant_timer.rb +25 -0
  86. data/lib/jmeter-ruby/dsl/counter.rb +31 -0
  87. data/lib/jmeter-ruby/dsl/cssjquery_extractor.rb +31 -0
  88. data/lib/jmeter-ruby/dsl/csv_data_set_config.rb +33 -0
  89. data/lib/jmeter-ruby/dsl/debug_postprocessor.rb +28 -0
  90. data/lib/jmeter-ruby/dsl/debug_sampler.rb +27 -0
  91. data/lib/jmeter-ruby/dsl/distribution_graphalpha.rb +55 -0
  92. data/lib/jmeter-ruby/dsl/duration_assertion.rb +25 -0
  93. data/lib/jmeter-ruby/dsl/foreach_controller.rb +27 -0
  94. data/lib/jmeter-ruby/dsl/ftp_request.rb +34 -0
  95. data/lib/jmeter-ruby/dsl/ftp_request_defaults.rb +32 -0
  96. data/lib/jmeter-ruby/dsl/gaussian_random_timer.rb +26 -0
  97. data/lib/jmeter-ruby/dsl/generate_summary_results.rb +23 -0
  98. data/lib/jmeter-ruby/dsl/graph_results.rb +55 -0
  99. data/lib/jmeter-ruby/dsl/html_assertion.rb +30 -0
  100. data/lib/jmeter-ruby/dsl/html_link_parser.rb +23 -0
  101. data/lib/jmeter-ruby/dsl/html_parameter_mask.rb +32 -0
  102. data/lib/jmeter-ruby/dsl/http_authorization_manager.rb +33 -0
  103. data/lib/jmeter-ruby/dsl/http_cache_manager.rb +26 -0
  104. data/lib/jmeter-ruby/dsl/http_cookie_manager.rb +28 -0
  105. data/lib/jmeter-ruby/dsl/http_header_manager.rb +30 -0
  106. data/lib/jmeter-ruby/dsl/http_request.rb +41 -0
  107. data/lib/jmeter-ruby/dsl/http_request_defaults.rb +41 -0
  108. data/lib/jmeter-ruby/dsl/http_url_rewriting_modifier.rb +30 -0
  109. data/lib/jmeter-ruby/dsl/if_controller.rb +27 -0
  110. data/lib/jmeter-ruby/dsl/include_controller.rb +25 -0
  111. data/lib/jmeter-ruby/dsl/java_request.rb +69 -0
  112. data/lib/jmeter-ruby/dsl/java_request_defaults.rb +69 -0
  113. data/lib/jmeter-ruby/dsl/jdbc_connection_configuration.rb +37 -0
  114. data/lib/jmeter-ruby/dsl/jdbc_postprocessor.rb +33 -0
  115. data/lib/jmeter-ruby/dsl/jdbc_preprocessor.rb +33 -0
  116. data/lib/jmeter-ruby/dsl/jdbc_request.rb +33 -0
  117. data/lib/jmeter-ruby/dsl/jms_pointtopoint.rb +41 -0
  118. data/lib/jmeter-ruby/dsl/jms_publisher.rb +43 -0
  119. data/lib/jmeter-ruby/dsl/jms_subscriber.rb +35 -0
  120. data/lib/jmeter-ruby/dsl/json_path_postprocessor.rb +27 -0
  121. data/lib/jmeter-ruby/dsl/jsr223_assertion.rb +29 -0
  122. data/lib/jmeter-ruby/dsl/jsr223_listener.rb +29 -0
  123. data/lib/jmeter-ruby/dsl/jsr223_postprocessor.rb +29 -0
  124. data/lib/jmeter-ruby/dsl/jsr223_preprocessor.rb +29 -0
  125. data/lib/jmeter-ruby/dsl/jsr223_sampler.rb +29 -0
  126. data/lib/jmeter-ruby/dsl/jsr223_timer.rb +29 -0
  127. data/lib/jmeter-ruby/dsl/junit_request.rb +37 -0
  128. data/lib/jmeter-ruby/dsl/keystore_configuration.rb +28 -0
  129. data/lib/jmeter-ruby/dsl/ldap_extended_request.rb +42 -0
  130. data/lib/jmeter-ruby/dsl/ldap_extended_request_defaults.rb +42 -0
  131. data/lib/jmeter-ruby/dsl/ldap_request.rb +35 -0
  132. data/lib/jmeter-ruby/dsl/ldap_request_defaults.rb +39 -0
  133. data/lib/jmeter-ruby/dsl/login_config_element.rb +26 -0
  134. data/lib/jmeter-ruby/dsl/loop_controller.rb +26 -0
  135. data/lib/jmeter-ruby/dsl/mail_reader_sampler.rb +37 -0
  136. data/lib/jmeter-ruby/dsl/mailer_visualizer.rb +64 -0
  137. data/lib/jmeter-ruby/dsl/md5hex_assertion.rb +25 -0
  138. data/lib/jmeter-ruby/dsl/module_controller.rb +25 -0
  139. data/lib/jmeter-ruby/dsl/monitor_results.rb +55 -0
  140. data/lib/jmeter-ruby/dsl/once_only_controller.rb +23 -0
  141. data/lib/jmeter-ruby/dsl/os_process_sampler.rb +34 -0
  142. data/lib/jmeter-ruby/dsl/poisson_random_timer.rb +26 -0
  143. data/lib/jmeter-ruby/dsl/random_controller.rb +25 -0
  144. data/lib/jmeter-ruby/dsl/random_order_controller.rb +23 -0
  145. data/lib/jmeter-ruby/dsl/random_variable.rb +30 -0
  146. data/lib/jmeter-ruby/dsl/recording_controller.rb +23 -0
  147. data/lib/jmeter-ruby/dsl/regex_user_parameters.rb +27 -0
  148. data/lib/jmeter-ruby/dsl/regular_expression_extractor.rb +32 -0
  149. data/lib/jmeter-ruby/dsl/response_assertion.rb +31 -0
  150. data/lib/jmeter-ruby/dsl/response_time_graph.rb +55 -0
  151. data/lib/jmeter-ruby/dsl/result_status_action_handler.rb +25 -0
  152. data/lib/jmeter-ruby/dsl/runtime_controller.rb +25 -0
  153. data/lib/jmeter-ruby/dsl/save_responses_to_a_file.rb +29 -0
  154. data/lib/jmeter-ruby/dsl/setup_thread_group.rb +36 -0
  155. data/lib/jmeter-ruby/dsl/simple_config_element.rb +23 -0
  156. data/lib/jmeter-ruby/dsl/simple_controller.rb +23 -0
  157. data/lib/jmeter-ruby/dsl/simple_data_writer.rb +55 -0
  158. data/lib/jmeter-ruby/dsl/smime_assertion.rb +35 -0
  159. data/lib/jmeter-ruby/dsl/smtp_sampler.rb +51 -0
  160. data/lib/jmeter-ruby/dsl/soapxmlrpc_request.rb +33 -0
  161. data/lib/jmeter-ruby/dsl/spline_visualizer.rb +55 -0
  162. data/lib/jmeter-ruby/dsl/summary_report.rb +55 -0
  163. data/lib/jmeter-ruby/dsl/switch_controller.rb +25 -0
  164. data/lib/jmeter-ruby/dsl/synchronizing_timer.rb +26 -0
  165. data/lib/jmeter-ruby/dsl/tcp_sampler.rb +33 -0
  166. data/lib/jmeter-ruby/dsl/tcp_sampler_config.rb +31 -0
  167. data/lib/jmeter-ruby/dsl/test_action.rb +27 -0
  168. data/lib/jmeter-ruby/dsl/test_fragment.rb +23 -0
  169. data/lib/jmeter-ruby/dsl/test_plan.rb +31 -0
  170. data/lib/jmeter-ruby/dsl/thread_group.rb +37 -0
  171. data/lib/jmeter-ruby/dsl/throughput_controller.rb +32 -0
  172. data/lib/jmeter-ruby/dsl/transaction_controller.rb +26 -0
  173. data/lib/jmeter-ruby/dsl/uniform_random_timer.rb +26 -0
  174. data/lib/jmeter-ruby/dsl/user_defined_variables.rb +33 -0
  175. data/lib/jmeter-ruby/dsl/user_parameters.rb +30 -0
  176. data/lib/jmeter-ruby/dsl/view_results_in_table.rb +55 -0
  177. data/lib/jmeter-ruby/dsl/view_results_tree.rb +55 -0
  178. data/lib/jmeter-ruby/dsl/while_controller.rb +25 -0
  179. data/lib/jmeter-ruby/dsl/xml_assertion.rb +23 -0
  180. data/lib/jmeter-ruby/dsl/xml_schema_assertion.rb +25 -0
  181. data/lib/jmeter-ruby/dsl/xpath_assertion.rb +31 -0
  182. data/lib/jmeter-ruby/dsl/xpath_extractor.rb +31 -0
  183. data/lib/jmeter-ruby/dsl.rb +102 -0
  184. data/lib/jmeter-ruby/extend/assertions/response_assertion.rb +36 -0
  185. data/lib/jmeter-ruby/extend/config_elements/header_manager.rb +13 -0
  186. data/lib/jmeter-ruby/extend/config_elements/http_cache_manager.rb +12 -0
  187. data/lib/jmeter-ruby/extend/config_elements/http_cookie_manager.rb +36 -0
  188. data/lib/jmeter-ruby/extend/config_elements/http_request_defaults.rb +39 -0
  189. data/lib/jmeter-ruby/extend/config_elements/user_defined_variables.rb +13 -0
  190. data/lib/jmeter-ruby/extend/config_elements/user_parameters.rb +31 -0
  191. data/lib/jmeter-ruby/extend/controllers/foreach_controller.rb +27 -0
  192. data/lib/jmeter-ruby/extend/controllers/loop_controller.rb +11 -0
  193. data/lib/jmeter-ruby/extend/controllers/module_controller.rb +23 -0
  194. data/lib/jmeter-ruby/extend/controllers/throughput_controller.rb +15 -0
  195. data/lib/jmeter-ruby/extend/controllers/transaction_controller.rb +14 -0
  196. data/lib/jmeter-ruby/extend/misc/aliases.rb +21 -0
  197. data/lib/jmeter-ruby/extend/misc/exists.rb +13 -0
  198. data/lib/jmeter-ruby/extend/misc/rsync.rb +24 -0
  199. data/lib/jmeter-ruby/extend/misc/uuid.rb +12 -0
  200. data/lib/jmeter-ruby/extend/misc/with_helpers.rb +27 -0
  201. data/lib/jmeter-ruby/extend/plugins/jmeter_plugins.rb +120 -0
  202. data/lib/jmeter-ruby/extend/processors/extract.rb +28 -0
  203. data/lib/jmeter-ruby/extend/processors/regular_expression_extractor.rb +25 -0
  204. data/lib/jmeter-ruby/extend/samplers/http_request.rb +58 -0
  205. data/lib/jmeter-ruby/extend/samplers/jms_pointtopoint.rb +26 -0
  206. data/lib/jmeter-ruby/extend/samplers/soapxmlrpc_request.rb +9 -0
  207. data/lib/jmeter-ruby/extend/threads/setup_thread_group.rb +18 -0
  208. data/lib/jmeter-ruby/extend/threads/thread_group.rb +19 -0
  209. data/lib/jmeter-ruby/extend/timers/constant_throughput_timer.rb +11 -0
  210. data/lib/jmeter-ruby/extend/timers/random_timer.rb +14 -0
  211. data/lib/jmeter-ruby/helpers/fallback_content_proxy.rb +54 -0
  212. data/lib/jmeter-ruby/helpers/helper.rb +75 -0
  213. data/lib/jmeter-ruby/helpers/logger-colors.rb +48 -0
  214. data/lib/jmeter-ruby/helpers/parser.rb +135 -0
  215. data/lib/jmeter-ruby/helpers/strip-heredoc.rb +5 -0
  216. data/lib/jmeter-ruby/helpers/user-agents.rb +27 -0
  217. data/lib/jmeter-ruby/idl.rb +70 -0
  218. data/lib/jmeter-ruby/idl.xml +1488 -0
  219. data/lib/jmeter-ruby/plugins/active_threads_over_time.rb +57 -0
  220. data/lib/jmeter-ruby/plugins/composite_graph.rb +71 -0
  221. data/lib/jmeter-ruby/plugins/console_status_logger.rb +15 -0
  222. data/lib/jmeter-ruby/plugins/dummy_sampler.rb +26 -0
  223. data/lib/jmeter-ruby/plugins/jmx_collector.rb +73 -0
  224. data/lib/jmeter-ruby/plugins/json_path_assertion.rb +19 -0
  225. data/lib/jmeter-ruby/plugins/json_path_extractor.rb +20 -0
  226. data/lib/jmeter-ruby/plugins/latencies_over_time.rb +49 -0
  227. data/lib/jmeter-ruby/plugins/loadosophia_uploader.rb +63 -0
  228. data/lib/jmeter-ruby/plugins/perfmon_collector.rb +80 -0
  229. data/lib/jmeter-ruby/plugins/redis_data_set.rb +39 -0
  230. data/lib/jmeter-ruby/plugins/response_codes_per_second.rb +49 -0
  231. data/lib/jmeter-ruby/plugins/response_times_distribution.rb +49 -0
  232. data/lib/jmeter-ruby/plugins/response_times_over_time.rb +50 -0
  233. data/lib/jmeter-ruby/plugins/response_times_percentiles.rb +51 -0
  234. data/lib/jmeter-ruby/plugins/stepping_thread_group.rb +30 -0
  235. data/lib/jmeter-ruby/plugins/transactions_per_second.rb +50 -0
  236. data/lib/jmeter-ruby/plugins/ultimate_thread_group.rb +23 -0
  237. data/lib/jmeter-ruby/plugins/variable_throughput_timer.rb +27 -0
  238. data/lib/jmeter-ruby/version.rb +12 -0
  239. data/lib/jmeter-ruby.rb +27 -0
  240. data/mise.toml +2 -0
  241. data/script/release +162 -0
  242. data/spec/constant_throughput_timer_spec.rb +20 -0
  243. data/spec/csv_data_set_config_spec.rb +33 -0
  244. data/spec/header_manager_spec.rb +37 -0
  245. data/spec/http_cache_manager_spec.rb +29 -0
  246. data/spec/http_cookie_manager_spec.rb +169 -0
  247. data/spec/http_request_defaults_spec.rb +57 -0
  248. data/spec/http_request_spec.rb +305 -0
  249. data/spec/jmeter_plugins_spec.rb +245 -0
  250. data/spec/json_extractor_spec.rb +19 -0
  251. data/spec/json_path_assertion_spec.rb +28 -0
  252. data/spec/logic_controller_spec.rb +148 -0
  253. data/spec/loop_controller_spec.rb +19 -0
  254. data/spec/module_controller_spec.rb +56 -0
  255. data/spec/regular_expression_extractor_spec.rb +63 -0
  256. data/spec/response_assertion_spec.rb +69 -0
  257. data/spec/setup_thread_group_spec.rb +31 -0
  258. data/spec/spec_helper.rb +19 -0
  259. data/spec/thread_group_spec.rb +57 -0
  260. data/spec/throughput_controller_spec.rb +24 -0
  261. data/spec/transaction_controller_spec.rb +30 -0
  262. data/spec/user_defined_variables_spec.rb +22 -0
  263. data/spec/user_parameters_spec.rb +45 -0
  264. data/spec/with_helpers_spec.rb +57 -0
  265. data/spec/xpath_extractor_spec.rb +15 -0
  266. metadata +360 -0
@@ -0,0 +1,55 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def graph_results(params={}, &block)
4
+ node = JmeterRuby::GraphResults.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class GraphResults
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'GraphResults' : (params[:name] || 'GraphResults')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="#{testname}" enabled="true">
17
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
18
+ <objProp>
19
+ <name>saveConfig</name>
20
+ <value class="SampleSaveConfiguration">
21
+ <time>true</time>
22
+ <latency>true</latency>
23
+ <timestamp>true</timestamp>
24
+ <success>true</success>
25
+ <label>true</label>
26
+ <code>true</code>
27
+ <message>false</message>
28
+ <threadName>true</threadName>
29
+ <dataType>false</dataType>
30
+ <encoding>false</encoding>
31
+ <assertions>false</assertions>
32
+ <subresults>false</subresults>
33
+ <responseData>false</responseData>
34
+ <samplerData>false</samplerData>
35
+ <xml>false</xml>
36
+ <fieldNames>false</fieldNames>
37
+ <responseHeaders>false</responseHeaders>
38
+ <requestHeaders>false</requestHeaders>
39
+ <responseDataOnError>false</responseDataOnError>
40
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
41
+ <assertionsResultsToSave>0</assertionsResultsToSave>
42
+ <bytes>true</bytes>
43
+ <threadCounts>true</threadCounts>
44
+ <sampleCount>true</sampleCount>
45
+ </value>
46
+ </objProp>
47
+ <stringProp name="filename"/>
48
+ </ResultCollector>)
49
+ EOS
50
+ update params
51
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
52
+ end
53
+ end
54
+
55
+ end
@@ -0,0 +1,30 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def html_assertion(params={}, &block)
4
+ node = JmeterRuby::HtmlAssertion.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HtmlAssertion
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HtmlAssertion' : (params[:name] || 'HtmlAssertion')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <HTMLAssertion guiclass="HTMLAssertionGui" testclass="HTMLAssertion" testname="#{testname}" enabled="true">
17
+ <longProp name="html_assertion_error_threshold">0</longProp>
18
+ <longProp name="html_assertion_warning_threshold">0</longProp>
19
+ <stringProp name="html_assertion_doctype">omit</stringProp>
20
+ <boolProp name="html_assertion_errorsonly">false</boolProp>
21
+ <longProp name="html_assertion_format">0</longProp>
22
+ <stringProp name="html_assertion_filename"/>
23
+ </HTMLAssertion>)
24
+ EOS
25
+ update params
26
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
27
+ end
28
+ end
29
+
30
+ end
@@ -0,0 +1,23 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def html_link_parser(params={}, &block)
4
+ node = JmeterRuby::HtmlLinkParser.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HtmlLinkParser
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HtmlLinkParser' : (params[:name] || 'HtmlLinkParser')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <AnchorModifier guiclass="AnchorModifierGui" testclass="AnchorModifier" testname="#{testname}" enabled="true"/>)
17
+ EOS
18
+ update params
19
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,32 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def html_parameter_mask(params={}, &block)
4
+ node = JmeterRuby::HtmlParameterMask.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HtmlParameterMask
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HtmlParameterMask' : (params[:name] || 'HtmlParameterMask')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ConfigTestElement guiclass="ObsoleteGui" testclass="ConfigTestElement" testname="#{testname}" enabled="true">
17
+ <elementProp name="ParamModifier.mask" elementType="ConfigTestElement">
18
+ <stringProp name="ParamModifier.field_name"/>
19
+ <stringProp name="ParamModifier.prefix"/>
20
+ <longProp name="ParamModifier.lower_bound">0</longProp>
21
+ <longProp name="ParamModifier.upper_bound">10</longProp>
22
+ <longProp name="ParamModifier.increment">1</longProp>
23
+ <stringProp name="ParamModifier.suffix"/>
24
+ </elementProp>
25
+ </ConfigTestElement>)
26
+ EOS
27
+ update params
28
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,33 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def http_authorization_manager(params={}, &block)
4
+ node = JmeterRuby::HttpAuthorizationManager.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HttpAuthorizationManager
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HttpAuthorizationManager' : (params[:name] || 'HttpAuthorizationManager')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="#{testname}" enabled="true">
17
+ <collectionProp name="AuthManager.auth_list">
18
+ <elementProp name="" elementType="Authorization">
19
+ <stringProp name="Authorization.url"/>
20
+ <stringProp name="Authorization.username"/>
21
+ <stringProp name="Authorization.password"/>
22
+ <stringProp name="Authorization.domain"/>
23
+ <stringProp name="Authorization.realm"/>
24
+ </elementProp>
25
+ </collectionProp>
26
+ </AuthManager>)
27
+ EOS
28
+ update params
29
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,26 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def http_cache_manager(params={}, &block)
4
+ node = JmeterRuby::HttpCacheManager.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HttpCacheManager
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HttpCacheManager' : (params[:name] || 'HttpCacheManager')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <CacheManager guiclass="CacheManagerGui" testclass="CacheManager" testname="#{testname}" enabled="true">
17
+ <boolProp name="clearEachIteration">false</boolProp>
18
+ <boolProp name="useExpires">false</boolProp>
19
+ </CacheManager>)
20
+ EOS
21
+ update params
22
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
23
+ end
24
+ end
25
+
26
+ end
@@ -0,0 +1,28 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def http_cookie_manager(params={}, &block)
4
+ node = JmeterRuby::HttpCookieManager.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HttpCookieManager
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HttpCookieManager' : (params[:name] || 'HttpCookieManager')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="#{testname}" enabled="true">
17
+ <collectionProp name="CookieManager.cookies"/>
18
+ <boolProp name="CookieManager.clearEachIteration">false</boolProp>
19
+ <stringProp name="CookieManager.policy">default</stringProp>
20
+ <stringProp name="CookieManager.implementation">org.apache.jmeter.protocol.http.control.HC4CookieHandler</stringProp>
21
+ </CookieManager>)
22
+ EOS
23
+ update params
24
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,30 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def http_header_manager(params={}, &block)
4
+ node = JmeterRuby::HttpHeaderManager.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HttpHeaderManager
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HttpHeaderManager' : (params[:name] || 'HttpHeaderManager')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="#{testname}" enabled="true">
17
+ <collectionProp name="HeaderManager.headers">
18
+ <elementProp name="" elementType="Header">
19
+ <stringProp name="Header.name"/>
20
+ <stringProp name="Header.value"/>
21
+ </elementProp>
22
+ </collectionProp>
23
+ </HeaderManager>)
24
+ EOS
25
+ update params
26
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
27
+ end
28
+ end
29
+
30
+ end
@@ -0,0 +1,41 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def http_request(params={}, &block)
4
+ node = JmeterRuby::HttpRequest.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HttpRequest
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HttpRequest' : (params[:name] || 'HttpRequest')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="#{testname}" enabled="true">
17
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="#{testname}" enabled="true">
18
+ <collectionProp name="Arguments.arguments"/>
19
+ </elementProp>
20
+ <stringProp name="HTTPSampler.domain"/>
21
+ <stringProp name="HTTPSampler.port"/>
22
+ <stringProp name="HTTPSampler.connect_timeout"/>
23
+ <stringProp name="HTTPSampler.response_timeout"/>
24
+ <stringProp name="HTTPSampler.protocol"/>
25
+ <stringProp name="HTTPSampler.contentEncoding"/>
26
+ <stringProp name="HTTPSampler.path"/>
27
+ <stringProp name="HTTPSampler.method">GET</stringProp>
28
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
29
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
30
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
31
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
32
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
33
+ <stringProp name="HTTPSampler.embedded_url_re"/>
34
+ </HTTPSamplerProxy>)
35
+ EOS
36
+ update params
37
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
38
+ end
39
+ end
40
+
41
+ end
@@ -0,0 +1,41 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def http_request_defaults(params={}, &block)
4
+ node = JmeterRuby::HttpRequestDefaults.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HttpRequestDefaults
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HttpRequestDefaults' : (params[:name] || 'HttpRequestDefaults')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="#{testname}" enabled="true">
17
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="#{testname}" enabled="true">
18
+ <collectionProp name="Arguments.arguments"/>
19
+ </elementProp>
20
+ <stringProp name="HTTPSampler.domain"/>
21
+ <stringProp name="HTTPSampler.port"/>
22
+ <stringProp name="HTTPSampler.proxyHost"/>
23
+ <stringProp name="HTTPSampler.proxyPort"/>
24
+ <stringProp name="HTTPSampler.connect_timeout"/>
25
+ <stringProp name="HTTPSampler.response_timeout"/>
26
+ <stringProp name="HTTPSampler.protocol"/>
27
+ <stringProp name="HTTPSampler.contentEncoding"/>
28
+ <stringProp name="HTTPSampler.path">/</stringProp>
29
+ <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
30
+ <boolProp name="HTTPSampler.image_parser">true</boolProp>
31
+ <boolProp name="HTTPSampler.concurrentDwn">true</boolProp>
32
+ <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
33
+ <stringProp name="HTTPSampler.embedded_url_re"/>
34
+ </ConfigTestElement>)
35
+ EOS
36
+ update params
37
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
38
+ end
39
+ end
40
+
41
+ end
@@ -0,0 +1,30 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def http_url_rewriting_modifier(params={}, &block)
4
+ node = JmeterRuby::HttpUrlRewritingModifier.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class HttpUrlRewritingModifier
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'HttpUrlRewritingModifier' : (params[:name] || 'HttpUrlRewritingModifier')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <URLRewritingModifier guiclass="URLRewritingModifierGui" testclass="URLRewritingModifier" testname="#{testname}" enabled="true">
17
+ <stringProp name="argument_name"/>
18
+ <boolProp name="path_extension">false</boolProp>
19
+ <boolProp name="path_extension_no_equals">false</boolProp>
20
+ <boolProp name="path_extension_no_questionmark">false</boolProp>
21
+ <boolProp name="cache_value">false</boolProp>
22
+ <boolProp name="encode">false</boolProp>
23
+ </URLRewritingModifier>)
24
+ EOS
25
+ update params
26
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
27
+ end
28
+ end
29
+
30
+ end
@@ -0,0 +1,27 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def if_controller(params={}, &block)
4
+ node = JmeterRuby::IfController.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class IfController
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'IfController' : (params[:name] || 'IfController')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <IfController guiclass="IfControllerPanel" testclass="IfController" testname="#{testname}" enabled="true">
17
+ <stringProp name="IfController.condition"/>
18
+ <boolProp name="IfController.evaluateAll">false</boolProp>
19
+ <boolProp name="IfController.useExpression">true</boolProp>
20
+ </IfController>)
21
+ EOS
22
+ update params
23
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,25 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def include_controller(params={}, &block)
4
+ node = JmeterRuby::IncludeController.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class IncludeController
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'IncludeController' : (params[:name] || 'IncludeController')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <IncludeController guiclass="IncludeControllerGui" testclass="IncludeController" testname="#{testname}" enabled="true">
17
+ <stringProp name="IncludeController.includepath"/>
18
+ </IncludeController>)
19
+ EOS
20
+ update params
21
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,69 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def java_request(params={}, &block)
4
+ node = JmeterRuby::JavaRequest.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JavaRequest
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'JavaRequest' : (params[:name] || 'JavaRequest')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="#{testname}" enabled="true">
17
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
18
+ <collectionProp name="Arguments.arguments">
19
+ <elementProp name="Sleep_Time" elementType="Argument">
20
+ <stringProp name="Argument.name">Sleep_Time</stringProp>
21
+ <stringProp name="Argument.value">100</stringProp>
22
+ <stringProp name="Argument.metadata">=</stringProp>
23
+ </elementProp>
24
+ <elementProp name="Sleep_Mask" elementType="Argument">
25
+ <stringProp name="Argument.name">Sleep_Mask</stringProp>
26
+ <stringProp name="Argument.value">0xFF</stringProp>
27
+ <stringProp name="Argument.metadata">=</stringProp>
28
+ </elementProp>
29
+ <elementProp name="Label" elementType="Argument">
30
+ <stringProp name="Argument.name">Label</stringProp>
31
+ <stringProp name="Argument.value"/>
32
+ <stringProp name="Argument.metadata">=</stringProp>
33
+ </elementProp>
34
+ <elementProp name="ResponseCode" elementType="Argument">
35
+ <stringProp name="Argument.name">ResponseCode</stringProp>
36
+ <stringProp name="Argument.value"/>
37
+ <stringProp name="Argument.metadata">=</stringProp>
38
+ </elementProp>
39
+ <elementProp name="ResponseMessage" elementType="Argument">
40
+ <stringProp name="Argument.name">ResponseMessage</stringProp>
41
+ <stringProp name="Argument.value"/>
42
+ <stringProp name="Argument.metadata">=</stringProp>
43
+ </elementProp>
44
+ <elementProp name="Status" elementType="Argument">
45
+ <stringProp name="Argument.name">Status</stringProp>
46
+ <stringProp name="Argument.value">OK</stringProp>
47
+ <stringProp name="Argument.metadata">=</stringProp>
48
+ </elementProp>
49
+ <elementProp name="SamplerData" elementType="Argument">
50
+ <stringProp name="Argument.name">SamplerData</stringProp>
51
+ <stringProp name="Argument.value"/>
52
+ <stringProp name="Argument.metadata">=</stringProp>
53
+ </elementProp>
54
+ <elementProp name="ResultData" elementType="Argument">
55
+ <stringProp name="Argument.name">ResultData</stringProp>
56
+ <stringProp name="Argument.value"/>
57
+ <stringProp name="Argument.metadata">=</stringProp>
58
+ </elementProp>
59
+ </collectionProp>
60
+ </elementProp>
61
+ <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
62
+ </JavaSampler>)
63
+ EOS
64
+ update params
65
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
66
+ end
67
+ end
68
+
69
+ end
@@ -0,0 +1,69 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def java_request_defaults(params={}, &block)
4
+ node = JmeterRuby::JavaRequestDefaults.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JavaRequestDefaults
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'JavaRequestDefaults' : (params[:name] || 'JavaRequestDefaults')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JavaConfig guiclass="JavaConfigGui" testclass="JavaConfig" testname="#{testname}" enabled="true">
17
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
18
+ <collectionProp name="Arguments.arguments">
19
+ <elementProp name="Sleep_Time" elementType="Argument">
20
+ <stringProp name="Argument.name">Sleep_Time</stringProp>
21
+ <stringProp name="Argument.value">100</stringProp>
22
+ <stringProp name="Argument.metadata">=</stringProp>
23
+ </elementProp>
24
+ <elementProp name="Sleep_Mask" elementType="Argument">
25
+ <stringProp name="Argument.name">Sleep_Mask</stringProp>
26
+ <stringProp name="Argument.value">0xFF</stringProp>
27
+ <stringProp name="Argument.metadata">=</stringProp>
28
+ </elementProp>
29
+ <elementProp name="Label" elementType="Argument">
30
+ <stringProp name="Argument.name">Label</stringProp>
31
+ <stringProp name="Argument.value"/>
32
+ <stringProp name="Argument.metadata">=</stringProp>
33
+ </elementProp>
34
+ <elementProp name="ResponseCode" elementType="Argument">
35
+ <stringProp name="Argument.name">ResponseCode</stringProp>
36
+ <stringProp name="Argument.value"/>
37
+ <stringProp name="Argument.metadata">=</stringProp>
38
+ </elementProp>
39
+ <elementProp name="ResponseMessage" elementType="Argument">
40
+ <stringProp name="Argument.name">ResponseMessage</stringProp>
41
+ <stringProp name="Argument.value"/>
42
+ <stringProp name="Argument.metadata">=</stringProp>
43
+ </elementProp>
44
+ <elementProp name="Status" elementType="Argument">
45
+ <stringProp name="Argument.name">Status</stringProp>
46
+ <stringProp name="Argument.value">OK</stringProp>
47
+ <stringProp name="Argument.metadata">=</stringProp>
48
+ </elementProp>
49
+ <elementProp name="SamplerData" elementType="Argument">
50
+ <stringProp name="Argument.name">SamplerData</stringProp>
51
+ <stringProp name="Argument.value"/>
52
+ <stringProp name="Argument.metadata">=</stringProp>
53
+ </elementProp>
54
+ <elementProp name="ResultData" elementType="Argument">
55
+ <stringProp name="Argument.name">ResultData</stringProp>
56
+ <stringProp name="Argument.value"/>
57
+ <stringProp name="Argument.metadata">=</stringProp>
58
+ </elementProp>
59
+ </collectionProp>
60
+ </elementProp>
61
+ <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
62
+ </JavaConfig>)
63
+ EOS
64
+ update params
65
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
66
+ end
67
+ end
68
+
69
+ end
@@ -0,0 +1,37 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def jdbc_connection_configuration(params={}, &block)
4
+ node = JmeterRuby::JdbcConnectionConfiguration.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JdbcConnectionConfiguration
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'JdbcConnectionConfiguration' : (params[:name] || 'JdbcConnectionConfiguration')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" testname="#{testname}" enabled="true">
17
+ <boolProp name="autocommit">true</boolProp>
18
+ <stringProp name="checkQuery">Select 1</stringProp>
19
+ <stringProp name="connectionAge">5000</stringProp>
20
+ <stringProp name="dataSource"/>
21
+ <stringProp name="dbUrl"/>
22
+ <stringProp name="driver"/>
23
+ <boolProp name="keepAlive">true</boolProp>
24
+ <stringProp name="password"/>
25
+ <stringProp name="poolMax">10</stringProp>
26
+ <stringProp name="timeout">10000</stringProp>
27
+ <stringProp name="transactionIsolation">DEFAULT</stringProp>
28
+ <stringProp name="trimInterval">60000</stringProp>
29
+ <stringProp name="username"/>
30
+ </JDBCDataSource>)
31
+ EOS
32
+ update params
33
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
34
+ end
35
+ end
36
+
37
+ end
@@ -0,0 +1,33 @@
1
+ module JmeterRuby
2
+ class DSL
3
+ def jdbc_postprocessor(params={}, &block)
4
+ node = JmeterRuby::JdbcPostprocessor.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JdbcPostprocessor
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ testname = params.kind_of?(Array) ? 'JdbcPostprocessor' : (params[:name] || 'JdbcPostprocessor')
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JDBCPostProcessor guiclass="TestBeanGUI" testclass="JDBCPostProcessor" testname="#{testname}" enabled="true">
17
+ <stringProp name="dataSource"/>
18
+ <stringProp name="query"/>
19
+ <stringProp name="queryArguments"/>
20
+ <stringProp name="queryArgumentsTypes"/>
21
+ <stringProp name="queryType">Select Statement</stringProp>
22
+ <stringProp name="resultVariable"/>
23
+ <stringProp name="variableNames"/>
24
+ <stringProp name="queryTimeout"/>
25
+ <stringProp name="resultSetHandler">Store as String</stringProp>
26
+ </JDBCPostProcessor>)
27
+ EOS
28
+ update params
29
+ update_at_xpath params if params.is_a?(Hash) && params[:update_at_xpath]
30
+ end
31
+ end
32
+
33
+ end