ruby-jmeter 2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|