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,23 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def random_order_controller(params={}, &block)
4
+ node = RubyJmeter::RandomOrderController.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class RandomOrderController
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'RandomOrderController'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <RandomOrderController guiclass="RandomOrderControllerGui" testclass="RandomOrderController" 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,30 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def random_variable(params={}, &block)
4
+ node = RubyJmeter::RandomVariable.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class RandomVariable
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'RandomVariable'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <RandomVariableConfig guiclass="TestBeanGUI" testclass="RandomVariableConfig" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="maximumValue"/>
18
+ <stringProp name="minimumValue">1</stringProp>
19
+ <stringProp name="outputFormat"/>
20
+ <boolProp name="perThread">false</boolProp>
21
+ <stringProp name="randomSeed"/>
22
+ <stringProp name="variableName"/>
23
+ </RandomVariableConfig>)
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 recording_controller(params={}, &block)
4
+ node = RubyJmeter::RecordingController.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class RecordingController
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'RecordingController'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <RecordingController guiclass="RecordController" testclass="RecordingController" 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,27 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def regex_user_parameters(params={}, &block)
4
+ node = RubyJmeter::RegexUserParameters.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class RegexUserParameters
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'RegexUserParameters'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <RegExUserParameters guiclass="RegExUserParametersGui" testclass="RegExUserParameters" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="RegExUserParameters.regex_ref_name"/>
18
+ <stringProp name="RegExUserParameters.param_names_gr_nr"/>
19
+ <stringProp name="RegExUserParameters.param_values_gr_nr"/>
20
+ </RegExUserParameters>)
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,31 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def regular_expression_extractor(params={}, &block)
4
+ node = RubyJmeter::RegularExpressionExtractor.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class RegularExpressionExtractor
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'RegularExpressionExtractor'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="RegexExtractor.useHeaders">false</stringProp>
18
+ <stringProp name="RegexExtractor.refname"/>
19
+ <stringProp name="RegexExtractor.regex"/>
20
+ <stringProp name="RegexExtractor.template"/>
21
+ <stringProp name="RegexExtractor.default"/>
22
+ <stringProp name="RegexExtractor.match_number"/>
23
+ <stringProp name="Sample.scope">all</stringProp>
24
+ </RegexExtractor>)
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 response_assertion(params={}, &block)
4
+ node = RubyJmeter::ResponseAssertion.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class ResponseAssertion
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'ResponseAssertion'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="#{params[:name]}" enabled="true">
17
+ <collectionProp name="Asserion.test_strings">
18
+ <stringProp name="match"/>
19
+ </collectionProp>
20
+ <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
21
+ <boolProp name="Assertion.assume_success">false</boolProp>
22
+ <intProp name="Assertion.test_type">2</intProp>
23
+ <stringProp name="Assertion.scope">all</stringProp>
24
+ </ResponseAssertion>)
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,55 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def response_time_graph(params={}, &block)
4
+ node = RubyJmeter::ResponseTimeGraph.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class ResponseTimeGraph
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'ResponseTimeGraph'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ResultCollector guiclass="RespTimeGraphVisualizer" 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,25 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def result_status_action_handler(params={}, &block)
4
+ node = RubyJmeter::ResultStatusActionHandler.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class ResultStatusActionHandler
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'ResultStatusActionHandler'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ResultAction guiclass="ResultActionGui" testclass="ResultAction" testname="#{params[:name]}" enabled="true">
17
+ <intProp name="OnError.action">0</intProp>
18
+ </ResultAction>)
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,25 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def runtime_controller(params={}, &block)
4
+ node = RubyJmeter::RuntimeController.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class RuntimeController
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'RuntimeController'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <RunTime guiclass="RunTimeGui" testclass="RunTime" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="RunTime.seconds">1</stringProp>
18
+ </RunTime>)
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 save_responses_to_a_file(params={}, &block)
4
+ node = RubyJmeter::SaveResponsesToAFile.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class SaveResponsesToAFile
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'SaveResponsesToAFile'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="FileSaver.filename"/>
18
+ <boolProp name="FileSaver.errorsonly">false</boolProp>
19
+ <boolProp name="FileSaver.skipautonumber">false</boolProp>
20
+ <boolProp name="FileSaver.skipsuffix">false</boolProp>
21
+ <boolProp name="FileSaver.successonly">false</boolProp>
22
+ </ResultSaver>)
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,23 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def simple_config_element(params={}, &block)
4
+ node = RubyJmeter::SimpleConfigElement.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class SimpleConfigElement
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'SimpleConfigElement'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ConfigTestElement guiclass="SimpleConfigGui" testclass="ConfigTestElement" 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,23 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def simple_controller(params={}, &block)
4
+ node = RubyJmeter::SimpleController.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class SimpleController
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'SimpleController'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <GenericController guiclass="LogicControllerGui" testclass="GenericController" 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 simple_data_writer(params={}, &block)
4
+ node = RubyJmeter::SimpleDataWriter.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class SimpleDataWriter
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'SimpleDataWriter'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ResultCollector guiclass="SimpleDataWriter" 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>true</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>true</xml>
36
+ <fieldNames>false</fieldNames>
37
+ <responseHeaders>true</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,35 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def smime_assertion(params={}, &block)
4
+ node = RubyJmeter::SmimeAssertion.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class SmimeAssertion
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'SmimeAssertion'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <SMIMEAssertion guiclass="SMIMEAssertionGui" testclass="SMIMEAssertion" testname="#{params[:name]}" enabled="true">
17
+ <boolProp name="SMIMEAssert.verifySignature">false</boolProp>
18
+ <boolProp name="SMIMEAssert.notSigned">false</boolProp>
19
+ <stringProp name="SMIMEAssert.issuerDn"/>
20
+ <stringProp name="SMIMEAssert.signerDn"/>
21
+ <stringProp name="SMIMEAssert.signerSerial"/>
22
+ <stringProp name="SMIMEAssert.signerEmail"/>
23
+ <stringProp name="SMIMEAssert.signerCertFile"/>
24
+ <boolProp name="SMIMEAssert.signerNoCheck">false</boolProp>
25
+ <boolProp name="SMIMEAssert.signerCheckConstraints">false</boolProp>
26
+ <boolProp name="SMIMEAssert.signerCheckByFile">false</boolProp>
27
+ <stringProp name="SMIMEAssert.messagePosition"/>
28
+ </SMIMEAssertion>)
29
+ EOS
30
+ update params
31
+ update_at_xpath params if params[:update_at_xpath]
32
+ end
33
+ end
34
+
35
+ end