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,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
|