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.
- data/.gitattributes +22 -0
- data/.gitignore +22 -0
- data/.rspec +2 -0
- data/Gemfile +27 -0
- data/LICENSE.txt +22 -0
- data/README.md +333 -0
- data/Rakefile +6 -0
- data/bin/grid +25 -0
- data/examples/basic_assertion.rb +13 -0
- data/examples/basic_auth.rb +11 -0
- data/examples/basic_cache.rb +11 -0
- data/examples/basic_cookies.rb +11 -0
- data/examples/basic_extract.rb +10 -0
- data/examples/basic_gc_dummy_sampler.rb +10 -0
- data/examples/basic_gc_results.rb +23 -0
- data/examples/basic_google.rb +8 -0
- data/examples/basic_grid.rb +8 -0
- data/examples/basic_header.rb +19 -0
- data/examples/basic_ldap_ext.rb +16 -0
- data/examples/basic_post.rb +15 -0
- data/examples/basic_query_params.rb +8 -0
- data/examples/basic_think_time.rb +15 -0
- data/examples/basic_throughput_controller.rb +14 -0
- data/examples/basic_throughput_shaping_timer.rb +21 -0
- data/examples/etsy_login_browse.rb +64 -0
- data/lib/ruby-jmeter.rb +18 -0
- data/lib/ruby-jmeter/DSL.md +237 -0
- data/lib/ruby-jmeter/dsl.rb +419 -0
- data/lib/ruby-jmeter/dsl/access_log_sampler.rb +32 -0
- data/lib/ruby-jmeter/dsl/aggregate_graph.rb +55 -0
- data/lib/ruby-jmeter/dsl/aggregate_report.rb +55 -0
- data/lib/ruby-jmeter/dsl/ajp13_sampler.rb +41 -0
- data/lib/ruby-jmeter/dsl/assertion_results.rb +55 -0
- data/lib/ruby-jmeter/dsl/beanshell_assertion.rb +28 -0
- data/lib/ruby-jmeter/dsl/beanshell_listener.rb +28 -0
- data/lib/ruby-jmeter/dsl/beanshell_postprocessor.rb +28 -0
- data/lib/ruby-jmeter/dsl/beanshell_preprocessor.rb +28 -0
- data/lib/ruby-jmeter/dsl/beanshell_sampler.rb +28 -0
- data/lib/ruby-jmeter/dsl/beanshell_timer.rb +28 -0
- data/lib/ruby-jmeter/dsl/bsf_assertion.rb +28 -0
- data/lib/ruby-jmeter/dsl/bsf_listener.rb +28 -0
- data/lib/ruby-jmeter/dsl/bsf_postprocessor.rb +28 -0
- data/lib/ruby-jmeter/dsl/bsf_preprocessor.rb +28 -0
- data/lib/ruby-jmeter/dsl/bsf_sampler.rb +28 -0
- data/lib/ruby-jmeter/dsl/bsf_timer.rb +28 -0
- data/lib/ruby-jmeter/dsl/compare_assertion.rb +27 -0
- data/lib/ruby-jmeter/dsl/comparison_assertion_visualizer.rb +55 -0
- data/lib/ruby-jmeter/dsl/constant_throughput_timer.rb +30 -0
- data/lib/ruby-jmeter/dsl/constant_timer.rb +25 -0
- data/lib/ruby-jmeter/dsl/counter.rb +31 -0
- data/lib/ruby-jmeter/dsl/cssjquery_extractor.rb +30 -0
- data/lib/ruby-jmeter/dsl/csv_data_set_config.rb +32 -0
- data/lib/ruby-jmeter/dsl/debug_postprocessor.rb +28 -0
- data/lib/ruby-jmeter/dsl/debug_sampler.rb +27 -0
- data/lib/ruby-jmeter/dsl/distribution_graphalpha.rb +55 -0
- data/lib/ruby-jmeter/dsl/duration_assertion.rb +25 -0
- data/lib/ruby-jmeter/dsl/foreach_controller.rb +29 -0
- data/lib/ruby-jmeter/dsl/ftp_request.rb +34 -0
- data/lib/ruby-jmeter/dsl/ftp_request_defaults.rb +32 -0
- data/lib/ruby-jmeter/dsl/gaussian_random_timer.rb +26 -0
- data/lib/ruby-jmeter/dsl/generate_summary_results.rb +23 -0
- data/lib/ruby-jmeter/dsl/graph_results.rb +55 -0
- data/lib/ruby-jmeter/dsl/html_assertion.rb +30 -0
- data/lib/ruby-jmeter/dsl/html_link_parser.rb +23 -0
- data/lib/ruby-jmeter/dsl/html_parameter_mask.rb +32 -0
- data/lib/ruby-jmeter/dsl/http_authorization_manager.rb +33 -0
- data/lib/ruby-jmeter/dsl/http_cache_manager.rb +26 -0
- data/lib/ruby-jmeter/dsl/http_cookie_manager.rb +27 -0
- data/lib/ruby-jmeter/dsl/http_header_manager.rb +30 -0
- data/lib/ruby-jmeter/dsl/http_request.rb +41 -0
- data/lib/ruby-jmeter/dsl/http_request_defaults.rb +44 -0
- data/lib/ruby-jmeter/dsl/http_url_rewriting_modifier.rb +29 -0
- data/lib/ruby-jmeter/dsl/if_controller.rb +27 -0
- data/lib/ruby-jmeter/dsl/include_controller.rb +25 -0
- data/lib/ruby-jmeter/dsl/java_request.rb +69 -0
- data/lib/ruby-jmeter/dsl/java_request_defaults.rb +69 -0
- data/lib/ruby-jmeter/dsl/jdbc_connection_configuration.rb +37 -0
- data/lib/ruby-jmeter/dsl/jdbc_postprocessor.rb +31 -0
- data/lib/ruby-jmeter/dsl/jdbc_preprocessor.rb +31 -0
- data/lib/ruby-jmeter/dsl/jdbc_request.rb +31 -0
- data/lib/ruby-jmeter/dsl/jms_pointtopoint.rb +40 -0
- data/lib/ruby-jmeter/dsl/jms_publisher.rb +41 -0
- data/lib/ruby-jmeter/dsl/jms_subscriber.rb +35 -0
- data/lib/ruby-jmeter/dsl/jsr223_assertion.rb +29 -0
- data/lib/ruby-jmeter/dsl/jsr223_listener.rb +29 -0
- data/lib/ruby-jmeter/dsl/jsr223_postprocessor.rb +29 -0
- data/lib/ruby-jmeter/dsl/jsr223_preprocessor.rb +29 -0
- data/lib/ruby-jmeter/dsl/jsr223_sampler.rb +29 -0
- data/lib/ruby-jmeter/dsl/jsr223_timer.rb +29 -0
- data/lib/ruby-jmeter/dsl/junit_request.rb +37 -0
- data/lib/ruby-jmeter/dsl/keystore_configuration.rb +27 -0
- data/lib/ruby-jmeter/dsl/ldap_extended_request.rb +42 -0
- data/lib/ruby-jmeter/dsl/ldap_extended_request_defaults.rb +42 -0
- data/lib/ruby-jmeter/dsl/ldap_request.rb +35 -0
- data/lib/ruby-jmeter/dsl/ldap_request_defaults.rb +40 -0
- data/lib/ruby-jmeter/dsl/login_config_element.rb +26 -0
- data/lib/ruby-jmeter/dsl/loop_controller.rb +26 -0
- data/lib/ruby-jmeter/dsl/mail_reader_sampler.rb +37 -0
- data/lib/ruby-jmeter/dsl/mailer_visualizer.rb +64 -0
- data/lib/ruby-jmeter/dsl/md5hex_assertion.rb +25 -0
- data/lib/ruby-jmeter/dsl/module_controller.rb +23 -0
- data/lib/ruby-jmeter/dsl/monitor_results.rb +55 -0
- data/lib/ruby-jmeter/dsl/once_only_controller.rb +23 -0
- data/lib/ruby-jmeter/dsl/os_process_sampler.rb +34 -0
- data/lib/ruby-jmeter/dsl/poisson_random_timer.rb +26 -0
- data/lib/ruby-jmeter/dsl/random_controller.rb +25 -0
- data/lib/ruby-jmeter/dsl/random_order_controller.rb +23 -0
- data/lib/ruby-jmeter/dsl/random_variable.rb +30 -0
- data/lib/ruby-jmeter/dsl/recording_controller.rb +23 -0
- data/lib/ruby-jmeter/dsl/regex_user_parameters.rb +27 -0
- data/lib/ruby-jmeter/dsl/regular_expression_extractor.rb +31 -0
- data/lib/ruby-jmeter/dsl/response_assertion.rb +31 -0
- data/lib/ruby-jmeter/dsl/response_time_graph.rb +55 -0
- data/lib/ruby-jmeter/dsl/result_status_action_handler.rb +25 -0
- data/lib/ruby-jmeter/dsl/runtime_controller.rb +25 -0
- data/lib/ruby-jmeter/dsl/save_responses_to_a_file.rb +29 -0
- data/lib/ruby-jmeter/dsl/simple_config_element.rb +23 -0
- data/lib/ruby-jmeter/dsl/simple_controller.rb +23 -0
- data/lib/ruby-jmeter/dsl/simple_data_writer.rb +55 -0
- data/lib/ruby-jmeter/dsl/smime_assertion.rb +35 -0
- data/lib/ruby-jmeter/dsl/smtp_sampler.rb +51 -0
- data/lib/ruby-jmeter/dsl/soapxmlrpc_request.rb +33 -0
- data/lib/ruby-jmeter/dsl/spline_visualizer.rb +55 -0
- data/lib/ruby-jmeter/dsl/summary_report.rb +55 -0
- data/lib/ruby-jmeter/dsl/switch_controller.rb +25 -0
- data/lib/ruby-jmeter/dsl/synchronizing_timer.rb +25 -0
- data/lib/ruby-jmeter/dsl/tcp_sampler.rb +33 -0
- data/lib/ruby-jmeter/dsl/tcp_sampler_config.rb +31 -0
- data/lib/ruby-jmeter/dsl/test_action.rb +27 -0
- data/lib/ruby-jmeter/dsl/test_plan.rb +31 -0
- data/lib/ruby-jmeter/dsl/thread_group.rb +36 -0
- data/lib/ruby-jmeter/dsl/throughput_controller.rb +32 -0
- data/lib/ruby-jmeter/dsl/transaction_controller.rb +26 -0
- data/lib/ruby-jmeter/dsl/uniform_random_timer.rb +26 -0
- data/lib/ruby-jmeter/dsl/user_defined_variables.rb +32 -0
- data/lib/ruby-jmeter/dsl/user_parameters.rb +29 -0
- data/lib/ruby-jmeter/dsl/view_results_in_table.rb +55 -0
- data/lib/ruby-jmeter/dsl/view_results_tree.rb +55 -0
- data/lib/ruby-jmeter/dsl/while_controller.rb +25 -0
- data/lib/ruby-jmeter/dsl/xml_assertion.rb +23 -0
- data/lib/ruby-jmeter/dsl/xml_schema_assertion.rb +25 -0
- data/lib/ruby-jmeter/dsl/xpath_assertion.rb +30 -0
- data/lib/ruby-jmeter/dsl/xpath_extractor.rb +30 -0
- data/lib/ruby-jmeter/helpers/fallback_content_proxy.rb +54 -0
- data/lib/ruby-jmeter/helpers/helper.rb +41 -0
- data/lib/ruby-jmeter/helpers/jmeter.properties +28 -0
- data/lib/ruby-jmeter/helpers/logger-colors.rb +48 -0
- data/lib/ruby-jmeter/helpers/parser.rb +106 -0
- data/lib/ruby-jmeter/helpers/strip-heredoc.rb +5 -0
- data/lib/ruby-jmeter/helpers/user-agents.rb +27 -0
- data/lib/ruby-jmeter/idl.rb +70 -0
- data/lib/ruby-jmeter/idl.xml +1513 -0
- data/lib/ruby-jmeter/plugins/gc_console_status_logger.rb +14 -0
- data/lib/ruby-jmeter/plugins/gc_dummy_sampler.rb +23 -0
- data/lib/ruby-jmeter/plugins/gc_latencies_over_time.rb +48 -0
- data/lib/ruby-jmeter/plugins/gc_response_codes_per_second.rb +48 -0
- data/lib/ruby-jmeter/plugins/gc_response_times_distribution.rb +47 -0
- data/lib/ruby-jmeter/plugins/gc_response_times_over_time.rb +48 -0
- data/lib/ruby-jmeter/plugins/gc_response_times_percentiles.rb +48 -0
- data/lib/ruby-jmeter/plugins/gc_transactions_per_second.rb +48 -0
- data/lib/ruby-jmeter/plugins/gc_variable_throughput_timer.rb +26 -0
- data/lib/ruby-jmeter/version.rb +3 -0
- data/ruby-jmeter.gemspec +22 -0
- data/spec/dsl_spec.rb +491 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/stub.rb +31 -0
- 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
|