ruby-jmeter 2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. data/.gitattributes +22 -0
  2. data/.gitignore +22 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +27 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +333 -0
  7. data/Rakefile +6 -0
  8. data/bin/grid +25 -0
  9. data/examples/basic_assertion.rb +13 -0
  10. data/examples/basic_auth.rb +11 -0
  11. data/examples/basic_cache.rb +11 -0
  12. data/examples/basic_cookies.rb +11 -0
  13. data/examples/basic_extract.rb +10 -0
  14. data/examples/basic_gc_dummy_sampler.rb +10 -0
  15. data/examples/basic_gc_results.rb +23 -0
  16. data/examples/basic_google.rb +8 -0
  17. data/examples/basic_grid.rb +8 -0
  18. data/examples/basic_header.rb +19 -0
  19. data/examples/basic_ldap_ext.rb +16 -0
  20. data/examples/basic_post.rb +15 -0
  21. data/examples/basic_query_params.rb +8 -0
  22. data/examples/basic_think_time.rb +15 -0
  23. data/examples/basic_throughput_controller.rb +14 -0
  24. data/examples/basic_throughput_shaping_timer.rb +21 -0
  25. data/examples/etsy_login_browse.rb +64 -0
  26. data/lib/ruby-jmeter.rb +18 -0
  27. data/lib/ruby-jmeter/DSL.md +237 -0
  28. data/lib/ruby-jmeter/dsl.rb +419 -0
  29. data/lib/ruby-jmeter/dsl/access_log_sampler.rb +32 -0
  30. data/lib/ruby-jmeter/dsl/aggregate_graph.rb +55 -0
  31. data/lib/ruby-jmeter/dsl/aggregate_report.rb +55 -0
  32. data/lib/ruby-jmeter/dsl/ajp13_sampler.rb +41 -0
  33. data/lib/ruby-jmeter/dsl/assertion_results.rb +55 -0
  34. data/lib/ruby-jmeter/dsl/beanshell_assertion.rb +28 -0
  35. data/lib/ruby-jmeter/dsl/beanshell_listener.rb +28 -0
  36. data/lib/ruby-jmeter/dsl/beanshell_postprocessor.rb +28 -0
  37. data/lib/ruby-jmeter/dsl/beanshell_preprocessor.rb +28 -0
  38. data/lib/ruby-jmeter/dsl/beanshell_sampler.rb +28 -0
  39. data/lib/ruby-jmeter/dsl/beanshell_timer.rb +28 -0
  40. data/lib/ruby-jmeter/dsl/bsf_assertion.rb +28 -0
  41. data/lib/ruby-jmeter/dsl/bsf_listener.rb +28 -0
  42. data/lib/ruby-jmeter/dsl/bsf_postprocessor.rb +28 -0
  43. data/lib/ruby-jmeter/dsl/bsf_preprocessor.rb +28 -0
  44. data/lib/ruby-jmeter/dsl/bsf_sampler.rb +28 -0
  45. data/lib/ruby-jmeter/dsl/bsf_timer.rb +28 -0
  46. data/lib/ruby-jmeter/dsl/compare_assertion.rb +27 -0
  47. data/lib/ruby-jmeter/dsl/comparison_assertion_visualizer.rb +55 -0
  48. data/lib/ruby-jmeter/dsl/constant_throughput_timer.rb +30 -0
  49. data/lib/ruby-jmeter/dsl/constant_timer.rb +25 -0
  50. data/lib/ruby-jmeter/dsl/counter.rb +31 -0
  51. data/lib/ruby-jmeter/dsl/cssjquery_extractor.rb +30 -0
  52. data/lib/ruby-jmeter/dsl/csv_data_set_config.rb +32 -0
  53. data/lib/ruby-jmeter/dsl/debug_postprocessor.rb +28 -0
  54. data/lib/ruby-jmeter/dsl/debug_sampler.rb +27 -0
  55. data/lib/ruby-jmeter/dsl/distribution_graphalpha.rb +55 -0
  56. data/lib/ruby-jmeter/dsl/duration_assertion.rb +25 -0
  57. data/lib/ruby-jmeter/dsl/foreach_controller.rb +29 -0
  58. data/lib/ruby-jmeter/dsl/ftp_request.rb +34 -0
  59. data/lib/ruby-jmeter/dsl/ftp_request_defaults.rb +32 -0
  60. data/lib/ruby-jmeter/dsl/gaussian_random_timer.rb +26 -0
  61. data/lib/ruby-jmeter/dsl/generate_summary_results.rb +23 -0
  62. data/lib/ruby-jmeter/dsl/graph_results.rb +55 -0
  63. data/lib/ruby-jmeter/dsl/html_assertion.rb +30 -0
  64. data/lib/ruby-jmeter/dsl/html_link_parser.rb +23 -0
  65. data/lib/ruby-jmeter/dsl/html_parameter_mask.rb +32 -0
  66. data/lib/ruby-jmeter/dsl/http_authorization_manager.rb +33 -0
  67. data/lib/ruby-jmeter/dsl/http_cache_manager.rb +26 -0
  68. data/lib/ruby-jmeter/dsl/http_cookie_manager.rb +27 -0
  69. data/lib/ruby-jmeter/dsl/http_header_manager.rb +30 -0
  70. data/lib/ruby-jmeter/dsl/http_request.rb +41 -0
  71. data/lib/ruby-jmeter/dsl/http_request_defaults.rb +44 -0
  72. data/lib/ruby-jmeter/dsl/http_url_rewriting_modifier.rb +29 -0
  73. data/lib/ruby-jmeter/dsl/if_controller.rb +27 -0
  74. data/lib/ruby-jmeter/dsl/include_controller.rb +25 -0
  75. data/lib/ruby-jmeter/dsl/java_request.rb +69 -0
  76. data/lib/ruby-jmeter/dsl/java_request_defaults.rb +69 -0
  77. data/lib/ruby-jmeter/dsl/jdbc_connection_configuration.rb +37 -0
  78. data/lib/ruby-jmeter/dsl/jdbc_postprocessor.rb +31 -0
  79. data/lib/ruby-jmeter/dsl/jdbc_preprocessor.rb +31 -0
  80. data/lib/ruby-jmeter/dsl/jdbc_request.rb +31 -0
  81. data/lib/ruby-jmeter/dsl/jms_pointtopoint.rb +40 -0
  82. data/lib/ruby-jmeter/dsl/jms_publisher.rb +41 -0
  83. data/lib/ruby-jmeter/dsl/jms_subscriber.rb +35 -0
  84. data/lib/ruby-jmeter/dsl/jsr223_assertion.rb +29 -0
  85. data/lib/ruby-jmeter/dsl/jsr223_listener.rb +29 -0
  86. data/lib/ruby-jmeter/dsl/jsr223_postprocessor.rb +29 -0
  87. data/lib/ruby-jmeter/dsl/jsr223_preprocessor.rb +29 -0
  88. data/lib/ruby-jmeter/dsl/jsr223_sampler.rb +29 -0
  89. data/lib/ruby-jmeter/dsl/jsr223_timer.rb +29 -0
  90. data/lib/ruby-jmeter/dsl/junit_request.rb +37 -0
  91. data/lib/ruby-jmeter/dsl/keystore_configuration.rb +27 -0
  92. data/lib/ruby-jmeter/dsl/ldap_extended_request.rb +42 -0
  93. data/lib/ruby-jmeter/dsl/ldap_extended_request_defaults.rb +42 -0
  94. data/lib/ruby-jmeter/dsl/ldap_request.rb +35 -0
  95. data/lib/ruby-jmeter/dsl/ldap_request_defaults.rb +40 -0
  96. data/lib/ruby-jmeter/dsl/login_config_element.rb +26 -0
  97. data/lib/ruby-jmeter/dsl/loop_controller.rb +26 -0
  98. data/lib/ruby-jmeter/dsl/mail_reader_sampler.rb +37 -0
  99. data/lib/ruby-jmeter/dsl/mailer_visualizer.rb +64 -0
  100. data/lib/ruby-jmeter/dsl/md5hex_assertion.rb +25 -0
  101. data/lib/ruby-jmeter/dsl/module_controller.rb +23 -0
  102. data/lib/ruby-jmeter/dsl/monitor_results.rb +55 -0
  103. data/lib/ruby-jmeter/dsl/once_only_controller.rb +23 -0
  104. data/lib/ruby-jmeter/dsl/os_process_sampler.rb +34 -0
  105. data/lib/ruby-jmeter/dsl/poisson_random_timer.rb +26 -0
  106. data/lib/ruby-jmeter/dsl/random_controller.rb +25 -0
  107. data/lib/ruby-jmeter/dsl/random_order_controller.rb +23 -0
  108. data/lib/ruby-jmeter/dsl/random_variable.rb +30 -0
  109. data/lib/ruby-jmeter/dsl/recording_controller.rb +23 -0
  110. data/lib/ruby-jmeter/dsl/regex_user_parameters.rb +27 -0
  111. data/lib/ruby-jmeter/dsl/regular_expression_extractor.rb +31 -0
  112. data/lib/ruby-jmeter/dsl/response_assertion.rb +31 -0
  113. data/lib/ruby-jmeter/dsl/response_time_graph.rb +55 -0
  114. data/lib/ruby-jmeter/dsl/result_status_action_handler.rb +25 -0
  115. data/lib/ruby-jmeter/dsl/runtime_controller.rb +25 -0
  116. data/lib/ruby-jmeter/dsl/save_responses_to_a_file.rb +29 -0
  117. data/lib/ruby-jmeter/dsl/simple_config_element.rb +23 -0
  118. data/lib/ruby-jmeter/dsl/simple_controller.rb +23 -0
  119. data/lib/ruby-jmeter/dsl/simple_data_writer.rb +55 -0
  120. data/lib/ruby-jmeter/dsl/smime_assertion.rb +35 -0
  121. data/lib/ruby-jmeter/dsl/smtp_sampler.rb +51 -0
  122. data/lib/ruby-jmeter/dsl/soapxmlrpc_request.rb +33 -0
  123. data/lib/ruby-jmeter/dsl/spline_visualizer.rb +55 -0
  124. data/lib/ruby-jmeter/dsl/summary_report.rb +55 -0
  125. data/lib/ruby-jmeter/dsl/switch_controller.rb +25 -0
  126. data/lib/ruby-jmeter/dsl/synchronizing_timer.rb +25 -0
  127. data/lib/ruby-jmeter/dsl/tcp_sampler.rb +33 -0
  128. data/lib/ruby-jmeter/dsl/tcp_sampler_config.rb +31 -0
  129. data/lib/ruby-jmeter/dsl/test_action.rb +27 -0
  130. data/lib/ruby-jmeter/dsl/test_plan.rb +31 -0
  131. data/lib/ruby-jmeter/dsl/thread_group.rb +36 -0
  132. data/lib/ruby-jmeter/dsl/throughput_controller.rb +32 -0
  133. data/lib/ruby-jmeter/dsl/transaction_controller.rb +26 -0
  134. data/lib/ruby-jmeter/dsl/uniform_random_timer.rb +26 -0
  135. data/lib/ruby-jmeter/dsl/user_defined_variables.rb +32 -0
  136. data/lib/ruby-jmeter/dsl/user_parameters.rb +29 -0
  137. data/lib/ruby-jmeter/dsl/view_results_in_table.rb +55 -0
  138. data/lib/ruby-jmeter/dsl/view_results_tree.rb +55 -0
  139. data/lib/ruby-jmeter/dsl/while_controller.rb +25 -0
  140. data/lib/ruby-jmeter/dsl/xml_assertion.rb +23 -0
  141. data/lib/ruby-jmeter/dsl/xml_schema_assertion.rb +25 -0
  142. data/lib/ruby-jmeter/dsl/xpath_assertion.rb +30 -0
  143. data/lib/ruby-jmeter/dsl/xpath_extractor.rb +30 -0
  144. data/lib/ruby-jmeter/helpers/fallback_content_proxy.rb +54 -0
  145. data/lib/ruby-jmeter/helpers/helper.rb +41 -0
  146. data/lib/ruby-jmeter/helpers/jmeter.properties +28 -0
  147. data/lib/ruby-jmeter/helpers/logger-colors.rb +48 -0
  148. data/lib/ruby-jmeter/helpers/parser.rb +106 -0
  149. data/lib/ruby-jmeter/helpers/strip-heredoc.rb +5 -0
  150. data/lib/ruby-jmeter/helpers/user-agents.rb +27 -0
  151. data/lib/ruby-jmeter/idl.rb +70 -0
  152. data/lib/ruby-jmeter/idl.xml +1513 -0
  153. data/lib/ruby-jmeter/plugins/gc_console_status_logger.rb +14 -0
  154. data/lib/ruby-jmeter/plugins/gc_dummy_sampler.rb +23 -0
  155. data/lib/ruby-jmeter/plugins/gc_latencies_over_time.rb +48 -0
  156. data/lib/ruby-jmeter/plugins/gc_response_codes_per_second.rb +48 -0
  157. data/lib/ruby-jmeter/plugins/gc_response_times_distribution.rb +47 -0
  158. data/lib/ruby-jmeter/plugins/gc_response_times_over_time.rb +48 -0
  159. data/lib/ruby-jmeter/plugins/gc_response_times_percentiles.rb +48 -0
  160. data/lib/ruby-jmeter/plugins/gc_transactions_per_second.rb +48 -0
  161. data/lib/ruby-jmeter/plugins/gc_variable_throughput_timer.rb +26 -0
  162. data/lib/ruby-jmeter/version.rb +3 -0
  163. data/ruby-jmeter.gemspec +22 -0
  164. data/spec/dsl_spec.rb +491 -0
  165. data/spec/spec_helper.rb +10 -0
  166. data/spec/stub.rb +31 -0
  167. metadata +244 -0
