ruby-jmeter 2.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 (167) hide show
  1. data/.gitattributes +22 -0
  2. data/.gitignore +22 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +27 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +333 -0
  7. data/Rakefile +6 -0
  8. data/bin/grid +25 -0
  9. data/examples/basic_assertion.rb +13 -0
  10. data/examples/basic_auth.rb +11 -0
  11. data/examples/basic_cache.rb +11 -0
  12. data/examples/basic_cookies.rb +11 -0
  13. data/examples/basic_extract.rb +10 -0
  14. data/examples/basic_gc_dummy_sampler.rb +10 -0
  15. data/examples/basic_gc_results.rb +23 -0
  16. data/examples/basic_google.rb +8 -0
  17. data/examples/basic_grid.rb +8 -0
  18. data/examples/basic_header.rb +19 -0
  19. data/examples/basic_ldap_ext.rb +16 -0
  20. data/examples/basic_post.rb +15 -0
  21. data/examples/basic_query_params.rb +8 -0
  22. data/examples/basic_think_time.rb +15 -0
  23. data/examples/basic_throughput_controller.rb +14 -0
  24. data/examples/basic_throughput_shaping_timer.rb +21 -0
  25. data/examples/etsy_login_browse.rb +64 -0
  26. data/lib/ruby-jmeter.rb +18 -0
  27. data/lib/ruby-jmeter/DSL.md +237 -0
  28. data/lib/ruby-jmeter/dsl.rb +419 -0
  29. data/lib/ruby-jmeter/dsl/access_log_sampler.rb +32 -0
  30. data/lib/ruby-jmeter/dsl/aggregate_graph.rb +55 -0
  31. data/lib/ruby-jmeter/dsl/aggregate_report.rb +55 -0
  32. data/lib/ruby-jmeter/dsl/ajp13_sampler.rb +41 -0
  33. data/lib/ruby-jmeter/dsl/assertion_results.rb +55 -0
  34. data/lib/ruby-jmeter/dsl/beanshell_assertion.rb +28 -0
  35. data/lib/ruby-jmeter/dsl/beanshell_listener.rb +28 -0
  36. data/lib/ruby-jmeter/dsl/beanshell_postprocessor.rb +28 -0
  37. data/lib/ruby-jmeter/dsl/beanshell_preprocessor.rb +28 -0
  38. data/lib/ruby-jmeter/dsl/beanshell_sampler.rb +28 -0
  39. data/lib/ruby-jmeter/dsl/beanshell_timer.rb +28 -0
  40. data/lib/ruby-jmeter/dsl/bsf_assertion.rb +28 -0
  41. data/lib/ruby-jmeter/dsl/bsf_listener.rb +28 -0
  42. data/lib/ruby-jmeter/dsl/bsf_postprocessor.rb +28 -0
  43. data/lib/ruby-jmeter/dsl/bsf_preprocessor.rb +28 -0
  44. data/lib/ruby-jmeter/dsl/bsf_sampler.rb +28 -0
  45. data/lib/ruby-jmeter/dsl/bsf_timer.rb +28 -0
  46. data/lib/ruby-jmeter/dsl/compare_assertion.rb +27 -0
  47. data/lib/ruby-jmeter/dsl/comparison_assertion_visualizer.rb +55 -0
  48. data/lib/ruby-jmeter/dsl/constant_throughput_timer.rb +30 -0
  49. data/lib/ruby-jmeter/dsl/constant_timer.rb +25 -0
  50. data/lib/ruby-jmeter/dsl/counter.rb +31 -0
  51. data/lib/ruby-jmeter/dsl/cssjquery_extractor.rb +30 -0
  52. data/lib/ruby-jmeter/dsl/csv_data_set_config.rb +32 -0
  53. data/lib/ruby-jmeter/dsl/debug_postprocessor.rb +28 -0
  54. data/lib/ruby-jmeter/dsl/debug_sampler.rb +27 -0
  55. data/lib/ruby-jmeter/dsl/distribution_graphalpha.rb +55 -0
  56. data/lib/ruby-jmeter/dsl/duration_assertion.rb +25 -0
  57. data/lib/ruby-jmeter/dsl/foreach_controller.rb +29 -0
  58. data/lib/ruby-jmeter/dsl/ftp_request.rb +34 -0
  59. data/lib/ruby-jmeter/dsl/ftp_request_defaults.rb +32 -0
  60. data/lib/ruby-jmeter/dsl/gaussian_random_timer.rb +26 -0
  61. data/lib/ruby-jmeter/dsl/generate_summary_results.rb +23 -0
  62. data/lib/ruby-jmeter/dsl/graph_results.rb +55 -0
  63. data/lib/ruby-jmeter/dsl/html_assertion.rb +30 -0
  64. data/lib/ruby-jmeter/dsl/html_link_parser.rb +23 -0
  65. data/lib/ruby-jmeter/dsl/html_parameter_mask.rb +32 -0
  66. data/lib/ruby-jmeter/dsl/http_authorization_manager.rb +33 -0
  67. data/lib/ruby-jmeter/dsl/http_cache_manager.rb +26 -0
  68. data/lib/ruby-jmeter/dsl/http_cookie_manager.rb +27 -0
  69. data/lib/ruby-jmeter/dsl/http_header_manager.rb +30 -0
  70. data/lib/ruby-jmeter/dsl/http_request.rb +41 -0
  71. data/lib/ruby-jmeter/dsl/http_request_defaults.rb +44 -0
  72. data/lib/ruby-jmeter/dsl/http_url_rewriting_modifier.rb +29 -0
  73. data/lib/ruby-jmeter/dsl/if_controller.rb +27 -0
  74. data/lib/ruby-jmeter/dsl/include_controller.rb +25 -0
  75. data/lib/ruby-jmeter/dsl/java_request.rb +69 -0
  76. data/lib/ruby-jmeter/dsl/java_request_defaults.rb +69 -0
  77. data/lib/ruby-jmeter/dsl/jdbc_connection_configuration.rb +37 -0
  78. data/lib/ruby-jmeter/dsl/jdbc_postprocessor.rb +31 -0
  79. data/lib/ruby-jmeter/dsl/jdbc_preprocessor.rb +31 -0
  80. data/lib/ruby-jmeter/dsl/jdbc_request.rb +31 -0
  81. data/lib/ruby-jmeter/dsl/jms_pointtopoint.rb +40 -0
  82. data/lib/ruby-jmeter/dsl/jms_publisher.rb +41 -0
  83. data/lib/ruby-jmeter/dsl/jms_subscriber.rb +35 -0
  84. data/lib/ruby-jmeter/dsl/jsr223_assertion.rb +29 -0
  85. data/lib/ruby-jmeter/dsl/jsr223_listener.rb +29 -0
  86. data/lib/ruby-jmeter/dsl/jsr223_postprocessor.rb +29 -0
  87. data/lib/ruby-jmeter/dsl/jsr223_preprocessor.rb +29 -0
  88. data/lib/ruby-jmeter/dsl/jsr223_sampler.rb +29 -0
  89. data/lib/ruby-jmeter/dsl/jsr223_timer.rb +29 -0
  90. data/lib/ruby-jmeter/dsl/junit_request.rb +37 -0
  91. data/lib/ruby-jmeter/dsl/keystore_configuration.rb +27 -0
  92. data/lib/ruby-jmeter/dsl/ldap_extended_request.rb +42 -0
  93. data/lib/ruby-jmeter/dsl/ldap_extended_request_defaults.rb +42 -0
  94. data/lib/ruby-jmeter/dsl/ldap_request.rb +35 -0
  95. data/lib/ruby-jmeter/dsl/ldap_request_defaults.rb +40 -0
  96. data/lib/ruby-jmeter/dsl/login_config_element.rb +26 -0
  97. data/lib/ruby-jmeter/dsl/loop_controller.rb +26 -0
  98. data/lib/ruby-jmeter/dsl/mail_reader_sampler.rb +37 -0
  99. data/lib/ruby-jmeter/dsl/mailer_visualizer.rb +64 -0
  100. data/lib/ruby-jmeter/dsl/md5hex_assertion.rb +25 -0
  101. data/lib/ruby-jmeter/dsl/module_controller.rb +23 -0
  102. data/lib/ruby-jmeter/dsl/monitor_results.rb +55 -0
  103. data/lib/ruby-jmeter/dsl/once_only_controller.rb +23 -0
  104. data/lib/ruby-jmeter/dsl/os_process_sampler.rb +34 -0
  105. data/lib/ruby-jmeter/dsl/poisson_random_timer.rb +26 -0
  106. data/lib/ruby-jmeter/dsl/random_controller.rb +25 -0
  107. data/lib/ruby-jmeter/dsl/random_order_controller.rb +23 -0
  108. data/lib/ruby-jmeter/dsl/random_variable.rb +30 -0
  109. data/lib/ruby-jmeter/dsl/recording_controller.rb +23 -0
  110. data/lib/ruby-jmeter/dsl/regex_user_parameters.rb +27 -0
  111. data/lib/ruby-jmeter/dsl/regular_expression_extractor.rb +31 -0
  112. data/lib/ruby-jmeter/dsl/response_assertion.rb +31 -0
  113. data/lib/ruby-jmeter/dsl/response_time_graph.rb +55 -0
  114. data/lib/ruby-jmeter/dsl/result_status_action_handler.rb +25 -0
  115. data/lib/ruby-jmeter/dsl/runtime_controller.rb +25 -0
  116. data/lib/ruby-jmeter/dsl/save_responses_to_a_file.rb +29 -0
  117. data/lib/ruby-jmeter/dsl/simple_config_element.rb +23 -0
  118. data/lib/ruby-jmeter/dsl/simple_controller.rb +23 -0
  119. data/lib/ruby-jmeter/dsl/simple_data_writer.rb +55 -0
  120. data/lib/ruby-jmeter/dsl/smime_assertion.rb +35 -0
  121. data/lib/ruby-jmeter/dsl/smtp_sampler.rb +51 -0
  122. data/lib/ruby-jmeter/dsl/soapxmlrpc_request.rb +33 -0
  123. data/lib/ruby-jmeter/dsl/spline_visualizer.rb +55 -0
  124. data/lib/ruby-jmeter/dsl/summary_report.rb +55 -0
  125. data/lib/ruby-jmeter/dsl/switch_controller.rb +25 -0
  126. data/lib/ruby-jmeter/dsl/synchronizing_timer.rb +25 -0
  127. data/lib/ruby-jmeter/dsl/tcp_sampler.rb +33 -0
  128. data/lib/ruby-jmeter/dsl/tcp_sampler_config.rb +31 -0
  129. data/lib/ruby-jmeter/dsl/test_action.rb +27 -0
  130. data/lib/ruby-jmeter/dsl/test_plan.rb +31 -0
  131. data/lib/ruby-jmeter/dsl/thread_group.rb +36 -0
  132. data/lib/ruby-jmeter/dsl/throughput_controller.rb +32 -0
  133. data/lib/ruby-jmeter/dsl/transaction_controller.rb +26 -0
  134. data/lib/ruby-jmeter/dsl/uniform_random_timer.rb +26 -0
  135. data/lib/ruby-jmeter/dsl/user_defined_variables.rb +32 -0
  136. data/lib/ruby-jmeter/dsl/user_parameters.rb +29 -0
  137. data/lib/ruby-jmeter/dsl/view_results_in_table.rb +55 -0
  138. data/lib/ruby-jmeter/dsl/view_results_tree.rb +55 -0
  139. data/lib/ruby-jmeter/dsl/while_controller.rb +25 -0
  140. data/lib/ruby-jmeter/dsl/xml_assertion.rb +23 -0
  141. data/lib/ruby-jmeter/dsl/xml_schema_assertion.rb +25 -0
  142. data/lib/ruby-jmeter/dsl/xpath_assertion.rb +30 -0
  143. data/lib/ruby-jmeter/dsl/xpath_extractor.rb +30 -0
  144. data/lib/ruby-jmeter/helpers/fallback_content_proxy.rb +54 -0
  145. data/lib/ruby-jmeter/helpers/helper.rb +41 -0
  146. data/lib/ruby-jmeter/helpers/jmeter.properties +28 -0
  147. data/lib/ruby-jmeter/helpers/logger-colors.rb +48 -0
  148. data/lib/ruby-jmeter/helpers/parser.rb +106 -0
  149. data/lib/ruby-jmeter/helpers/strip-heredoc.rb +5 -0
  150. data/lib/ruby-jmeter/helpers/user-agents.rb +27 -0
  151. data/lib/ruby-jmeter/idl.rb +70 -0
  152. data/lib/ruby-jmeter/idl.xml +1513 -0
  153. data/lib/ruby-jmeter/plugins/gc_console_status_logger.rb +14 -0
  154. data/lib/ruby-jmeter/plugins/gc_dummy_sampler.rb +23 -0
  155. data/lib/ruby-jmeter/plugins/gc_latencies_over_time.rb +48 -0
  156. data/lib/ruby-jmeter/plugins/gc_response_codes_per_second.rb +48 -0
  157. data/lib/ruby-jmeter/plugins/gc_response_times_distribution.rb +47 -0
  158. data/lib/ruby-jmeter/plugins/gc_response_times_over_time.rb +48 -0
  159. data/lib/ruby-jmeter/plugins/gc_response_times_percentiles.rb +48 -0
  160. data/lib/ruby-jmeter/plugins/gc_transactions_per_second.rb +48 -0
  161. data/lib/ruby-jmeter/plugins/gc_variable_throughput_timer.rb +26 -0
  162. data/lib/ruby-jmeter/version.rb +3 -0
  163. data/ruby-jmeter.gemspec +22 -0
  164. data/spec/dsl_spec.rb +491 -0
  165. data/spec/spec_helper.rb +10 -0
  166. data/spec/stub.rb +31 -0
  167. metadata +244 -0
