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