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,25 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def duration_assertion(params={}, &block)
4
+ node = RubyJmeter::DurationAssertion.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class DurationAssertion
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'DurationAssertion'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <DurationAssertion guiclass="DurationAssertionGui" testclass="DurationAssertion" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="DurationAssertion.duration"/>
18
+ </DurationAssertion>)
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,29 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def foreach_controller(params={}, &block)
4
+ node = RubyJmeter::ForeachController.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class ForeachController
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'ForeachController'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="ForeachController.inputVal"/>
18
+ <stringProp name="ForeachController.returnVal"/>
19
+ <boolProp name="ForeachController.useSeparator">true</boolProp>
20
+ <stringProp name="ForeachController.endIndex"/>
21
+ <stringProp name="ForeachController.startIndex"/>
22
+ </ForeachController>)
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,34 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def ftp_request(params={}, &block)
4
+ node = RubyJmeter::FtpRequest.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class FtpRequest
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'FtpRequest'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <FTPSampler guiclass="FtpTestSamplerGui" testclass="FTPSampler" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="FTPSampler.server"/>
18
+ <stringProp name="FTPSampler.port"/>
19
+ <stringProp name="FTPSampler.filename"/>
20
+ <stringProp name="FTPSampler.localfilename"/>
21
+ <stringProp name="FTPSampler.inputdata"/>
22
+ <boolProp name="FTPSampler.binarymode">false</boolProp>
23
+ <boolProp name="FTPSampler.saveresponse">false</boolProp>
24
+ <boolProp name="FTPSampler.upload">false</boolProp>
25
+ <stringProp name="ConfigTestElement.username"/>
26
+ <stringProp name="ConfigTestElement.password"/>
27
+ </FTPSampler>)
28
+ EOS
29
+ update params
30
+ update_at_xpath params if params[:update_at_xpath]
31
+ end
32
+ end
33
+
34
+ end
@@ -0,0 +1,32 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def ftp_request_defaults(params={}, &block)
4
+ node = RubyJmeter::FtpRequestDefaults.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class FtpRequestDefaults
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'FtpRequestDefaults'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ConfigTestElement guiclass="FtpConfigGui" testclass="ConfigTestElement" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="FTPSampler.server"/>
18
+ <stringProp name="FTPSampler.port"/>
19
+ <stringProp name="FTPSampler.filename"/>
20
+ <stringProp name="FTPSampler.localfilename"/>
21
+ <stringProp name="FTPSampler.inputdata"/>
22
+ <boolProp name="FTPSampler.binarymode">false</boolProp>
23
+ <boolProp name="FTPSampler.saveresponse">false</boolProp>
24
+ <boolProp name="FTPSampler.upload">false</boolProp>
25
+ </ConfigTestElement>)
26
+ EOS
27
+ update params
28
+ update_at_xpath params if params[:update_at_xpath]
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,26 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def gaussian_random_timer(params={}, &block)
4
+ node = RubyJmeter::GaussianRandomTimer.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class GaussianRandomTimer
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'GaussianRandomTimer'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="ConstantTimer.delay">300</stringProp>
18
+ <stringProp name="RandomTimer.range">100.0</stringProp>
19
+ </GaussianRandomTimer>)
20
+ EOS
21
+ update params
22
+ update_at_xpath params if params[:update_at_xpath]
23
+ end
24
+ end
25
+
26
+ end
@@ -0,0 +1,23 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def generate_summary_results(params={}, &block)
4
+ node = RubyJmeter::GenerateSummaryResults.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class GenerateSummaryResults
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'GenerateSummaryResults'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <Summariser guiclass="SummariserGui" testclass="Summariser" testname="#{params[:name]}" enabled="true"/>)
17
+ EOS
18
+ update params
19
+ update_at_xpath params if params[:update_at_xpath]
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,55 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def graph_results(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'GraphResults'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="#{params[:name]}" 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[:update_at_xpath]
52
+ end
53
+ end
54
+
55
+ end
@@ -0,0 +1,30 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def html_assertion(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HtmlAssertion'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <HTMLAssertion guiclass="HTMLAssertionGui" testclass="HTMLAssertion" testname="#{params[:name]}" 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[:update_at_xpath]
27
+ end
28
+ end
29
+
30
+ end
@@ -0,0 +1,23 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def html_link_parser(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HtmlLinkParser'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <AnchorModifier guiclass="AnchorModifierGui" testclass="AnchorModifier" testname="#{params[:name]}" enabled="true"/>)
17
+ EOS
18
+ update params
19
+ update_at_xpath params if params[:update_at_xpath]
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,32 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def html_parameter_mask(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HtmlParameterMask'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ParamModifier guiclass="ParamModifierGui" testclass="ParamModifier" testname="#{params[:name]}" enabled="true">
17
+ <elementProp name="ParamModifier.mask" elementType="ParamMask">
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
+ </ParamModifier>)
26
+ EOS
27
+ update params
28
+ update_at_xpath params if params[:update_at_xpath]
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,33 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def http_authorization_manager(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HttpAuthorizationManager'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="#{params[:name]}" 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[:update_at_xpath]
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,26 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def http_cache_manager(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HttpCacheManager'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <CacheManager guiclass="CacheManagerGui" testclass="CacheManager" testname="#{params[:name]}" 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[:update_at_xpath]
23
+ end
24
+ end
25
+
26
+ end
@@ -0,0 +1,27 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def http_cookie_manager(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HttpCookieManager'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="#{params[:name]}" enabled="true">
17
+ <collectionProp name="CookieManager.cookies"/>
18
+ <boolProp name="CookieManager.clearEachIteration">false</boolProp>
19
+ <stringProp name="CookieManager.policy">default</stringProp>
20
+ </CookieManager>)
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,30 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def http_header_manager(params={}, &block)
4
+ node = RubyJmeter::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
+ params[:name] ||= 'HttpHeaderManager'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="#{params[:name]}" 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[:update_at_xpath]
27
+ end
28
+ end
29
+
30
+ end