@@ -0,0 +1,28 @@
1
+ jmeter.save.saveservice.output_format=csv
2
+ jmeter.save.saveservice.data_type=false
3
+ jmeter.save.saveservice.label=true
4
+ jmeter.save.saveservice.response_code=true
5
+ jmeter.save.saveservice.response_data=false
6
+ jmeter.save.saveservice.response_data.on_error=false
7
+ jmeter.save.saveservice.response_message=false
8
+ jmeter.save.saveservice.successful=true
9
+ jmeter.save.saveservice.thread_name=true
10
+ jmeter.save.saveservice.time=true
11
+ jmeter.save.saveservice.subresults=false
12
+ jmeter.save.saveservice.assertions=false
13
+ jmeter.save.saveservice.latency=true
14
+ jmeter.save.saveservice.samplerData=false
15
+ jmeter.save.saveservice.responseHeaders=false
16
+ jmeter.save.saveservice.requestHeaders=false
17
+ jmeter.save.saveservice.encoding=false
18
+ jmeter.save.saveservice.bytes=true
19
+ jmeter.save.saveservice.url=false
20
+ jmeter.save.saveservice.filename=false
21
+ jmeter.save.saveservice.hostname=false
22
+ jmeter.save.saveservice.thread_counts=true
23
+ jmeter.save.saveservice.sample_count=true
24
+ jmeter.save.saveservice.idle_time=false
25
+ jmeter.save.saveservice.timestamp_format=ms
26
+ jmeter.save.saveservice.default_delimiter=|
27
+ jmeter.save.saveservice.print_field_names=false
28
+ sample_variables=testguid
@@ -0,0 +1,48 @@
1
+ require 'logger'
2
+
3
+ class Logger
4
+ module Colors
5
+ VERSION = '1.0.0'
6
+
7
+ NOTHING = '0;0'
8
+ BLACK = '0;30'
9
+ RED = '0;31'
10
+ GREEN = '0;32'
11
+ BROWN = '0;33'
12
+ BLUE = '0;34'
13
+ PURPLE = '0;35'
14
+ CYAN = '0;36'
15
+ LIGHT_GRAY = '0;37'
16
+ DARK_GRAY = '1;30'
17
+ LIGHT_RED = '1;31'
18
+ LIGHT_GREEN = '1;32'
19
+ YELLOW = '1;33'
20
+ LIGHT_BLUE = '1;34'
21
+ LIGHT_PURPLE = '1;35'
22
+ LIGHT_CYAN = '1;36'
23
+ WHITE = '1;37'
24
+
25
+ SCHEMA = {
26
+ STDOUT => %w[nothing green brown red purple cyan],
27
+ STDERR => %w[nothing green yellow light_red light_purple light_cyan],
28
+ }
29
+ end
30
+ end
31
+
32
+ class Logger
33
+ alias format_message_colorless format_message
34
+
35
+ def format_message(level, *args)
36
+ if Logger::Colors::SCHEMA[@logdev.dev]
37
+ color = begin
38
+ Logger::Colors.const_get \
39
+ Logger::Colors::SCHEMA[@logdev.dev][Logger.const_get(level.sub "ANY","UNKNOWN")].to_s.upcase
40
+ rescue NameError
41
+ "0;0"
42
+ end
43
+ "\e[#{ color }m#{ format_message_colorless(level, *args) }\e[0;0m"
44
+ else
45
+ format_message_colorless(level, *args)
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,106 @@
1
+ module RubyJmeter
2
+ module Parser
3
+
4
+ def parse_http_request(params)
5
+ parse_url(params) unless params[:url].empty?
6
+
7
+ if params[:raw_path]
8
+ params[:path] = params[:url]
9
+ else
10
+ params[:fill_in] ||= {}
11
+ params[:params] && params[:params].split('&').each do |param|
12
+ name,value = param.split('=')
13
+ params[:fill_in][name] = value
14
+ end
15
+ end
16
+
17
+ fill_in(params) if params.has_key?(:fill_in)
18
+ raw_body(params) if params.has_key?(:raw_body)
19
+ end
20
+
21
+ def parse_url(params)
22
+ if params[:url] =~ /https?:\/\/\$/ || params[:url][0] == '$'
23
+ params[:path] = params[:url] # special case for named expressions
24
+ else
25
+ uri = parse_uri(params[:url])
26
+ params[:port] ||= uri.port unless URI.parse(URI::encode(params[:url])).scheme.nil?
27
+ params[:protocol] ||= uri.scheme unless URI.parse(URI::encode(params[:url])).scheme.nil?
28
+ params[:domain] ||= uri.host
29
+ params[:path] ||= uri.path && URI::decode(uri.path)
30
+ params[:params] ||= uri.query && URI::decode(uri.query)
31
+ end
32
+ params.delete(:url)
33
+ end
34
+
35
+ def parse_uri(uri)
36
+ URI.parse(URI::encode(uri)).scheme.nil? ?
37
+ URI.parse(URI::encode("http://#{uri}")) :
38
+ URI.parse(URI::encode(uri))
39
+ end
40
+
41
+ def fill_in(params)
42
+ params[:update_at_xpath] ||= []
43
+ params[:update_at_xpath] += params[:fill_in].collect do |name, value|
44
+ {
45
+ :xpath => '//collectionProp',
46
+ :value => Nokogiri::XML(<<-EOF.strip_heredoc).children
47
+ <elementProp name="#{name}" elementType="HTTPArgument">
48
+ <boolProp name="HTTPArgument.always_encode">#{params[:always_encode] ? 'true' : false}</boolProp>
49
+ <stringProp name="Argument.value">#{value}</stringProp>
50
+ <stringProp name="Argument.metadata">=</stringProp>
51
+ <boolProp name="HTTPArgument.use_equals">true</boolProp>
52
+ <stringProp name="Argument.name">#{name}</stringProp>
53
+ </elementProp>
54
+ EOF
55
+ }
56
+ end
57
+ params.delete(:fill_in)
58
+ end
59
+
60
+ def raw_body(params)
61
+ params[:update_at_xpath] ||= []
62
+ params[:update_at_xpath] << {
63
+ :xpath => '//HTTPSamplerProxy',
64
+ :value => Nokogiri::XML(<<-EOF.strip_heredoc).children
65
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
66
+ EOF
67
+ }
68
+
69
+ params[:update_at_xpath] << {
70
+ :xpath => '//collectionProp',
71
+ :value => Nokogiri::XML(<<-EOF.strip_heredoc).children
72
+ <elementProp name="" elementType="HTTPArgument">
73
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
74
+ <stringProp name="Argument.value">#{params[:raw_body]}</stringProp>
75
+ <stringProp name="Argument.metadata">=</stringProp>
76
+ </elementProp>
77
+ EOF
78
+ }
79
+ params.delete(:raw_body)
80
+ end
81
+
82
+ def parse_test_type(params)
83
+ case params.keys.first
84
+ when 'contains'
85
+ 2
86
+ when 'not-contains'
87
+ 6
88
+ when 'matches'
89
+ 1
90
+ when 'not-matches'
91
+ 5
92
+ when 'equals'
93
+ 8
94
+ when 'not-equals'
95
+ 12
96
+ when 'substring'
97
+ 16
98
+ when 'not-substring'
99
+ 20
100
+ else
101
+ 2
102
+ end
103
+ end
104
+
105
+ end
106
+ end
@@ -0,0 +1,5 @@
1
+ class String
2
+ def strip_heredoc
3
+ gsub /^#{self[/\A\s*/]}/, ''
4
+ end
5
+ end
@@ -0,0 +1,27 @@
1
+ module RubyJmeter
2
+ class UserAgent
3
+ def initialize(device)
4
+ @common_devices = {
5
+ :iphone => 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3',
6
+ :ipod => 'Mozilla/5.0 (iPod; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3',
7
+ :ipad => 'Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3',
8
+ :safari_osx => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.25 (KHTML, like Gecko) Version/6.0 Safari/536.25',
9
+ :safari_win => 'Mozilla/5.0 (Windows; Windows NT 6.1) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2',
10
+ :ie7 => 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
11
+ :ie8 => 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
12
+ :ie9 => 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
13
+ :chrome_osx => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5',
14
+ :chrome_win => 'Mozilla/5.0 (Windows; Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5',
15
+ :ff_osx => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0',
16
+ :ff_win => 'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0',
17
+ :opera_osx => 'Opera/9.80 (Macintosh; Intel Mac OS X 10.7.4; U; en) Presto/2.10.229 Version/11.62',
18
+ :opera_win => 'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.10.229 Version/11.62'
19
+ }
20
+ @device = device
21
+ end
22
+
23
+ def string
24
+ @common_devices[@device] || @common_devices[:chrome_osx]
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env ruby
2
+ # This is an IDL script to translate a JMeter testplan into Ruby DSL objects
3
+ require 'nokogiri'
4
+ require 'pathname'
5
+
6
+ home = Pathname("..").expand_path(__FILE__)
7
+ dsl = File.join(home, "/dsl")
8
+
9
+ file = File.open File.join(home, "idl.xml")
10
+ doc = Nokogiri::XML file.read.gsub! /\n\s+/, ''
11
+ nodes = doc.xpath '//jmeterTestPlan/hashTree'
12
+
13
+ class String
14
+ def classify
15
+ return self if self !~ / / && self =~ /[A-Z]+.*/
16
+ split(' ').map{|e| e.capitalize}.join.gsub /[\(\)-\/\.]/, ''
17
+ end
18
+
19
+ def underscore
20
+ self.gsub(/::/, '/').
21
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
22
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
23
+ tr("-", "_").
24
+ downcase
25
+ end
26
+ end
27
+
28
+ results = []
29
+ doc.traverse do |node|
30
+ results << node if node.class !=
31
+ Nokogiri::XML::Document &&
32
+ node.attributes['testclass'] &&
33
+ node.name != 'elementProp'
34
+ end
35
+
36
+ methods = []
37
+ methods << "# RubyJmeter::DSL methods"
38
+ results.each do |element|
39
+ klass = element.attributes['testname'].to_s.classify
40
+ methods << "- #{element.attributes['testname'].to_s}\n `#{klass.underscore}`"
41
+ Dir.mkdir(dsl, 0700) unless Dir.exist? dsl
42
+ File.open("#{dsl}/#{klass.underscore}.rb", 'w') { |file| file.write(<<EOC)
43
+ module RubyJmeter
44
+ class DSL
45
+ def #{klass.underscore}(params={}, &block)
46
+ node = RubyJmeter::#{klass}.new(params)
47
+ attach_node(node, &block)
48
+ end
49
+ end
50
+
51
+ class #{klass}
52
+ attr_accessor :doc
53
+ include Helper
54
+
55
+ def initialize(params={})
56
+ params[:name] ||= '#{klass}'
57
+ @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
58
+ #{element.to_xml.gsub /testname=".+?"/, 'testname="#{params[:name]}"'})
59
+ EOS
60
+ update params
61
+ update_at_xpath params if params[:update_at_xpath]
62
+ end
63
+ end
64
+
65
+ end
66
+ EOC
67
+ }
68
+ end
69
+
70
+ File.open("#{home}/DSL.md", 'w') { |file| file.write methods.join("\n") }
@@ -0,0 +1,1513 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <jmeterTestPlan version="1.2" properties="2.4" jmeter="2.9 r1437961">
3
+ <hashTree>
4
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
5
+ <stringProp name="TestPlan.comments"></stringProp>
6
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
7
+ <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
8
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
9
+ <collectionProp name="Arguments.arguments"/>
10
+ </elementProp>
11
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
12
+ </TestPlan>
13
+ <hashTree>
14
+ <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
15
+ <stringProp name="CounterConfig.start"></stringProp>
16
+ <stringProp name="CounterConfig.end"></stringProp>
17
+ <stringProp name="CounterConfig.incr"></stringProp>
18
+ <stringProp name="CounterConfig.name"></stringProp>
19
+ <stringProp name="CounterConfig.format"></stringProp>
20
+ <boolProp name="CounterConfig.per_user">true</boolProp>
21
+ <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
22
+ </CounterConfig>
23
+ <hashTree/>
24
+ <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
25
+ <stringProp name="delimiter">,</stringProp>
26
+ <stringProp name="fileEncoding"></stringProp>
27
+ <stringProp name="filename"></stringProp>
28
+ <boolProp name="quotedData">false</boolProp>
29
+ <boolProp name="recycle">true</boolProp>
30
+ <stringProp name="shareMode">All threads</stringProp>
31
+ <boolProp name="stopThread">false</boolProp>
32
+ <stringProp name="variableNames"></stringProp>
33
+ </CSVDataSet>
34
+ <hashTree/>
35
+ <ConfigTestElement guiclass="FtpConfigGui" testclass="ConfigTestElement" testname="FTP Request Defaults" enabled="true">
36
+ <stringProp name="FTPSampler.server"></stringProp>
37
+ <stringProp name="FTPSampler.port"></stringProp>
38
+ <stringProp name="FTPSampler.filename"></stringProp>
39
+ <stringProp name="FTPSampler.localfilename"></stringProp>
40
+ <stringProp name="FTPSampler.inputdata"></stringProp>
41
+ <boolProp name="FTPSampler.binarymode">false</boolProp>
42
+ <boolProp name="FTPSampler.saveresponse">false</boolProp>
43
+ <boolProp name="FTPSampler.upload">false</boolProp>
44
+ </ConfigTestElement>
45
+ <hashTree/>
46
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
47
+ <collectionProp name="AuthManager.auth_list">
48
+ <elementProp name="" elementType="Authorization">
49
+ <stringProp name="Authorization.url"></stringProp>
50
+ <stringProp name="Authorization.username"></stringProp>
51
+ <stringProp name="Authorization.password"></stringProp>
52
+ <stringProp name="Authorization.domain"></stringProp>
53
+ <stringProp name="Authorization.realm"></stringProp>
54
+ </elementProp>
55
+ </collectionProp>
56
+ </AuthManager>
57
+ <hashTree/>
58
+ <CacheManager guiclass="CacheManagerGui" testclass="CacheManager" testname="HTTP Cache Manager" enabled="true">
59
+ <boolProp name="clearEachIteration">false</boolProp>
60
+ <boolProp name="useExpires">false</boolProp>
61
+ </CacheManager>
62
+ <hashTree/>
63
+ <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
64
+ <collectionProp name="CookieManager.cookies"/>
65
+ <boolProp name="CookieManager.clearEachIteration">false</boolProp>
66
+ <stringProp name="CookieManager.policy">default</stringProp>
67
+ </CookieManager>
68
+ <hashTree/>
69
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
70
+ <collectionProp name="HeaderManager.headers">
71
+ <elementProp name="" elementType="Header">
72
+ <stringProp name="Header.name"></stringProp>
73
+ <stringProp name="Header.value"></stringProp>
74
+ </elementProp>
75
+ </collectionProp>
76
+ </HeaderManager>
77
+ <hashTree/>
78
+ <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
79
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
80
+ <collectionProp name="Arguments.arguments"/>
81
+ </elementProp>
82
+ <stringProp name="HTTPSampler.domain"></stringProp>
83
+ <stringProp name="HTTPSampler.port"></stringProp>
84
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
85
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
86
+ <stringProp name="HTTPSampler.protocol"></stringProp>
87
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
88
+ <stringProp name="HTTPSampler.path">/</stringProp>
89
+ <stringProp name="HTTPSampler.method">GET</stringProp>
90
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
91
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
92
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
93
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
94
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
95
+ <boolProp name="HTTPSampler.image_parser">false</boolProp>
96
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
97
+ <boolProp name="HTTPSampler.concurrentDwn">false</boolProp>
98
+ <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
99
+ </ConfigTestElement>
100
+ <hashTree/>
101
+ <JavaConfig guiclass="JavaConfigGui" testclass="JavaConfig" testname="Java Request Defaults" enabled="true">
102
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
103
+ <collectionProp name="Arguments.arguments">
104
+ <elementProp name="Sleep_Time" elementType="Argument">
105
+ <stringProp name="Argument.name">Sleep_Time</stringProp>
106
+ <stringProp name="Argument.value">100</stringProp>
107
+ <stringProp name="Argument.metadata">=</stringProp>
108
+ </elementProp>
109
+ <elementProp name="Sleep_Mask" elementType="Argument">
110
+ <stringProp name="Argument.name">Sleep_Mask</stringProp>
111
+ <stringProp name="Argument.value">0xFF</stringProp>
112
+ <stringProp name="Argument.metadata">=</stringProp>
113
+ </elementProp>
114
+ <elementProp name="Label" elementType="Argument">
115
+ <stringProp name="Argument.name">Label</stringProp>
116
+ <stringProp name="Argument.value"></stringProp>
117
+ <stringProp name="Argument.metadata">=</stringProp>
118
+ </elementProp>
119
+ <elementProp name="ResponseCode" elementType="Argument">
120
+ <stringProp name="Argument.name">ResponseCode</stringProp>
121
+ <stringProp name="Argument.value"></stringProp>
122
+ <stringProp name="Argument.metadata">=</stringProp>
123
+ </elementProp>
124
+ <elementProp name="ResponseMessage" elementType="Argument">
125
+ <stringProp name="Argument.name">ResponseMessage</stringProp>
126
+ <stringProp name="Argument.value"></stringProp>
127
+ <stringProp name="Argument.metadata">=</stringProp>
128
+ </elementProp>
129
+ <elementProp name="Status" elementType="Argument">
130
+ <stringProp name="Argument.name">Status</stringProp>
131
+ <stringProp name="Argument.value">OK</stringProp>
132
+ <stringProp name="Argument.metadata">=</stringProp>
133
+ </elementProp>
134
+ <elementProp name="SamplerData" elementType="Argument">
135
+ <stringProp name="Argument.name">SamplerData</stringProp>
136
+ <stringProp name="Argument.value"></stringProp>
137
+ <stringProp name="Argument.metadata">=</stringProp>
138
+ </elementProp>
139
+ <elementProp name="ResultData" elementType="Argument">
140
+ <stringProp name="Argument.name">ResultData</stringProp>
141
+ <stringProp name="Argument.value"></stringProp>
142
+ <stringProp name="Argument.metadata">=</stringProp>
143
+ </elementProp>
144
+ </collectionProp>
145
+ </elementProp>
146
+ <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
147
+ </JavaConfig>
148
+ <hashTree/>
149
+ <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" testname="JDBC Connection Configuration" enabled="true">
150
+ <boolProp name="autocommit">true</boolProp>
151
+ <stringProp name="checkQuery">Select 1</stringProp>
152
+ <stringProp name="connectionAge">5000</stringProp>
153
+ <stringProp name="dataSource"></stringProp>
154
+ <stringProp name="dbUrl"></stringProp>
155
+ <stringProp name="driver"></stringProp>
156
+ <boolProp name="keepAlive">true</boolProp>
157
+ <stringProp name="password"></stringProp>
158
+ <stringProp name="poolMax">10</stringProp>
159
+ <stringProp name="timeout">10000</stringProp>
160
+ <stringProp name="transactionIsolation">DEFAULT</stringProp>
161
+ <stringProp name="trimInterval">60000</stringProp>
162
+ <stringProp name="username"></stringProp>
163
+ </JDBCDataSource>
164
+ <hashTree/>
165
+ <KeystoreConfig guiclass="TestBeanGUI" testclass="KeystoreConfig" testname="Keystore Configuration" enabled="true">
166
+ <stringProp name="endIndex"></stringProp>
167
+ <stringProp name="preload">True</stringProp>
168
+ <stringProp name="startIndex"></stringProp>
169
+ </KeystoreConfig>
170
+ <hashTree/>
171
+ <ConfigTestElement guiclass="LdapExtConfigGui" testclass="ConfigTestElement" testname="LDAP Extended Request Defaults" enabled="true">
172
+ <stringProp name="servername"></stringProp>
173
+ <stringProp name="port"></stringProp>
174
+ <stringProp name="rootdn"></stringProp>
175
+ <stringProp name="scope">2</stringProp>
176
+ <stringProp name="countlimit"></stringProp>
177
+ <stringProp name="timelimit"></stringProp>
178
+ <stringProp name="attributes"></stringProp>
179
+ <stringProp name="return_object">false</stringProp>
180
+ <stringProp name="deref_aliases">false</stringProp>
181
+ <stringProp name="connection_timeout"></stringProp>
182
+ <stringProp name="parseflag">false</stringProp>
183
+ <stringProp name="secure">false</stringProp>
184
+ <stringProp name="user_dn"></stringProp>
185
+ <stringProp name="user_pw"></stringProp>
186
+ <stringProp name="comparedn"></stringProp>
187
+ <stringProp name="comparefilt"></stringProp>
188
+ <stringProp name="modddn"></stringProp>
189
+ <stringProp name="newdn"></stringProp>
190
+ </ConfigTestElement>
191
+ <hashTree/>
192
+ <ConfigTestElement guiclass="LdapConfigGui" testclass="ConfigTestElement" testname="LDAP Request Defaults" enabled="true">
193
+ <stringProp name="servername"></stringProp>
194
+ <stringProp name="port"></stringProp>
195
+ <stringProp name="rootdn"></stringProp>
196
+ <boolProp name="user_defined">false</boolProp>
197
+ <stringProp name="test">add</stringProp>
198
+ <stringProp name="base_entry_dn"></stringProp>
199
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
200
+ <collectionProp name="Arguments.arguments">
201
+ <elementProp name="testguid" elementType="Argument">
202
+ <stringProp name="Argument.name"></stringProp>
203
+ <stringProp name="Argument.value"></stringProp>
204
+ <stringProp name="Argument.metadata">=</stringProp>
205
+ </elementProp>
206
+ </collectionProp>
207
+ <stringProp name="TestPlan.comments"></stringProp>
208
+ </elementProp>
209
+ </ConfigTestElement>
210
+ <hashTree/>
211
+ <ConfigTestElement guiclass="LoginConfigGui" testclass="ConfigTestElement" testname="Login Config Element" enabled="true">
212
+ <stringProp name="ConfigTestElement.username"></stringProp>
213
+ <stringProp name="ConfigTestElement.password"></stringProp>
214
+ </ConfigTestElement>
215
+ <hashTree/>
216
+ <RandomVariableConfig guiclass="TestBeanGUI" testclass="RandomVariableConfig" testname="Random Variable" enabled="true">
217
+ <stringProp name="maximumValue"></stringProp>
218
+ <stringProp name="minimumValue">1</stringProp>
219
+ <stringProp name="outputFormat"></stringProp>
220
+ <boolProp name="perThread">false</boolProp>
221
+ <stringProp name="randomSeed"></stringProp>
222
+ <stringProp name="variableName"></stringProp>
223
+ </RandomVariableConfig>
224
+ <hashTree/>
225
+ <ConfigTestElement guiclass="SimpleConfigGui" testclass="ConfigTestElement" testname="Simple Config Element" enabled="true"/>
226
+ <hashTree/>
227
+ <ConfigTestElement guiclass="TCPConfigGui" testclass="ConfigTestElement" testname="TCP Sampler Config" enabled="true">
228
+ <stringProp name="TCPSampler.server"></stringProp>
229
+ <boolProp name="TCPSampler.reUseConnection">true</boolProp>
230
+ <stringProp name="TCPSampler.port"></stringProp>
231
+ <boolProp name="TCPSampler.nodelay">false</boolProp>
232
+ <stringProp name="TCPSampler.timeout"></stringProp>
233
+ <stringProp name="TCPSampler.request"></stringProp>
234
+ <boolProp name="TCPSampler.closeConnection">false</boolProp>
235
+ </ConfigTestElement>
236
+ <hashTree/>
237
+ <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
238
+ <collectionProp name="Arguments.arguments">
239
+ <elementProp name="testguid" elementType="Argument">
240
+ <stringProp name="Argument.name"></stringProp>
241
+ <stringProp name="Argument.value"></stringProp>
242
+ <stringProp name="Argument.metadata">=</stringProp>
243
+ </elementProp>
244
+ </collectionProp>
245
+ <stringProp name="TestPlan.comments"></stringProp>
246
+ </Arguments>
247
+ <hashTree/>
248
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
249
+ <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
250
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
251
+ <boolProp name="LoopController.continue_forever">false</boolProp>
252
+ <stringProp name="LoopController.loops">1</stringProp>
253
+ </elementProp>
254
+ <stringProp name="ThreadGroup.num_threads">1</stringProp>
255
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
256
+ <longProp name="ThreadGroup.start_time">1366415241000</longProp>
257
+ <longProp name="ThreadGroup.end_time">1366415241000</longProp>
258
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
259
+ <stringProp name="ThreadGroup.duration"></stringProp>
260
+ <stringProp name="ThreadGroup.delay"></stringProp>
261
+ </ThreadGroup>
262
+ <hashTree>
263
+ <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller" enabled="true">
264
+ <stringProp name="ForeachController.inputVal"></stringProp>
265
+ <stringProp name="ForeachController.returnVal"></stringProp>
266
+ <boolProp name="ForeachController.useSeparator">true</boolProp>
267
+ <stringProp name="ForeachController.endIndex"></stringProp>
268
+ <stringProp name="ForeachController.startIndex"></stringProp>
269
+ </ForeachController>
270
+ <hashTree/>
271
+ <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
272
+ <stringProp name="IfController.condition"></stringProp>
273
+ <boolProp name="IfController.evaluateAll">false</boolProp>
274
+ <boolProp name="IfController.useExpression">false</boolProp>
275
+ </IfController>
276
+ <hashTree/>
277
+ <IncludeController guiclass="IncludeControllerGui" testclass="IncludeController" testname="Include Controller" enabled="true">
278
+ <stringProp name="IncludeController.includepath"></stringProp>
279
+ </IncludeController>
280
+ <hashTree/>
281
+ <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
282
+ <boolProp name="LoopController.continue_forever">true</boolProp>
283
+ <stringProp name="LoopController.loops">1</stringProp>
284
+ </LoopController>
285
+ <hashTree/>
286
+ <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Module Controller" enabled="true"/>
287
+ <hashTree/>
288
+ <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true"/>
289
+ <hashTree/>
290
+ <RandomController guiclass="RandomControlGui" testclass="RandomController" testname="Random Controller" enabled="true">
291
+ <intProp name="InterleaveControl.style">1</intProp>
292
+ </RandomController>
293
+ <hashTree/>
294
+ <RandomOrderController guiclass="RandomOrderControllerGui" testclass="RandomOrderController" testname="Random Order Controller" enabled="true"/>
295
+ <hashTree/>
296
+ <RecordingController guiclass="RecordController" testclass="RecordingController" testname="Recording Controller" enabled="true"/>
297
+ <hashTree/>
298
+ <RunTime guiclass="RunTimeGui" testclass="RunTime" testname="Runtime Controller" enabled="true">
299
+ <stringProp name="RunTime.seconds">1</stringProp>
300
+ </RunTime>
301
+ <hashTree/>
302
+ <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true"/>
303
+ <hashTree/>
304
+ <SwitchController guiclass="SwitchControllerGui" testclass="SwitchController" testname="Switch Controller" enabled="true">
305
+ <stringProp name="SwitchController.value"></stringProp>
306
+ </SwitchController>
307
+ <hashTree/>
308
+ <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Throughput Controller" enabled="true">
309
+ <intProp name="ThroughputController.style">0</intProp>
310
+ <boolProp name="ThroughputController.perThread">false</boolProp>
311
+ <intProp name="ThroughputController.maxThroughput">1</intProp>
312
+ <FloatProperty>
313
+ <name>ThroughputController.percentThroughput</name>
314
+ <value>100.0</value>
315
+ <savedValue>0.0</savedValue>
316
+ </FloatProperty>
317
+ </ThroughputController>
318
+ <hashTree/>
319
+ <TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="Transaction Controller" enabled="true">
320
+ <boolProp name="TransactionController.parent">true</boolProp>
321
+ <boolProp name="TransactionController.includeTimers">false</boolProp>
322
+ </TransactionController>
323
+ <hashTree/>
324
+ <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true">
325
+ <stringProp name="WhileController.condition"></stringProp>
326
+ </WhileController>
327
+ <hashTree/>
328
+ <BeanShellTimer guiclass="TestBeanGUI" testclass="BeanShellTimer" testname="BeanShell Timer" enabled="true">
329
+ <stringProp name="filename"></stringProp>
330
+ <stringProp name="parameters"></stringProp>
331
+ <boolProp name="resetInterpreter">false</boolProp>
332
+ <stringProp name="script"></stringProp>
333
+ </BeanShellTimer>
334
+ <hashTree/>
335
+ <BSFTimer guiclass="TestBeanGUI" testclass="BSFTimer" testname="BSF Timer" enabled="true">
336
+ <stringProp name="filename"></stringProp>
337
+ <stringProp name="parameters"></stringProp>
338
+ <stringProp name="script"></stringProp>
339
+ <stringProp name="scriptLanguage"></stringProp>
340
+ </BSFTimer>
341
+ <hashTree/>
342
+ <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="Constant Throughput Timer" enabled="true">
343
+ <stringProp name="calcMode">this thread only</stringProp>
344
+ <doubleProp>
345
+ <name>throughput</name>
346
+ <value>0.0</value>
347
+ <savedValue>0.0</savedValue>
348
+ </doubleProp>
349
+ </ConstantThroughputTimer>
350
+ <hashTree/>
351
+ <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
352
+ <stringProp name="ConstantTimer.delay">300</stringProp>
353
+ </ConstantTimer>
354
+ <hashTree/>
355
+ <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Gaussian Random Timer" enabled="true">
356
+ <stringProp name="ConstantTimer.delay">300</stringProp>
357
+ <stringProp name="RandomTimer.range">100.0</stringProp>
358
+ </GaussianRandomTimer>
359
+ <hashTree/>
360
+ <JSR223Timer guiclass="TestBeanGUI" testclass="JSR223Timer" testname="JSR223 Timer" enabled="true">
361
+ <stringProp name="cacheKey"></stringProp>
362
+ <stringProp name="filename"></stringProp>
363
+ <stringProp name="parameters"></stringProp>
364
+ <stringProp name="script"></stringProp>
365
+ <stringProp name="scriptLanguage"></stringProp>
366
+ </JSR223Timer>
367
+ <hashTree/>
368
+ <PoissonRandomTimer guiclass="PoissonRandomTimerGui" testclass="PoissonRandomTimer" testname="Poisson Random Timer" enabled="true">
369
+ <stringProp name="ConstantTimer.delay">300</stringProp>
370
+ <stringProp name="RandomTimer.range">100</stringProp>
371
+ </PoissonRandomTimer>
372
+ <hashTree/>
373
+ <SyncTimer guiclass="TestBeanGUI" testclass="SyncTimer" testname="Synchronizing Timer" enabled="true">
374
+ <intProp name="groupSize">0</intProp>
375
+ </SyncTimer>
376
+ <hashTree/>
377
+ <UniformRandomTimer guiclass="UniformRandomTimerGui" testclass="UniformRandomTimer" testname="Uniform Random Timer" enabled="true">
378
+ <stringProp name="ConstantTimer.delay">0</stringProp>
379
+ <stringProp name="RandomTimer.range">100.0</stringProp>
380
+ </UniformRandomTimer>
381
+ <hashTree/>
382
+ <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
383
+ <stringProp name="filename"></stringProp>
384
+ <stringProp name="parameters"></stringProp>
385
+ <boolProp name="resetInterpreter">false</boolProp>
386
+ <stringProp name="script"></stringProp>
387
+ </BeanShellPreProcessor>
388
+ <hashTree/>
389
+ <BSFPreProcessor guiclass="TestBeanGUI" testclass="BSFPreProcessor" testname="BSF PreProcessor" enabled="true">
390
+ <stringProp name="filename"></stringProp>
391
+ <stringProp name="parameters"></stringProp>
392
+ <stringProp name="script"></stringProp>
393
+ <stringProp name="scriptLanguage"></stringProp>
394
+ </BSFPreProcessor>
395
+ <hashTree/>
396
+ <AnchorModifier guiclass="AnchorModifierGui" testclass="AnchorModifier" testname="HTML Link Parser" enabled="true"/>
397
+ <hashTree/>
398
+ <ParamModifier guiclass="ParamModifierGui" testclass="ParamModifier" testname="HTML Parameter Mask" enabled="true">
399
+ <elementProp name="ParamModifier.mask" elementType="ParamMask">
400
+ <stringProp name="ParamModifier.field_name"></stringProp>
401
+ <stringProp name="ParamModifier.prefix"></stringProp>
402
+ <longProp name="ParamModifier.lower_bound">0</longProp>
403
+ <longProp name="ParamModifier.upper_bound">10</longProp>
404
+ <longProp name="ParamModifier.increment">1</longProp>
405
+ <stringProp name="ParamModifier.suffix"></stringProp>
406
+ </elementProp>
407
+ </ParamModifier>
408
+ <hashTree/>
409
+ <URLRewritingModifier guiclass="URLRewritingModifierGui" testclass="URLRewritingModifier" testname="HTTP URL Re-writing Modifier" enabled="true">
410
+ <stringProp name="argument_name"></stringProp>
411
+ <boolProp name="path_extension">false</boolProp>
412
+ <boolProp name="path_extension_no_equals">false</boolProp>
413
+ <boolProp name="path_extension_no_questionmark">false</boolProp>
414
+ <boolProp name="cache_value">false</boolProp>
415
+ </URLRewritingModifier>
416
+ <hashTree/>
417
+ <JDBCPreProcessor guiclass="TestBeanGUI" testclass="JDBCPreProcessor" testname="JDBC PreProcessor" enabled="true">
418
+ <stringProp name="dataSource"></stringProp>
419
+ <stringProp name="query"></stringProp>
420
+ <stringProp name="queryArguments"></stringProp>
421
+ <stringProp name="queryArgumentsTypes"></stringProp>
422
+ <stringProp name="queryType">Select Statement</stringProp>
423
+ <stringProp name="resultVariable"></stringProp>
424
+ <stringProp name="variableNames"></stringProp>
425
+ </JDBCPreProcessor>
426
+ <hashTree/>
427
+ <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="JSR223 PreProcessor" enabled="true">
428
+ <stringProp name="cacheKey"></stringProp>
429
+ <stringProp name="filename"></stringProp>
430
+ <stringProp name="parameters"></stringProp>
431
+ <stringProp name="script"></stringProp>
432
+ <stringProp name="scriptLanguage"></stringProp>
433
+ </JSR223PreProcessor>
434
+ <hashTree/>
435
+ <RegExUserParameters guiclass="RegExUserParametersGui" testclass="RegExUserParameters" testname="RegEx User Parameters" enabled="true">
436
+ <stringProp name="RegExUserParameters.regex_ref_name"></stringProp>
437
+ <stringProp name="RegExUserParameters.param_names_gr_nr"></stringProp>
438
+ <stringProp name="RegExUserParameters.param_values_gr_nr"></stringProp>
439
+ </RegExUserParameters>
440
+ <hashTree/>
441
+ <UserParameters guiclass="UserParametersGui" testclass="UserParameters" testname="User Parameters" enabled="true">
442
+ <collectionProp name="UserParameters.names"/>
443
+ <collectionProp name="UserParameters.thread_values">
444
+ <collectionProp name="1"/>
445
+ </collectionProp>
446
+ <boolProp name="UserParameters.per_iteration">false</boolProp>
447
+ </UserParameters>
448
+ <hashTree/>
449
+ <AccessLogSampler guiclass="TestBeanGUI" testclass="AccessLogSampler" testname="Access Log Sampler" enabled="true">
450
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
451
+ <collectionProp name="Arguments.arguments"/>
452
+ </elementProp>
453
+ <stringProp name="domain"></stringProp>
454
+ <boolProp name="imageParsing">false</boolProp>
455
+ <stringProp name="logFile"></stringProp>
456
+ <stringProp name="parserClassName">org.apache.jmeter.protocol.http.util.accesslog.TCLogParser</stringProp>
457
+ <stringProp name="portString"></stringProp>
458
+ </AccessLogSampler>
459
+ <hashTree/>
460
+ <AjpSampler guiclass="AjpSamplerGui" testclass="AjpSampler" testname="AJP/1.3 Sampler" enabled="true">
461
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
462
+ <collectionProp name="Arguments.arguments"/>
463
+ </elementProp>
464
+ <stringProp name="HTTPSampler.domain"></stringProp>
465
+ <stringProp name="HTTPSampler.port"></stringProp>
466
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
467
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
468
+ <stringProp name="HTTPSampler.protocol"></stringProp>
469
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
470
+ <stringProp name="HTTPSampler.path"></stringProp>
471
+ <stringProp name="HTTPSampler.method">GET</stringProp>
472
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
473
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
474
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
475
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
476
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
477
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
478
+ </AjpSampler>
479
+ <hashTree/>
480
+ <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="BeanShell Sampler" enabled="true">
481
+ <stringProp name="BeanShellSampler.query"></stringProp>
482
+ <stringProp name="BeanShellSampler.filename"></stringProp>
483
+ <stringProp name="BeanShellSampler.parameters"></stringProp>
484
+ <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
485
+ </BeanShellSampler>
486
+ <hashTree/>
487
+ <BSFSampler guiclass="TestBeanGUI" testclass="BSFSampler" testname="BSF Sampler" enabled="true">
488
+ <stringProp name="filename"></stringProp>
489
+ <stringProp name="parameters"></stringProp>
490
+ <stringProp name="script"></stringProp>
491
+ <stringProp name="scriptLanguage"></stringProp>
492
+ </BSFSampler>
493
+ <hashTree/>
494
+ <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Debug Sampler" enabled="true">
495
+ <boolProp name="displayJMeterProperties">false</boolProp>
496
+ <boolProp name="displayJMeterVariables">true</boolProp>
497
+ <boolProp name="displaySystemProperties">false</boolProp>
498
+ </DebugSampler>
499
+ <hashTree/>
500
+ <FTPSampler guiclass="FtpTestSamplerGui" testclass="FTPSampler" testname="FTP Request" enabled="true">
501
+ <stringProp name="FTPSampler.server"></stringProp>
502
+ <stringProp name="FTPSampler.port"></stringProp>
503
+ <stringProp name="FTPSampler.filename"></stringProp>
504
+ <stringProp name="FTPSampler.localfilename"></stringProp>
505
+ <stringProp name="FTPSampler.inputdata"></stringProp>
506
+ <boolProp name="FTPSampler.binarymode">false</boolProp>
507
+ <boolProp name="FTPSampler.saveresponse">false</boolProp>
508
+ <boolProp name="FTPSampler.upload">false</boolProp>
509
+ <stringProp name="ConfigTestElement.username"></stringProp>
510
+ <stringProp name="ConfigTestElement.password"></stringProp>
511
+ </FTPSampler>
512
+ <hashTree/>
513
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
514
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
515
+ <collectionProp name="Arguments.arguments"/>
516
+ </elementProp>
517
+ <stringProp name="HTTPSampler.domain"></stringProp>
518
+ <stringProp name="HTTPSampler.port"></stringProp>
519
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
520
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
521
+ <stringProp name="HTTPSampler.protocol"></stringProp>
522
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
523
+ <stringProp name="HTTPSampler.path"></stringProp>
524
+ <stringProp name="HTTPSampler.method">GET</stringProp>
525
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
526
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
527
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
528
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
529
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
530
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
531
+ </HTTPSamplerProxy>
532
+ <hashTree/>
533
+ <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java Request" enabled="true">
534
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
535
+ <collectionProp name="Arguments.arguments">
536
+ <elementProp name="Sleep_Time" elementType="Argument">
537
+ <stringProp name="Argument.name">Sleep_Time</stringProp>
538
+ <stringProp name="Argument.value">100</stringProp>
539
+ <stringProp name="Argument.metadata">=</stringProp>
540
+ </elementProp>
541
+ <elementProp name="Sleep_Mask" elementType="Argument">
542
+ <stringProp name="Argument.name">Sleep_Mask</stringProp>
543
+ <stringProp name="Argument.value">0xFF</stringProp>
544
+ <stringProp name="Argument.metadata">=</stringProp>
545
+ </elementProp>
546
+ <elementProp name="Label" elementType="Argument">
547
+ <stringProp name="Argument.name">Label</stringProp>
548
+ <stringProp name="Argument.value"></stringProp>
549
+ <stringProp name="Argument.metadata">=</stringProp>
550
+ </elementProp>
551
+ <elementProp name="ResponseCode" elementType="Argument">
552
+ <stringProp name="Argument.name">ResponseCode</stringProp>
553
+ <stringProp name="Argument.value"></stringProp>
554
+ <stringProp name="Argument.metadata">=</stringProp>
555
+ </elementProp>
556
+ <elementProp name="ResponseMessage" elementType="Argument">
557
+ <stringProp name="Argument.name">ResponseMessage</stringProp>
558
+ <stringProp name="Argument.value"></stringProp>
559
+ <stringProp name="Argument.metadata">=</stringProp>
560
+ </elementProp>
561
+ <elementProp name="Status" elementType="Argument">
562
+ <stringProp name="Argument.name">Status</stringProp>
563
+ <stringProp name="Argument.value">OK</stringProp>
564
+ <stringProp name="Argument.metadata">=</stringProp>
565
+ </elementProp>
566
+ <elementProp name="SamplerData" elementType="Argument">
567
+ <stringProp name="Argument.name">SamplerData</stringProp>
568
+ <stringProp name="Argument.value"></stringProp>
569
+ <stringProp name="Argument.metadata">=</stringProp>
570
+ </elementProp>
571
+ <elementProp name="ResultData" elementType="Argument">
572
+ <stringProp name="Argument.name">ResultData</stringProp>
573
+ <stringProp name="Argument.value"></stringProp>
574
+ <stringProp name="Argument.metadata">=</stringProp>
575
+ </elementProp>
576
+ </collectionProp>
577
+ </elementProp>
578
+ <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
579
+ </JavaSampler>
580
+ <hashTree/>
581
+ <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="JDBC Request" enabled="true">
582
+ <stringProp name="dataSource"></stringProp>
583
+ <stringProp name="query"></stringProp>
584
+ <stringProp name="queryArguments"></stringProp>
585
+ <stringProp name="queryArgumentsTypes"></stringProp>
586
+ <stringProp name="queryType">Select Statement</stringProp>
587
+ <stringProp name="resultVariable"></stringProp>
588
+ <stringProp name="variableNames"></stringProp>
589
+ </JDBCSampler>
590
+ <hashTree/>
591
+ <JMSSampler guiclass="JMSSamplerGui" testclass="JMSSampler" testname="JMS Point-to-Point" enabled="true">
592
+ <stringProp name="JMSSampler.queueconnectionfactory"></stringProp>
593
+ <stringProp name="JMSSampler.SendQueue"></stringProp>
594
+ <stringProp name="JMSSampler.ReceiveQueue"></stringProp>
595
+ <boolProp name="JMSSampler.isFireAndForget">true</boolProp>
596
+ <boolProp name="JMSSampler.isNonPersistent">false</boolProp>
597
+ <boolProp name="JMSSampler.useReqMsgIdAsCorrelId">false</boolProp>
598
+ <stringProp name="JMSSampler.timeout"></stringProp>
599
+ <stringProp name="HTTPSamper.xml_data"></stringProp>
600
+ <stringProp name="JMSSampler.initialContextFactory"></stringProp>
601
+ <stringProp name="JMSSampler.contextProviderUrl"></stringProp>
602
+ <elementProp name="JMSSampler.jndiProperties" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
603
+ <collectionProp name="Arguments.arguments"/>
604
+ </elementProp>
605
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
606
+ <collectionProp name="Arguments.arguments"/>
607
+ </elementProp>
608
+ </JMSSampler>
609
+ <hashTree/>
610
+ <PublisherSampler guiclass="JMSPublisherGui" testclass="PublisherSampler" testname="JMS Publisher" enabled="true">
611
+ <stringProp name="jms.jndi_properties">false</stringProp>
612
+ <stringProp name="jms.initial_context_factory"></stringProp>
613
+ <stringProp name="jms.provider_url"></stringProp>
614
+ <stringProp name="jms.connection_factory"></stringProp>
615
+ <stringProp name="jms.topic"></stringProp>
616
+ <stringProp name="jms.security_principle"></stringProp>
617
+ <stringProp name="jms.security_credentials"></stringProp>
618
+ <stringProp name="jms.text_message"></stringProp>
619
+ <stringProp name="jms.input_file"></stringProp>
620
+ <stringProp name="jms.random_path"></stringProp>
621
+ <stringProp name="jms.config_choice">jms_use_text</stringProp>
622
+ <stringProp name="jms.config_msg_type">jms_text_message</stringProp>
623
+ <stringProp name="jms.iterations">1</stringProp>
624
+ <boolProp name="jms.authenticate">false</boolProp>
625
+ <elementProp name="jms.jmsProperties" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
626
+ <collectionProp name="Arguments.arguments"/>
627
+ </elementProp>
628
+ </PublisherSampler>
629
+ <hashTree/>
630
+ <SubscriberSampler guiclass="JMSSubscriberGui" testclass="SubscriberSampler" testname="JMS Subscriber" enabled="true">
631
+ <stringProp name="jms.jndi_properties">false</stringProp>
632
+ <stringProp name="jms.initial_context_factory"></stringProp>
633
+ <stringProp name="jms.provider_url"></stringProp>
634
+ <stringProp name="jms.connection_factory"></stringProp>
635
+ <stringProp name="jms.topic"></stringProp>
636
+ <stringProp name="jms.security_principle"></stringProp>
637
+ <stringProp name="jms.security_credentials"></stringProp>
638
+ <boolProp name="jms.authenticate">false</boolProp>
639
+ <stringProp name="jms.iterations">1</stringProp>
640
+ <stringProp name="jms.read_response">true</stringProp>
641
+ <stringProp name="jms.client_choice">jms_subscriber_receive</stringProp>
642
+ </SubscriberSampler>
643
+ <hashTree/>
644
+ <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="JSR223 Sampler" enabled="true">
645
+ <stringProp name="cacheKey"></stringProp>
646
+ <stringProp name="filename"></stringProp>
647
+ <stringProp name="parameters"></stringProp>
648
+ <stringProp name="script"></stringProp>
649
+ <stringProp name="scriptLanguage"></stringProp>
650
+ </JSR223Sampler>
651
+ <hashTree/>
652
+ <JUnitSampler guiclass="JUnitTestSamplerGui" testclass="JUnitSampler" testname="JUnit Request" enabled="true">
653
+ <stringProp name="junitSampler.classname">test.RerunTest</stringProp>
654
+ <stringProp name="junitsampler.constructorstring"></stringProp>
655
+ <stringProp name="junitsampler.method">testRerun</stringProp>
656
+ <stringProp name="junitsampler.pkg.filter"></stringProp>
657
+ <stringProp name="junitsampler.success">Test successful</stringProp>
658
+ <stringProp name="junitsampler.success.code">1000</stringProp>
659
+ <stringProp name="junitsampler.failure">Test failed</stringProp>
660
+ <stringProp name="junitsampler.failure.code">0001</stringProp>
661
+ <stringProp name="junitsampler.error">An unexpected error occured</stringProp>
662
+ <stringProp name="junitsampler.error.code">9999</stringProp>
663
+ <stringProp name="junitsampler.exec.setup">false</stringProp>
664
+ <stringProp name="junitsampler.append.error">false</stringProp>
665
+ <stringProp name="junitsampler.append.exception">false</stringProp>
666
+ </JUnitSampler>
667
+ <hashTree/>
668
+ <LDAPExtSampler guiclass="LdapExtTestSamplerGui" testclass="LDAPExtSampler" testname="LDAP Extended Request" enabled="true">
669
+ <stringProp name="servername"></stringProp>
670
+ <stringProp name="port"></stringProp>
671
+ <stringProp name="rootdn"></stringProp>
672
+ <stringProp name="scope">2</stringProp>
673
+ <stringProp name="countlimit"></stringProp>
674
+ <stringProp name="timelimit"></stringProp>
675
+ <stringProp name="attributes"></stringProp>
676
+ <stringProp name="return_object">false</stringProp>
677
+ <stringProp name="deref_aliases">false</stringProp>
678
+ <stringProp name="connection_timeout"></stringProp>
679
+ <stringProp name="parseflag">false</stringProp>
680
+ <stringProp name="secure">false</stringProp>
681
+ <stringProp name="user_dn"></stringProp>
682
+ <stringProp name="user_pw"></stringProp>
683
+ <stringProp name="comparedn"></stringProp>
684
+ <stringProp name="comparefilt"></stringProp>
685
+ <stringProp name="modddn"></stringProp>
686
+ <stringProp name="newdn"></stringProp>
687
+ </LDAPExtSampler>
688
+ <hashTree/>
689
+ <LDAPSampler guiclass="LdapTestSamplerGui" testclass="LDAPSampler" testname="LDAP Request" enabled="true">
690
+ <stringProp name="servername"></stringProp>
691
+ <stringProp name="port"></stringProp>
692
+ <stringProp name="rootdn"></stringProp>
693
+ <boolProp name="user_defined">false</boolProp>
694
+ <stringProp name="test">add</stringProp>
695
+ <stringProp name="base_entry_dn"></stringProp>
696
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
697
+ <collectionProp name="Arguments.arguments"/>
698
+ </elementProp>
699
+ <stringProp name="ConfigTestElement.username"></stringProp>
700
+ <stringProp name="ConfigTestElement.password"></stringProp>
701
+ </LDAPSampler>
702
+ <hashTree/>
703
+ <MailReaderSampler guiclass="MailReaderSamplerGui" testclass="MailReaderSampler" testname="Mail Reader Sampler" enabled="true">
704
+ <stringProp name="host_type">pop3</stringProp>
705
+ <stringProp name="folder">INBOX</stringProp>
706
+ <stringProp name="host"></stringProp>
707
+ <stringProp name="username"></stringProp>
708
+ <stringProp name="password"></stringProp>
709
+ <intProp name="num_messages">-1</intProp>
710
+ <boolProp name="delete">false</boolProp>
711
+ <stringProp name="SMTPSampler.useSSL">false</stringProp>
712
+ <stringProp name="SMTPSampler.useStartTLS">false</stringProp>
713
+ <stringProp name="SMTPSampler.trustAllCerts">false</stringProp>
714
+ <stringProp name="SMTPSampler.enforceStartTLS">false</stringProp>
715
+ <stringProp name="SMTPSampler.useLocalTrustStore">false</stringProp>
716
+ <stringProp name="SMTPSampler.trustStoreToUse"></stringProp>
717
+ </MailReaderSampler>
718
+ <hashTree/>
719
+ <SystemSampler guiclass="SystemSamplerGui" testclass="SystemSampler" testname="OS Process Sampler" enabled="true">
720
+ <boolProp name="SystemSampler.checkReturnCode">false</boolProp>
721
+ <stringProp name="SystemSampler.expectedReturnCode">0</stringProp>
722
+ <stringProp name="SystemSampler.command"></stringProp>
723
+ <elementProp name="SystemSampler.arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
724
+ <collectionProp name="Arguments.arguments"/>
725
+ </elementProp>
726
+ <elementProp name="SystemSampler.environment" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
727
+ <collectionProp name="Arguments.arguments"/>
728
+ </elementProp>
729
+ <stringProp name="SystemSampler.directory"></stringProp>
730
+ </SystemSampler>
731
+ <hashTree/>
732
+ <SmtpSampler guiclass="SmtpSamplerGui" testclass="SmtpSampler" testname="SMTP Sampler" enabled="true">
733
+ <stringProp name="SMTPSampler.server"></stringProp>
734
+ <stringProp name="SMTPSampler.serverPort"></stringProp>
735
+ <stringProp name="SMTPSampler.mailFrom"></stringProp>
736
+ <stringProp name="SMTPSampler.replyTo"></stringProp>
737
+ <stringProp name="SMTPSampler.receiverTo"></stringProp>
738
+ <stringProp name="SMTPSampler.receiverCC"></stringProp>
739
+ <stringProp name="SMTPSampler.receiverBCC"></stringProp>
740
+ <stringProp name="SMTPSampler.subject"></stringProp>
741
+ <stringProp name="SMTPSampler.suppressSubject">false</stringProp>
742
+ <stringProp name="SMTPSampler.include_timestamp">false</stringProp>
743
+ <stringProp name="SMTPSampler.message"></stringProp>
744
+ <stringProp name="SMTPSampler.plainBody">false</stringProp>
745
+ <stringProp name="SMTPSampler.attachFile"></stringProp>
746
+ <stringProp name="SMTPSampler.useSSL">false</stringProp>
747
+ <stringProp name="SMTPSampler.useStartTLS">false</stringProp>
748
+ <stringProp name="SMTPSampler.trustAllCerts">false</stringProp>
749
+ <stringProp name="SMTPSampler.enforceStartTLS">false</stringProp>
750
+ <stringProp name="SMTPSampler.useLocalTrustStore">false</stringProp>
751
+ <stringProp name="SMTPSampler.trustStoreToUse"></stringProp>
752
+ <boolProp name="SMTPSampler.use_eml">false</boolProp>
753
+ <stringProp name="SMTPSampler.emlMessageToSend"></stringProp>
754
+ <stringProp name="SMTPSampler.useAuth">false</stringProp>
755
+ <stringProp name="SMTPSampler.password"></stringProp>
756
+ <stringProp name="SMTPSampler.username"></stringProp>
757
+ <stringProp name="SMTPSampler.messageSizeStatistics">false</stringProp>
758
+ <stringProp name="SMTPSampler.enableDebug">false</stringProp>
759
+ <collectionProp name="SMTPSampler.headerFields"/>
760
+ </SmtpSampler>
761
+ <hashTree/>
762
+ <SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" testname="SOAP/XML-RPC Request" enabled="true">
763
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
764
+ <collectionProp name="Arguments.arguments"/>
765
+ </elementProp>
766
+ <stringProp name="SoapSampler.URL_DATA"></stringProp>
767
+ <stringProp name="HTTPSamper.xml_data"></stringProp>
768
+ <stringProp name="SoapSampler.xml_data_file"></stringProp>
769
+ <stringProp name="SoapSampler.SOAP_ACTION"></stringProp>
770
+ <stringProp name="SoapSampler.SEND_SOAP_ACTION">true</stringProp>
771
+ <boolProp name="HTTPSampler.use_keepalive">false</boolProp>
772
+ </SoapSampler>
773
+ <hashTree/>
774
+ <TCPSampler guiclass="TCPSamplerGui" testclass="TCPSampler" testname="TCP Sampler" enabled="true">
775
+ <stringProp name="TCPSampler.server"></stringProp>
776
+ <boolProp name="TCPSampler.reUseConnection">true</boolProp>
777
+ <stringProp name="TCPSampler.port"></stringProp>
778
+ <boolProp name="TCPSampler.nodelay">false</boolProp>
779
+ <stringProp name="TCPSampler.timeout"></stringProp>
780
+ <stringProp name="TCPSampler.request"></stringProp>
781
+ <boolProp name="TCPSampler.closeConnection">false</boolProp>
782
+ <stringProp name="ConfigTestElement.username"></stringProp>
783
+ <stringProp name="ConfigTestElement.password"></stringProp>
784
+ </TCPSampler>
785
+ <hashTree/>
786
+ <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Test Action" enabled="true">
787
+ <intProp name="ActionProcessor.action">1</intProp>
788
+ <intProp name="ActionProcessor.target">0</intProp>
789
+ <stringProp name="ActionProcessor.duration"></stringProp>
790
+ </TestAction>
791
+ <hashTree/>
792
+ <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true">
793
+ <stringProp name="filename"></stringProp>
794
+ <stringProp name="parameters"></stringProp>
795
+ <boolProp name="resetInterpreter">false</boolProp>
796
+ <stringProp name="script"></stringProp>
797
+ </BeanShellPostProcessor>
798
+ <hashTree/>
799
+ <BSFPostProcessor guiclass="TestBeanGUI" testclass="BSFPostProcessor" testname="BSF PostProcessor" enabled="true">
800
+ <stringProp name="filename"></stringProp>
801
+ <stringProp name="parameters"></stringProp>
802
+ <stringProp name="script"></stringProp>
803
+ <stringProp name="scriptLanguage"></stringProp>
804
+ </BSFPostProcessor>
805
+ <hashTree/>
806
+ <HtmlExtractor guiclass="HtmlExtractorGui" testclass="HtmlExtractor" testname="CSS/JQuery Extractor" enabled="true">
807
+ <stringProp name="HtmlExtractor.refname"></stringProp>
808
+ <stringProp name="HtmlExtractor.expr"></stringProp>
809
+ <stringProp name="HtmlExtractor.attribute"></stringProp>
810
+ <stringProp name="HtmlExtractor.default"></stringProp>
811
+ <stringProp name="HtmlExtractor.match_number"></stringProp>
812
+ <stringProp name="HtmlExtractor.extractor_impl"></stringProp>
813
+ </HtmlExtractor>
814
+ <hashTree/>
815
+ <DebugPostProcessor guiclass="TestBeanGUI" testclass="DebugPostProcessor" testname="Debug PostProcessor" enabled="true">
816
+ <boolProp name="displayJMeterProperties">false</boolProp>
817
+ <boolProp name="displayJMeterVariables">true</boolProp>
818
+ <boolProp name="displaySamplerProperties">true</boolProp>
819
+ <boolProp name="displaySystemProperties">false</boolProp>
820
+ </DebugPostProcessor>
821
+ <hashTree/>
822
+ <JDBCPostProcessor guiclass="TestBeanGUI" testclass="JDBCPostProcessor" testname="JDBC PostProcessor" enabled="true">
823
+ <stringProp name="dataSource"></stringProp>
824
+ <stringProp name="query"></stringProp>
825
+ <stringProp name="queryArguments"></stringProp>
826
+ <stringProp name="queryArgumentsTypes"></stringProp>
827
+ <stringProp name="queryType">Select Statement</stringProp>
828
+ <stringProp name="resultVariable"></stringProp>
829
+ <stringProp name="variableNames"></stringProp>
830
+ </JDBCPostProcessor>
831
+ <hashTree/>
832
+ <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="JSR223 PostProcessor" enabled="true">
833
+ <stringProp name="cacheKey"></stringProp>
834
+ <stringProp name="filename"></stringProp>
835
+ <stringProp name="parameters"></stringProp>
836
+ <stringProp name="script"></stringProp>
837
+ <stringProp name="scriptLanguage"></stringProp>
838
+ </JSR223PostProcessor>
839
+ <hashTree/>
840
+ <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
841
+ <stringProp name="RegexExtractor.useHeaders">false</stringProp>
842
+ <stringProp name="RegexExtractor.refname"></stringProp>
843
+ <stringProp name="RegexExtractor.regex"></stringProp>
844
+ <stringProp name="RegexExtractor.template"></stringProp>
845
+ <stringProp name="RegexExtractor.default"></stringProp>
846
+ <stringProp name="RegexExtractor.match_number"></stringProp>
847
+ <stringProp name="Sample.scope">all</stringProp>
848
+ </RegexExtractor>
849
+ <hashTree/>
850
+ <ResultAction guiclass="ResultActionGui" testclass="ResultAction" testname="Result Status Action Handler" enabled="true">
851
+ <intProp name="OnError.action">0</intProp>
852
+ </ResultAction>
853
+ <hashTree/>
854
+ <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor" enabled="true">
855
+ <stringProp name="XPathExtractor.default"></stringProp>
856
+ <stringProp name="XPathExtractor.refname"></stringProp>
857
+ <stringProp name="XPathExtractor.xpathQuery"></stringProp>
858
+ <boolProp name="XPathExtractor.validate">false</boolProp>
859
+ <boolProp name="XPathExtractor.tolerant">false</boolProp>
860
+ <boolProp name="XPathExtractor.namespace">false</boolProp>
861
+ </XPathExtractor>
862
+ <hashTree/>
863
+ <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="BeanShell Assertion" enabled="true">
864
+ <stringProp name="BeanShellAssertion.query"></stringProp>
865
+ <stringProp name="BeanShellAssertion.filename"></stringProp>
866
+ <stringProp name="BeanShellAssertion.parameters"></stringProp>
867
+ <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
868
+ </BeanShellAssertion>
869
+ <hashTree/>
870
+ <BSFAssertion guiclass="TestBeanGUI" testclass="BSFAssertion" testname="BSF Assertion" enabled="true">
871
+ <stringProp name="filename"></stringProp>
872
+ <stringProp name="parameters"></stringProp>
873
+ <stringProp name="script"></stringProp>
874
+ <stringProp name="scriptLanguage"></stringProp>
875
+ </BSFAssertion>
876
+ <hashTree/>
877
+ <CompareAssertion guiclass="TestBeanGUI" testclass="CompareAssertion" testname="Compare Assertion" enabled="true">
878
+ <boolProp name="compareContent">true</boolProp>
879
+ <longProp name="compareTime">-1</longProp>
880
+ <collectionProp name="stringsToSkip"/>
881
+ </CompareAssertion>
882
+ <hashTree/>
883
+ <DurationAssertion guiclass="DurationAssertionGui" testclass="DurationAssertion" testname="Duration Assertion" enabled="true">
884
+ <stringProp name="DurationAssertion.duration"></stringProp>
885
+ </DurationAssertion>
886
+ <hashTree/>
887
+ <HTMLAssertion guiclass="HTMLAssertionGui" testclass="HTMLAssertion" testname="HTML Assertion" enabled="true">
888
+ <longProp name="html_assertion_error_threshold">0</longProp>
889
+ <longProp name="html_assertion_warning_threshold">0</longProp>
890
+ <stringProp name="html_assertion_doctype">omit</stringProp>
891
+ <boolProp name="html_assertion_errorsonly">false</boolProp>
892
+ <longProp name="html_assertion_format">0</longProp>
893
+ <stringProp name="html_assertion_filename"></stringProp>
894
+ </HTMLAssertion>
895
+ <hashTree/>
896
+ <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSR223 Assertion" enabled="true">
897
+ <stringProp name="cacheKey"></stringProp>
898
+ <stringProp name="filename"></stringProp>
899
+ <stringProp name="parameters"></stringProp>
900
+ <stringProp name="script"></stringProp>
901
+ <stringProp name="scriptLanguage"></stringProp>
902
+ </JSR223Assertion>
903
+ <hashTree/>
904
+ <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSR223 Assertion" enabled="true">
905
+ <stringProp name="scriptLanguage"></stringProp>
906
+ <stringProp name="parameters"></stringProp>
907
+ <stringProp name="filename"></stringProp>
908
+ <stringProp name="cacheKey"></stringProp>
909
+ <stringProp name="script"></stringProp>
910
+ </JSR223Assertion>
911
+ <hashTree/>
912
+ <MD5HexAssertion guiclass="MD5HexAssertionGUI" testclass="MD5HexAssertion" testname="MD5Hex Assertion" enabled="true">
913
+ <stringProp name="MD5HexAssertion.size"></stringProp>
914
+ </MD5HexAssertion>
915
+ <hashTree/>
916
+ <MD5HexAssertion guiclass="MD5HexAssertionGUI" testclass="MD5HexAssertion" testname="MD5Hex Assertion" enabled="true">
917
+ <stringProp name="MD5HexAssertion.size"></stringProp>
918
+ </MD5HexAssertion>
919
+ <hashTree/>
920
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
921
+ <collectionProp name="Asserion.test_strings">
922
+ <stringProp name="match"></stringProp>
923
+ </collectionProp>
924
+ <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
925
+ <boolProp name="Assertion.assume_success">false</boolProp>
926
+ <intProp name="Assertion.test_type">2</intProp>
927
+ <stringProp name="Assertion.scope">all</stringProp>
928
+ </ResponseAssertion>
929
+ <hashTree/>
930
+ <SMIMEAssertion guiclass="SMIMEAssertionGui" testclass="SMIMEAssertion" testname="SMIME Assertion" enabled="true">
931
+ <boolProp name="SMIMEAssert.verifySignature">false</boolProp>
932
+ <boolProp name="SMIMEAssert.notSigned">false</boolProp>
933
+ <stringProp name="SMIMEAssert.issuerDn"></stringProp>
934
+ <stringProp name="SMIMEAssert.signerDn"></stringProp>
935
+ <stringProp name="SMIMEAssert.signerSerial"></stringProp>
936
+ <stringProp name="SMIMEAssert.signerEmail"></stringProp>
937
+ <stringProp name="SMIMEAssert.signerCertFile"></stringProp>
938
+ <boolProp name="SMIMEAssert.signerNoCheck">false</boolProp>
939
+ <boolProp name="SMIMEAssert.signerCheckConstraints">false</boolProp>
940
+ <boolProp name="SMIMEAssert.signerCheckByFile">false</boolProp>
941
+ <stringProp name="SMIMEAssert.messagePosition"></stringProp>
942
+ </SMIMEAssertion>
943
+ <hashTree/>
944
+ <XMLAssertion guiclass="XMLAssertionGui" testclass="XMLAssertion" testname="XML Assertion" enabled="true"/>
945
+ <hashTree/>
946
+ <XMLSchemaAssertion guiclass="XMLSchemaAssertionGUI" testclass="XMLSchemaAssertion" testname="XML Schema Assertion" enabled="true">
947
+ <stringProp name="xmlschema_assertion_filename"></stringProp>
948
+ </XMLSchemaAssertion>
949
+ <hashTree/>
950
+ <XPathAssertion guiclass="XPathAssertionGui" testclass="XPathAssertion" testname="XPath Assertion" enabled="true">
951
+ <boolProp name="XPath.negate">false</boolProp>
952
+ <stringProp name="XPath.xpath">/</stringProp>
953
+ <boolProp name="XPath.validate">false</boolProp>
954
+ <boolProp name="XPath.whitespace">false</boolProp>
955
+ <boolProp name="XPath.tolerant">false</boolProp>
956
+ <boolProp name="XPath.namespace">false</boolProp>
957
+ </XPathAssertion>
958
+ <hashTree/>
959
+ <ResultCollector guiclass="StatGraphVisualizer" testclass="ResultCollector" testname="Aggregate Graph" enabled="true">
960
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
961
+ <objProp>
962
+ <name>saveConfig</name>
963
+ <value class="SampleSaveConfiguration">
964
+ <time>true</time>
965
+ <latency>true</latency>
966
+ <timestamp>true</timestamp>
967
+ <success>true</success>
968
+ <label>true</label>
969
+ <code>true</code>
970
+ <message>false</message>
971
+ <threadName>true</threadName>
972
+ <dataType>false</dataType>
973
+ <encoding>false</encoding>
974
+ <assertions>false</assertions>
975
+ <subresults>false</subresults>
976
+ <responseData>false</responseData>
977
+ <samplerData>false</samplerData>
978
+ <xml>false</xml>
979
+ <fieldNames>false</fieldNames>
980
+ <responseHeaders>false</responseHeaders>
981
+ <requestHeaders>false</requestHeaders>
982
+ <responseDataOnError>false</responseDataOnError>
983
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
984
+ <assertionsResultsToSave>0</assertionsResultsToSave>
985
+ <bytes>true</bytes>
986
+ <threadCounts>true</threadCounts>
987
+ <sampleCount>true</sampleCount>
988
+ </value>
989
+ </objProp>
990
+ <stringProp name="filename"></stringProp>
991
+ </ResultCollector>
992
+ <hashTree/>
993
+ <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate Report" enabled="true">
994
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
995
+ <objProp>
996
+ <name>saveConfig</name>
997
+ <value class="SampleSaveConfiguration">
998
+ <time>true</time>
999
+ <latency>true</latency>
1000
+ <timestamp>true</timestamp>
1001
+ <success>true</success>
1002
+ <label>true</label>
1003
+ <code>true</code>
1004
+ <message>false</message>
1005
+ <threadName>true</threadName>
1006
+ <dataType>false</dataType>
1007
+ <encoding>false</encoding>
1008
+ <assertions>false</assertions>
1009
+ <subresults>false</subresults>
1010
+ <responseData>false</responseData>
1011
+ <samplerData>false</samplerData>
1012
+ <xml>false</xml>
1013
+ <fieldNames>false</fieldNames>
1014
+ <responseHeaders>false</responseHeaders>
1015
+ <requestHeaders>false</requestHeaders>
1016
+ <responseDataOnError>false</responseDataOnError>
1017
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1018
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1019
+ <bytes>true</bytes>
1020
+ <threadCounts>true</threadCounts>
1021
+ <sampleCount>true</sampleCount>
1022
+ </value>
1023
+ </objProp>
1024
+ <stringProp name="filename"></stringProp>
1025
+ </ResultCollector>
1026
+ <hashTree/>
1027
+ <ResultCollector guiclass="AssertionVisualizer" testclass="ResultCollector" testname="Assertion Results" enabled="true">
1028
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1029
+ <objProp>
1030
+ <name>saveConfig</name>
1031
+ <value class="SampleSaveConfiguration">
1032
+ <time>true</time>
1033
+ <latency>true</latency>
1034
+ <timestamp>true</timestamp>
1035
+ <success>true</success>
1036
+ <label>true</label>
1037
+ <code>true</code>
1038
+ <message>false</message>
1039
+ <threadName>true</threadName>
1040
+ <dataType>false</dataType>
1041
+ <encoding>false</encoding>
1042
+ <assertions>false</assertions>
1043
+ <subresults>false</subresults>
1044
+ <responseData>false</responseData>
1045
+ <samplerData>false</samplerData>
1046
+ <xml>false</xml>
1047
+ <fieldNames>false</fieldNames>
1048
+ <responseHeaders>false</responseHeaders>
1049
+ <requestHeaders>false</requestHeaders>
1050
+ <responseDataOnError>false</responseDataOnError>
1051
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1052
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1053
+ <bytes>true</bytes>
1054
+ <threadCounts>true</threadCounts>
1055
+ <sampleCount>true</sampleCount>
1056
+ </value>
1057
+ </objProp>
1058
+ <stringProp name="filename"></stringProp>
1059
+ </ResultCollector>
1060
+ <hashTree/>
1061
+ <BeanShellListener guiclass="TestBeanGUI" testclass="BeanShellListener" testname="BeanShell Listener" enabled="true">
1062
+ <stringProp name="filename"></stringProp>
1063
+ <stringProp name="parameters"></stringProp>
1064
+ <boolProp name="resetInterpreter">false</boolProp>
1065
+ <stringProp name="script"></stringProp>
1066
+ </BeanShellListener>
1067
+ <hashTree/>
1068
+ <BSFListener guiclass="TestBeanGUI" testclass="BSFListener" testname="BSF Listener" enabled="true">
1069
+ <stringProp name="filename"></stringProp>
1070
+ <stringProp name="parameters"></stringProp>
1071
+ <stringProp name="script"></stringProp>
1072
+ <stringProp name="scriptLanguage"></stringProp>
1073
+ </BSFListener>
1074
+ <hashTree/>
1075
+ <ResultCollector guiclass="ComparisonVisualizer" testclass="ResultCollector" testname="Comparison Assertion Visualizer" enabled="true">
1076
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1077
+ <objProp>
1078
+ <name>saveConfig</name>
1079
+ <value class="SampleSaveConfiguration">
1080
+ <time>true</time>
1081
+ <latency>true</latency>
1082
+ <timestamp>true</timestamp>
1083
+ <success>true</success>
1084
+ <label>true</label>
1085
+ <code>true</code>
1086
+ <message>false</message>
1087
+ <threadName>true</threadName>
1088
+ <dataType>false</dataType>
1089
+ <encoding>false</encoding>
1090
+ <assertions>false</assertions>
1091
+ <subresults>false</subresults>
1092
+ <responseData>false</responseData>
1093
+ <samplerData>false</samplerData>
1094
+ <xml>false</xml>
1095
+ <fieldNames>false</fieldNames>
1096
+ <responseHeaders>false</responseHeaders>
1097
+ <requestHeaders>false</requestHeaders>
1098
+ <responseDataOnError>false</responseDataOnError>
1099
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1100
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1101
+ <bytes>true</bytes>
1102
+ <threadCounts>true</threadCounts>
1103
+ <sampleCount>true</sampleCount>
1104
+ </value>
1105
+ </objProp>
1106
+ <stringProp name="filename"></stringProp>
1107
+ </ResultCollector>
1108
+ <hashTree/>
1109
+ <ResultCollector guiclass="DistributionGraphVisualizer" testclass="ResultCollector" testname="Distribution Graph (alpha)" enabled="true">
1110
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1111
+ <objProp>
1112
+ <name>saveConfig</name>
1113
+ <value class="SampleSaveConfiguration">
1114
+ <time>true</time>
1115
+ <latency>true</latency>
1116
+ <timestamp>true</timestamp>
1117
+ <success>true</success>
1118
+ <label>true</label>
1119
+ <code>true</code>
1120
+ <message>false</message>
1121
+ <threadName>true</threadName>
1122
+ <dataType>false</dataType>
1123
+ <encoding>false</encoding>
1124
+ <assertions>false</assertions>
1125
+ <subresults>false</subresults>
1126
+ <responseData>false</responseData>
1127
+ <samplerData>false</samplerData>
1128
+ <xml>false</xml>
1129
+ <fieldNames>false</fieldNames>
1130
+ <responseHeaders>false</responseHeaders>
1131
+ <requestHeaders>false</requestHeaders>
1132
+ <responseDataOnError>false</responseDataOnError>
1133
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1134
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1135
+ <bytes>true</bytes>
1136
+ <threadCounts>true</threadCounts>
1137
+ <sampleCount>true</sampleCount>
1138
+ </value>
1139
+ </objProp>
1140
+ <stringProp name="filename"></stringProp>
1141
+ </ResultCollector>
1142
+ <hashTree/>
1143
+ <Summariser guiclass="SummariserGui" testclass="Summariser" testname="Generate Summary Results" enabled="true"/>
1144
+ <hashTree/>
1145
+ <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="true">
1146
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1147
+ <objProp>
1148
+ <name>saveConfig</name>
1149
+ <value class="SampleSaveConfiguration">
1150
+ <time>true</time>
1151
+ <latency>true</latency>
1152
+ <timestamp>true</timestamp>
1153
+ <success>true</success>
1154
+ <label>true</label>
1155
+ <code>true</code>
1156
+ <message>false</message>
1157
+ <threadName>true</threadName>
1158
+ <dataType>false</dataType>
1159
+ <encoding>false</encoding>
1160
+ <assertions>false</assertions>
1161
+ <subresults>false</subresults>
1162
+ <responseData>false</responseData>
1163
+ <samplerData>false</samplerData>
1164
+ <xml>false</xml>
1165
+ <fieldNames>false</fieldNames>
1166
+ <responseHeaders>false</responseHeaders>
1167
+ <requestHeaders>false</requestHeaders>
1168
+ <responseDataOnError>false</responseDataOnError>
1169
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1170
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1171
+ <bytes>true</bytes>
1172
+ <threadCounts>true</threadCounts>
1173
+ <sampleCount>true</sampleCount>
1174
+ </value>
1175
+ </objProp>
1176
+ <stringProp name="filename"></stringProp>
1177
+ </ResultCollector>
1178
+ <hashTree/>
1179
+ <JSR223Listener guiclass="TestBeanGUI" testclass="JSR223Listener" testname="JSR223 Listener" enabled="true">
1180
+ <stringProp name="cacheKey"></stringProp>
1181
+ <stringProp name="filename"></stringProp>
1182
+ <stringProp name="parameters"></stringProp>
1183
+ <stringProp name="script"></stringProp>
1184
+ <stringProp name="scriptLanguage"></stringProp>
1185
+ </JSR223Listener>
1186
+ <hashTree/>
1187
+ <MailerResultCollector guiclass="MailerVisualizer" testclass="MailerResultCollector" testname="Mailer Visualizer" enabled="true">
1188
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1189
+ <objProp>
1190
+ <name>saveConfig</name>
1191
+ <value class="SampleSaveConfiguration">
1192
+ <time>true</time>
1193
+ <latency>true</latency>
1194
+ <timestamp>true</timestamp>
1195
+ <success>true</success>
1196
+ <label>true</label>
1197
+ <code>true</code>
1198
+ <message>false</message>
1199
+ <threadName>true</threadName>
1200
+ <dataType>false</dataType>
1201
+ <encoding>false</encoding>
1202
+ <assertions>false</assertions>
1203
+ <subresults>false</subresults>
1204
+ <responseData>false</responseData>
1205
+ <samplerData>false</samplerData>
1206
+ <xml>false</xml>
1207
+ <fieldNames>false</fieldNames>
1208
+ <responseHeaders>false</responseHeaders>
1209
+ <requestHeaders>false</requestHeaders>
1210
+ <responseDataOnError>false</responseDataOnError>
1211
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1212
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1213
+ <bytes>true</bytes>
1214
+ <threadCounts>true</threadCounts>
1215
+ <sampleCount>true</sampleCount>
1216
+ </value>
1217
+ </objProp>
1218
+ <elementProp name="MailerResultCollector.mailer_model" elementType="MailerModel">
1219
+ <stringProp name="MailerModel.successLimit">2</stringProp>
1220
+ <stringProp name="MailerModel.failureLimit">2</stringProp>
1221
+ <stringProp name="MailerModel.failureSubject"></stringProp>
1222
+ <stringProp name="MailerModel.fromAddress"></stringProp>
1223
+ <stringProp name="MailerModel.smtpHost"></stringProp>
1224
+ <stringProp name="MailerModel.successSubject"></stringProp>
1225
+ <stringProp name="MailerModel.addressie"></stringProp>
1226
+ </elementProp>
1227
+ <stringProp name="filename"></stringProp>
1228
+ </MailerResultCollector>
1229
+ <hashTree/>
1230
+ <ResultCollector guiclass="MonitorHealthVisualizer" testclass="ResultCollector" testname="Monitor Results" enabled="true">
1231
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1232
+ <objProp>
1233
+ <name>saveConfig</name>
1234
+ <value class="SampleSaveConfiguration">
1235
+ <time>true</time>
1236
+ <latency>true</latency>
1237
+ <timestamp>true</timestamp>
1238
+ <success>true</success>
1239
+ <label>true</label>
1240
+ <code>true</code>
1241
+ <message>false</message>
1242
+ <threadName>true</threadName>
1243
+ <dataType>false</dataType>
1244
+ <encoding>false</encoding>
1245
+ <assertions>false</assertions>
1246
+ <subresults>false</subresults>
1247
+ <responseData>false</responseData>
1248
+ <samplerData>false</samplerData>
1249
+ <xml>false</xml>
1250
+ <fieldNames>false</fieldNames>
1251
+ <responseHeaders>false</responseHeaders>
1252
+ <requestHeaders>false</requestHeaders>
1253
+ <responseDataOnError>false</responseDataOnError>
1254
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1255
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1256
+ <bytes>true</bytes>
1257
+ <threadCounts>true</threadCounts>
1258
+ <sampleCount>true</sampleCount>
1259
+ </value>
1260
+ </objProp>
1261
+ <stringProp name="filename"></stringProp>
1262
+ </ResultCollector>
1263
+ <hashTree/>
1264
+ <ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true">
1265
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1266
+ <objProp>
1267
+ <name>saveConfig</name>
1268
+ <value class="SampleSaveConfiguration">
1269
+ <time>true</time>
1270
+ <latency>true</latency>
1271
+ <timestamp>true</timestamp>
1272
+ <success>true</success>
1273
+ <label>true</label>
1274
+ <code>true</code>
1275
+ <message>false</message>
1276
+ <threadName>true</threadName>
1277
+ <dataType>false</dataType>
1278
+ <encoding>false</encoding>
1279
+ <assertions>false</assertions>
1280
+ <subresults>false</subresults>
1281
+ <responseData>false</responseData>
1282
+ <samplerData>false</samplerData>
1283
+ <xml>false</xml>
1284
+ <fieldNames>false</fieldNames>
1285
+ <responseHeaders>false</responseHeaders>
1286
+ <requestHeaders>false</requestHeaders>
1287
+ <responseDataOnError>false</responseDataOnError>
1288
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1289
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1290
+ <bytes>true</bytes>
1291
+ <threadCounts>true</threadCounts>
1292
+ <sampleCount>true</sampleCount>
1293
+ </value>
1294
+ </objProp>
1295
+ <stringProp name="filename"></stringProp>
1296
+ </ResultCollector>
1297
+ <hashTree/>
1298
+ <ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true">
1299
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1300
+ <objProp>
1301
+ <name>saveConfig</name>
1302
+ <value class="SampleSaveConfiguration">
1303
+ <time>true</time>
1304
+ <latency>true</latency>
1305
+ <timestamp>true</timestamp>
1306
+ <success>true</success>
1307
+ <label>true</label>
1308
+ <code>true</code>
1309
+ <message>false</message>
1310
+ <threadName>true</threadName>
1311
+ <dataType>false</dataType>
1312
+ <encoding>false</encoding>
1313
+ <assertions>false</assertions>
1314
+ <subresults>false</subresults>
1315
+ <responseData>false</responseData>
1316
+ <samplerData>false</samplerData>
1317
+ <xml>false</xml>
1318
+ <fieldNames>false</fieldNames>
1319
+ <responseHeaders>false</responseHeaders>
1320
+ <requestHeaders>false</requestHeaders>
1321
+ <responseDataOnError>false</responseDataOnError>
1322
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1323
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1324
+ <bytes>true</bytes>
1325
+ <threadCounts>true</threadCounts>
1326
+ <sampleCount>true</sampleCount>
1327
+ </value>
1328
+ </objProp>
1329
+ <stringProp name="filename"></stringProp>
1330
+ </ResultCollector>
1331
+ <hashTree/>
1332
+ <ResultSaver guiclass="ResultSaverGui" testclass="ResultSaver" testname="Save Responses to a file" enabled="true">
1333
+ <stringProp name="FileSaver.filename"></stringProp>
1334
+ <boolProp name="FileSaver.errorsonly">false</boolProp>
1335
+ <boolProp name="FileSaver.skipautonumber">false</boolProp>
1336
+ <boolProp name="FileSaver.skipsuffix">false</boolProp>
1337
+ <boolProp name="FileSaver.successonly">false</boolProp>
1338
+ </ResultSaver>
1339
+ <hashTree/>
1340
+ <ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="Simple Data Writer" enabled="true">
1341
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1342
+ <objProp>
1343
+ <name>saveConfig</name>
1344
+ <value class="SampleSaveConfiguration">
1345
+ <time>true</time>
1346
+ <latency>true</latency>
1347
+ <timestamp>true</timestamp>
1348
+ <success>true</success>
1349
+ <label>true</label>
1350
+ <code>true</code>
1351
+ <message>true</message>
1352
+ <threadName>true</threadName>
1353
+ <dataType>false</dataType>
1354
+ <encoding>false</encoding>
1355
+ <assertions>false</assertions>
1356
+ <subresults>false</subresults>
1357
+ <responseData>false</responseData>
1358
+ <samplerData>false</samplerData>
1359
+ <xml>true</xml>
1360
+ <fieldNames>false</fieldNames>
1361
+ <responseHeaders>true</responseHeaders>
1362
+ <requestHeaders>false</requestHeaders>
1363
+ <responseDataOnError>false</responseDataOnError>
1364
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1365
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1366
+ <bytes>true</bytes>
1367
+ <threadCounts>true</threadCounts>
1368
+ <sampleCount>true</sampleCount>
1369
+ </value>
1370
+ </objProp>
1371
+ <stringProp name="filename"></stringProp>
1372
+ </ResultCollector>
1373
+ <hashTree/>
1374
+ <ResultCollector guiclass="SplineVisualizer" testclass="ResultCollector" testname="Spline Visualizer" enabled="true">
1375
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1376
+ <objProp>
1377
+ <name>saveConfig</name>
1378
+ <value class="SampleSaveConfiguration">
1379
+ <time>true</time>
1380
+ <latency>true</latency>
1381
+ <timestamp>true</timestamp>
1382
+ <success>true</success>
1383
+ <label>true</label>
1384
+ <code>true</code>
1385
+ <message>false</message>
1386
+ <threadName>true</threadName>
1387
+ <dataType>false</dataType>
1388
+ <encoding>false</encoding>
1389
+ <assertions>false</assertions>
1390
+ <subresults>false</subresults>
1391
+ <responseData>false</responseData>
1392
+ <samplerData>false</samplerData>
1393
+ <xml>false</xml>
1394
+ <fieldNames>false</fieldNames>
1395
+ <responseHeaders>false</responseHeaders>
1396
+ <requestHeaders>false</requestHeaders>
1397
+ <responseDataOnError>false</responseDataOnError>
1398
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1399
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1400
+ <bytes>true</bytes>
1401
+ <threadCounts>true</threadCounts>
1402
+ <sampleCount>true</sampleCount>
1403
+ </value>
1404
+ </objProp>
1405
+ <stringProp name="filename"></stringProp>
1406
+ </ResultCollector>
1407
+ <hashTree/>
1408
+ <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
1409
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1410
+ <objProp>
1411
+ <name>saveConfig</name>
1412
+ <value class="SampleSaveConfiguration">
1413
+ <time>true</time>
1414
+ <latency>true</latency>
1415
+ <timestamp>true</timestamp>
1416
+ <success>true</success>
1417
+ <label>true</label>
1418
+ <code>true</code>
1419
+ <message>false</message>
1420
+ <threadName>true</threadName>
1421
+ <dataType>false</dataType>
1422
+ <encoding>false</encoding>
1423
+ <assertions>false</assertions>
1424
+ <subresults>false</subresults>
1425
+ <responseData>false</responseData>
1426
+ <samplerData>false</samplerData>
1427
+ <xml>false</xml>
1428
+ <fieldNames>false</fieldNames>
1429
+ <responseHeaders>false</responseHeaders>
1430
+ <requestHeaders>false</requestHeaders>
1431
+ <responseDataOnError>false</responseDataOnError>
1432
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1433
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1434
+ <bytes>true</bytes>
1435
+ <threadCounts>true</threadCounts>
1436
+ <sampleCount>true</sampleCount>
1437
+ </value>
1438
+ </objProp>
1439
+ <stringProp name="filename"></stringProp>
1440
+ </ResultCollector>
1441
+ <hashTree/>
1442
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
1443
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1444
+ <objProp>
1445
+ <name>saveConfig</name>
1446
+ <value class="SampleSaveConfiguration">
1447
+ <time>true</time>
1448
+ <latency>true</latency>
1449
+ <timestamp>true</timestamp>
1450
+ <success>true</success>
1451
+ <label>true</label>
1452
+ <code>true</code>
1453
+ <message>false</message>
1454
+ <threadName>true</threadName>
1455
+ <dataType>false</dataType>
1456
+ <encoding>false</encoding>
1457
+ <assertions>false</assertions>
1458
+ <subresults>false</subresults>
1459
+ <responseData>false</responseData>
1460
+ <samplerData>false</samplerData>
1461
+ <xml>false</xml>
1462
+ <fieldNames>false</fieldNames>
1463
+ <responseHeaders>false</responseHeaders>
1464
+ <requestHeaders>false</requestHeaders>
1465
+ <responseDataOnError>false</responseDataOnError>
1466
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1467
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1468
+ <bytes>true</bytes>
1469
+ <threadCounts>true</threadCounts>
1470
+ <sampleCount>true</sampleCount>
1471
+ </value>
1472
+ </objProp>
1473
+ <stringProp name="filename"></stringProp>
1474
+ </ResultCollector>
1475
+ <hashTree/>
1476
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
1477
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
1478
+ <objProp>
1479
+ <name>saveConfig</name>
1480
+ <value class="SampleSaveConfiguration">
1481
+ <time>true</time>
1482
+ <latency>true</latency>
1483
+ <timestamp>true</timestamp>
1484
+ <success>true</success>
1485
+ <label>true</label>
1486
+ <code>true</code>
1487
+ <message>false</message>
1488
+ <threadName>true</threadName>
1489
+ <dataType>false</dataType>
1490
+ <encoding>false</encoding>
1491
+ <assertions>false</assertions>
1492
+ <subresults>false</subresults>
1493
+ <responseData>false</responseData>
1494
+ <samplerData>false</samplerData>
1495
+ <xml>false</xml>
1496
+ <fieldNames>false</fieldNames>
1497
+ <responseHeaders>false</responseHeaders>
1498
+ <requestHeaders>false</requestHeaders>
1499
+ <responseDataOnError>false</responseDataOnError>
1500
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
1501
+ <assertionsResultsToSave>0</assertionsResultsToSave>
1502
+ <bytes>true</bytes>
1503
+ <threadCounts>true</threadCounts>
1504
+ <sampleCount>true</sampleCount>
1505
+ </value>
1506
+ </objProp>
1507
+ <stringProp name="filename"></stringProp>
1508
+ </ResultCollector>
1509
+ <hashTree/>
1510
+ </hashTree>
1511
+ </hashTree>
1512
+ </hashTree>
1513
+ </jmeterTestPlan>