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,40 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jms_pointtopoint(params={}, &block)
4
+ node = RubyJmeter::JmsPointtopoint.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JmsPointtopoint
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'JmsPointtopoint'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JMSSampler guiclass="JMSSamplerGui" testclass="JMSSampler" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="JMSSampler.queueconnectionfactory"/>
18
+ <stringProp name="JMSSampler.SendQueue"/>
19
+ <stringProp name="JMSSampler.ReceiveQueue"/>
20
+ <boolProp name="JMSSampler.isFireAndForget">true</boolProp>
21
+ <boolProp name="JMSSampler.isNonPersistent">false</boolProp>
22
+ <boolProp name="JMSSampler.useReqMsgIdAsCorrelId">false</boolProp>
23
+ <stringProp name="JMSSampler.timeout"/>
24
+ <stringProp name="HTTPSamper.xml_data"/>
25
+ <stringProp name="JMSSampler.initialContextFactory"/>
26
+ <stringProp name="JMSSampler.contextProviderUrl"/>
27
+ <elementProp name="JMSSampler.jndiProperties" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="#{params[:name]}" enabled="true">
28
+ <collectionProp name="Arguments.arguments"/>
29
+ </elementProp>
30
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="#{params[:name]}" enabled="true">
31
+ <collectionProp name="Arguments.arguments"/>
32
+ </elementProp>
33
+ </JMSSampler>)
34
+ EOS
35
+ update params
36
+ update_at_xpath params if params[:update_at_xpath]
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,41 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jms_publisher(params={}, &block)
4
+ node = RubyJmeter::JmsPublisher.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JmsPublisher
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'JmsPublisher'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <PublisherSampler guiclass="JMSPublisherGui" testclass="PublisherSampler" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="jms.jndi_properties">false</stringProp>
18
+ <stringProp name="jms.initial_context_factory"/>
19
+ <stringProp name="jms.provider_url"/>
20
+ <stringProp name="jms.connection_factory"/>
21
+ <stringProp name="jms.topic"/>
22
+ <stringProp name="jms.security_principle"/>
23
+ <stringProp name="jms.security_credentials"/>
24
+ <stringProp name="jms.text_message"/>
25
+ <stringProp name="jms.input_file"/>
26
+ <stringProp name="jms.random_path"/>
27
+ <stringProp name="jms.config_choice">jms_use_text</stringProp>
28
+ <stringProp name="jms.config_msg_type">jms_text_message</stringProp>
29
+ <stringProp name="jms.iterations">1</stringProp>
30
+ <boolProp name="jms.authenticate">false</boolProp>
31
+ <elementProp name="jms.jmsProperties" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="#{params[:name]}" enabled="true">
32
+ <collectionProp name="Arguments.arguments"/>
33
+ </elementProp>
34
+ </PublisherSampler>)
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,35 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jms_subscriber(params={}, &block)
4
+ node = RubyJmeter::JmsSubscriber.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JmsSubscriber
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'JmsSubscriber'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <SubscriberSampler guiclass="JMSSubscriberGui" testclass="SubscriberSampler" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="jms.jndi_properties">false</stringProp>
18
+ <stringProp name="jms.initial_context_factory"/>
19
+ <stringProp name="jms.provider_url"/>
20
+ <stringProp name="jms.connection_factory"/>
21
+ <stringProp name="jms.topic"/>
22
+ <stringProp name="jms.security_principle"/>
23
+ <stringProp name="jms.security_credentials"/>
24
+ <boolProp name="jms.authenticate">false</boolProp>
25
+ <stringProp name="jms.iterations">1</stringProp>
26
+ <stringProp name="jms.read_response">true</stringProp>
27
+ <stringProp name="jms.client_choice">jms_subscriber_receive</stringProp>
28
+ </SubscriberSampler>)
29
+ EOS
30
+ update params
31
+ update_at_xpath params if params[:update_at_xpath]
32
+ end
33
+ end
34
+
35
+ end
@@ -0,0 +1,29 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jsr223_assertion(params={}, &block)
4
+ node = RubyJmeter::Jsr223Assertion.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class Jsr223Assertion
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'Jsr223Assertion'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="scriptLanguage"/>
18
+ <stringProp name="parameters"/>
19
+ <stringProp name="filename"/>
20
+ <stringProp name="cacheKey"/>
21
+ <stringProp name="script"/>
22
+ </JSR223Assertion>)
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,29 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jsr223_listener(params={}, &block)
4
+ node = RubyJmeter::Jsr223Listener.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class Jsr223Listener
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'Jsr223Listener'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JSR223Listener guiclass="TestBeanGUI" testclass="JSR223Listener" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="cacheKey"/>
18
+ <stringProp name="filename"/>
19
+ <stringProp name="parameters"/>
20
+ <stringProp name="script"/>
21
+ <stringProp name="scriptLanguage"/>
22
+ </JSR223Listener>)
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,29 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jsr223_postprocessor(params={}, &block)
4
+ node = RubyJmeter::Jsr223Postprocessor.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class Jsr223Postprocessor
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'Jsr223Postprocessor'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="cacheKey"/>
18
+ <stringProp name="filename"/>
19
+ <stringProp name="parameters"/>
20
+ <stringProp name="script"/>
21
+ <stringProp name="scriptLanguage"/>
22
+ </JSR223PostProcessor>)
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,29 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jsr223_preprocessor(params={}, &block)
4
+ node = RubyJmeter::Jsr223Preprocessor.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class Jsr223Preprocessor
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'Jsr223Preprocessor'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="cacheKey"/>
18
+ <stringProp name="filename"/>
19
+ <stringProp name="parameters"/>
20
+ <stringProp name="script"/>
21
+ <stringProp name="scriptLanguage"/>
22
+ </JSR223PreProcessor>)
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,29 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jsr223_sampler(params={}, &block)
4
+ node = RubyJmeter::Jsr223Sampler.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class Jsr223Sampler
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'Jsr223Sampler'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="cacheKey"/>
18
+ <stringProp name="filename"/>
19
+ <stringProp name="parameters"/>
20
+ <stringProp name="script"/>
21
+ <stringProp name="scriptLanguage"/>
22
+ </JSR223Sampler>)
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,29 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def jsr223_timer(params={}, &block)
4
+ node = RubyJmeter::Jsr223Timer.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class Jsr223Timer
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'Jsr223Timer'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JSR223Timer guiclass="TestBeanGUI" testclass="JSR223Timer" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="cacheKey"/>
18
+ <stringProp name="filename"/>
19
+ <stringProp name="parameters"/>
20
+ <stringProp name="script"/>
21
+ <stringProp name="scriptLanguage"/>
22
+ </JSR223Timer>)
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,37 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def junit_request(params={}, &block)
4
+ node = RubyJmeter::JunitRequest.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class JunitRequest
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'JunitRequest'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <JUnitSampler guiclass="JUnitTestSamplerGui" testclass="JUnitSampler" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="junitSampler.classname">test.RerunTest</stringProp>
18
+ <stringProp name="junitsampler.constructorstring"/>
19
+ <stringProp name="junitsampler.method">testRerun</stringProp>
20
+ <stringProp name="junitsampler.pkg.filter"/>
21
+ <stringProp name="junitsampler.success">Test successful</stringProp>
22
+ <stringProp name="junitsampler.success.code">1000</stringProp>
23
+ <stringProp name="junitsampler.failure">Test failed</stringProp>
24
+ <stringProp name="junitsampler.failure.code">0001</stringProp>
25
+ <stringProp name="junitsampler.error">An unexpected error occured</stringProp>
26
+ <stringProp name="junitsampler.error.code">9999</stringProp>
27
+ <stringProp name="junitsampler.exec.setup">false</stringProp>
28
+ <stringProp name="junitsampler.append.error">false</stringProp>
29
+ <stringProp name="junitsampler.append.exception">false</stringProp>
30
+ </JUnitSampler>)
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,27 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def keystore_configuration(params={}, &block)
4
+ node = RubyJmeter::KeystoreConfiguration.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class KeystoreConfiguration
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'KeystoreConfiguration'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <KeystoreConfig guiclass="TestBeanGUI" testclass="KeystoreConfig" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="endIndex"/>
18
+ <stringProp name="preload">True</stringProp>
19
+ <stringProp name="startIndex"/>
20
+ </KeystoreConfig>)
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,42 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def ldap_extended_request(params={}, &block)
4
+ node = RubyJmeter::LdapExtendedRequest.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class LdapExtendedRequest
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'LdapExtendedRequest'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <LDAPExtSampler guiclass="LdapExtTestSamplerGui" testclass="LDAPExtSampler" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="servername"/>
18
+ <stringProp name="port"/>
19
+ <stringProp name="rootdn"/>
20
+ <stringProp name="scope">2</stringProp>
21
+ <stringProp name="countlimit"/>
22
+ <stringProp name="timelimit"/>
23
+ <stringProp name="attributes"/>
24
+ <stringProp name="return_object">false</stringProp>
25
+ <stringProp name="deref_aliases">false</stringProp>
26
+ <stringProp name="connection_timeout"/>
27
+ <stringProp name="parseflag">false</stringProp>
28
+ <stringProp name="secure">false</stringProp>
29
+ <stringProp name="user_dn"/>
30
+ <stringProp name="user_pw"/>
31
+ <stringProp name="comparedn"/>
32
+ <stringProp name="comparefilt"/>
33
+ <stringProp name="modddn"/>
34
+ <stringProp name="newdn"/>
35
+ </LDAPExtSampler>)
36
+ EOS
37
+ update params
38
+ update_at_xpath params if params[:update_at_xpath]
39
+ end
40
+ end
41
+
42
+ end
@@ -0,0 +1,42 @@
1
+ module RubyJmeter
2
+ class DSL
3
+ def ldap_extended_request_defaults(params={}, &block)
4
+ node = RubyJmeter::LdapExtendedRequestDefaults.new(params)
5
+ attach_node(node, &block)
6
+ end
7
+ end
8
+
9
+ class LdapExtendedRequestDefaults
10
+ attr_accessor :doc
11
+ include Helper
12
+
13
+ def initialize(params={})
14
+ params[:name] ||= 'LdapExtendedRequestDefaults'
15
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
16
+ <ConfigTestElement guiclass="LdapExtConfigGui" testclass="ConfigTestElement" testname="#{params[:name]}" enabled="true">
17
+ <stringProp name="servername"/>
18
+ <stringProp name="port"/>
19
+ <stringProp name="rootdn"/>
20
+ <stringProp name="scope">2</stringProp>
21
+ <stringProp name="countlimit"/>
22
+ <stringProp name="timelimit"/>
23
+ <stringProp name="attributes"/>
24
+ <stringProp name="return_object">false</stringProp>
25
+ <stringProp name="deref_aliases">false</stringProp>
26
+ <stringProp name="connection_timeout"/>
27
+ <stringProp name="parseflag">false</stringProp>
28
+ <stringProp name="secure">false</stringProp>
29
+ <stringProp name="user_dn"/>
30
+ <stringProp name="user_pw"/>
31
+ <stringProp name="comparedn"/>
32
+ <stringProp name="comparefilt"/>
33
+ <stringProp name="modddn"/>
34
+ <stringProp name="newdn"/>
35
+ </ConfigTestElement>)
36
+ EOS
37
+ update params
38
+ update_at_xpath params if params[:update_at_xpath]
39
+ end
40
+ end
41
+
42
+ end