@@ -0,0 +1,41 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def http_request(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HttpRequest'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="#{params[:name]}" enabled="true">
17
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="#{params[:name]}" 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[:update_at_xpath]
38
+ end
39
+ end
40
+
41
+ end
@@ -0,0 +1,44 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def http_request_defaults(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HttpRequestDefaults'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="#{params[:name]}" enabled="true">
17
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="#{params[:name]}" 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">/</stringProp>
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
+ <boolProp name="HTTPSampler.image_parser">false</boolProp>
34
+ <stringProp name="HTTPSampler.embedded_url_re"/>
35
+ <boolProp name="HTTPSampler.concurrentDwn">false</boolProp>
36
+ <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
37
+ </ConfigTestElement>)
38
+ EOS
39
+ update params
40
+ update_at_xpath params if params[:update_at_xpath]
41
+ end
42
+ end
43
+
44
+ end
@@ -0,0 +1,29 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def http_url_rewriting_modifier(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HttpUrlRewritingModifier'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <URLRewritingModifier guiclass="URLRewritingModifierGui" testclass="URLRewritingModifier" testname="#{params[:name]}" 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
+ </URLRewritingModifier>)
23
+ EOS
24
+ update params
25
+ update_at_xpath params if params[:update_at_xpath]
26
+ end
27
+ end
28
+
29
+ end
@@ -0,0 +1,27 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def if_controller(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'IfController'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <IfController guiclass="IfControllerPanel" testclass="IfController" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="IfController.condition"/>
18
+ <boolProp name="IfController.evaluateAll">false</boolProp>
19
+ <boolProp name="IfController.useExpression">false</boolProp>
20
+ </IfController>)
21
+ EOS
22
+ update params
23
+ update_at_xpath params if params[:update_at_xpath]
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,25 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def include_controller(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'IncludeController'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <IncludeController guiclass="IncludeControllerGui" testclass="IncludeController" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="IncludeController.includepath"/>
18
+ </IncludeController>)
19
+ EOS
20
+ update params
21
+ update_at_xpath params if params[:update_at_xpath]
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,69 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def java_request(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'JavaRequest'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="#{params[:name]}" 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[:update_at_xpath]
66
+ end
67
+ end
68
+
69
+ end
@@ -0,0 +1,69 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def java_request_defaults(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'JavaRequestDefaults'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JavaConfig guiclass="JavaConfigGui" testclass="JavaConfig" testname="#{params[:name]}" 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[:update_at_xpath]
66
+ end
67
+ end
68
+
69
+ end
@@ -0,0 +1,37 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jdbc_connection_configuration(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'JdbcConnectionConfiguration'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" testname="#{params[:name]}" 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[:update_at_xpath]
34
+ end
35
+ end
36
+
37
+ end
@@ -0,0 +1,31 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jdbc_postprocessor(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'JdbcPostprocessor'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JDBCPostProcessor guiclass="TestBeanGUI" testclass="JDBCPostProcessor" testname="#{params[:name]}" 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
+ </JDBCPostProcessor>)
25
+ EOS
26
+ update params
27
+ update_at_xpath params if params[:update_at_xpath]
28
+ end
29
+ end
30
+
31
+ end
@@ -0,0 +1,31 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jdbc_preprocessor(params={}, &block)
4
+ node = RubyJmeter::JdbcPreprocessor.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JdbcPreprocessor
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'JdbcPreprocessor'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JDBCPreProcessor guiclass="TestBeanGUI" testclass="JDBCPreProcessor" testname="#{params[:name]}" 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
+ </JDBCPreProcessor>)
25
+ EOS
26
+ update params
27
+ update_at_xpath params if params[:update_at_xpath]
28
+ end
29
+ end
30
+
31
+ end
@@ -0,0 +1,31 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jdbc_request(params={}, &block)
4
+ node = RubyJmeter::JdbcRequest.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JdbcRequest
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'JdbcRequest'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="#{params[:name]}" 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
+ </JDBCSampler>)
25
+ EOS
26
+ update params
27
+ update_at_xpath params if params[:update_at_xpath]
28
+ end
29
+ end
30
+
31
+ end