gridinit-jmeter 0.3.2 → 1.0.0.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. data/Gemfile +2 -1
  2. data/README.md +51 -72
  3. data/examples/basic_assertion.rb +6 -6
  4. data/examples/basic_auth.rb +5 -5
  5. data/examples/basic_cache.rb +5 -5
  6. data/examples/basic_cookies.rb +5 -5
  7. data/examples/basic_extract.rb +4 -10
  8. data/examples/basic_gc_results.rb +12 -9
  9. data/examples/basic_google.rb +3 -3
  10. data/examples/basic_grid.rb +3 -6
  11. data/examples/basic_header.rb +12 -10
  12. data/examples/basic_ldap_ext.rb +11 -12
  13. data/examples/basic_post.rb +5 -6
  14. data/examples/basic_query_params.rb +3 -3
  15. data/examples/basic_think_time.rb +7 -4
  16. data/examples/basic_throughput_shaping_timer.rb +4 -4
  17. data/examples/etsy_login_browse.rb +21 -21
  18. data/lib/gridinit-jmeter/DSL.md +237 -0
  19. data/lib/gridinit-jmeter/{idl → dsl}/access_log_sampler.rb +4 -2
  20. data/lib/gridinit-jmeter/{idl → dsl}/aggregate_graph.rb +4 -2
  21. data/lib/gridinit-jmeter/{idl → dsl}/aggregate_report.rb +4 -2
  22. data/lib/gridinit-jmeter/{idl → dsl}/ajp13_sampler.rb +5 -3
  23. data/lib/gridinit-jmeter/{idl → dsl}/assertion_results.rb +4 -2
  24. data/lib/gridinit-jmeter/{idl → dsl}/beanshell_assertion.rb +4 -2
  25. data/lib/gridinit-jmeter/{idl → dsl}/beanshell_listener.rb +4 -2
  26. data/lib/gridinit-jmeter/{idl → dsl}/beanshell_postprocessor.rb +4 -2
  27. data/lib/gridinit-jmeter/{idl → dsl}/beanshell_preprocessor.rb +4 -2
  28. data/lib/gridinit-jmeter/{idl → dsl}/beanshell_sampler.rb +4 -2
  29. data/lib/gridinit-jmeter/{idl → dsl}/beanshell_timer.rb +4 -2
  30. data/lib/gridinit-jmeter/{idl → dsl}/bsf_assertion.rb +4 -2
  31. data/lib/gridinit-jmeter/{idl → dsl}/bsf_listener.rb +4 -2
  32. data/lib/gridinit-jmeter/{idl → dsl}/bsf_postprocessor.rb +4 -2
  33. data/lib/gridinit-jmeter/{idl → dsl}/bsf_preprocessor.rb +4 -2
  34. data/lib/gridinit-jmeter/{idl → dsl}/bsf_sampler.rb +4 -2
  35. data/lib/gridinit-jmeter/{idl → dsl}/bsf_timer.rb +4 -2
  36. data/lib/gridinit-jmeter/{idl → dsl}/compare_assertion.rb +4 -2
  37. data/lib/gridinit-jmeter/{idl → dsl}/comparison_assertion_visualizer.rb +4 -2
  38. data/lib/gridinit-jmeter/{idl → dsl}/constant_throughput_timer.rb +4 -2
  39. data/lib/gridinit-jmeter/{idl → dsl}/constant_timer.rb +4 -2
  40. data/lib/gridinit-jmeter/{idl → dsl}/counter.rb +4 -2
  41. data/lib/gridinit-jmeter/{idl → dsl}/cssjquery_extractor.rb +4 -2
  42. data/lib/gridinit-jmeter/{idl → dsl}/csv_data_set_config.rb +4 -2
  43. data/lib/gridinit-jmeter/{idl → dsl}/debug_postprocessor.rb +4 -2
  44. data/lib/gridinit-jmeter/{idl → dsl}/debug_sampler.rb +4 -2
  45. data/lib/gridinit-jmeter/{idl → dsl}/distribution_graphalpha.rb +4 -2
  46. data/lib/gridinit-jmeter/{idl → dsl}/duration_assertion.rb +4 -2
  47. data/lib/gridinit-jmeter/{idl → dsl}/foreach_controller.rb +4 -2
  48. data/lib/gridinit-jmeter/{idl → dsl}/ftp_request.rb +4 -2
  49. data/lib/gridinit-jmeter/{idl → dsl}/ftp_request_defaults.rb +4 -2
  50. data/lib/gridinit-jmeter/{idl → dsl}/gaussian_random_timer.rb +4 -2
  51. data/lib/gridinit-jmeter/{idl → dsl}/generate_summary_results.rb +4 -2
  52. data/lib/gridinit-jmeter/{idl → dsl}/graph_results.rb +4 -2
  53. data/lib/gridinit-jmeter/{idl → dsl}/html_assertion.rb +4 -2
  54. data/lib/gridinit-jmeter/{idl → dsl}/html_link_parser.rb +4 -2
  55. data/lib/gridinit-jmeter/{idl → dsl}/html_parameter_mask.rb +4 -2
  56. data/lib/gridinit-jmeter/dsl/http_authorization_manager.rb +36 -0
  57. data/lib/gridinit-jmeter/{idl → dsl}/http_cache_manager.rb +4 -2
  58. data/lib/gridinit-jmeter/{idl → dsl}/http_cookie_manager.rb +5 -2
  59. data/lib/gridinit-jmeter/{idl → dsl}/http_header_manager.rb +10 -3
  60. data/lib/gridinit-jmeter/{idl → dsl}/http_request.rb +5 -3
  61. data/lib/gridinit-jmeter/{idl → dsl}/http_request_defaults.rb +15 -4
  62. data/lib/gridinit-jmeter/{idl → dsl}/http_url_rewriting_modifier.rb +4 -2
  63. data/lib/gridinit-jmeter/{idl → dsl}/if_controller.rb +5 -2
  64. data/lib/gridinit-jmeter/{idl → dsl}/include_controller.rb +4 -2
  65. data/lib/gridinit-jmeter/{idl → dsl}/java_request.rb +4 -2
  66. data/lib/gridinit-jmeter/{idl → dsl}/java_request_defaults.rb +4 -2
  67. data/lib/gridinit-jmeter/{idl → dsl}/jdbc_connection_configuration.rb +4 -2
  68. data/lib/gridinit-jmeter/{idl → dsl}/jdbc_postprocessor.rb +4 -2
  69. data/lib/gridinit-jmeter/{idl → dsl}/jdbc_preprocessor.rb +4 -2
  70. data/lib/gridinit-jmeter/{idl → dsl}/jdbc_request.rb +4 -2
  71. data/lib/gridinit-jmeter/{idl → dsl}/jms_pointtopoint.rb +6 -4
  72. data/lib/gridinit-jmeter/{idl → dsl}/jms_publisher.rb +5 -3
  73. data/lib/gridinit-jmeter/{idl → dsl}/jms_subscriber.rb +4 -2
  74. data/lib/gridinit-jmeter/{idl → dsl}/jsr223_assertion.rb +4 -2
  75. data/lib/gridinit-jmeter/{idl → dsl}/jsr223_listener.rb +4 -2
  76. data/lib/gridinit-jmeter/{idl → dsl}/jsr223_postprocessor.rb +4 -2
  77. data/lib/gridinit-jmeter/{idl → dsl}/jsr223_preprocessor.rb +4 -2
  78. data/lib/gridinit-jmeter/{idl → dsl}/jsr223_sampler.rb +4 -2
  79. data/lib/gridinit-jmeter/{idl → dsl}/jsr223_timer.rb +4 -2
  80. data/lib/gridinit-jmeter/{idl → dsl}/junit_request.rb +4 -2
  81. data/lib/gridinit-jmeter/{idl → dsl}/keystore_configuration.rb +4 -2
  82. data/lib/gridinit-jmeter/{idl → dsl}/ldap_extended_request.rb +4 -2
  83. data/lib/gridinit-jmeter/{idl → dsl}/ldap_extended_request_defaults.rb +4 -2
  84. data/lib/gridinit-jmeter/{idl → dsl}/ldap_request.rb +5 -3
  85. data/lib/gridinit-jmeter/{idl → dsl}/ldap_request_defaults.rb +13 -4
  86. data/lib/gridinit-jmeter/{idl → dsl}/login_config_element.rb +4 -2
  87. data/lib/gridinit-jmeter/{idl → dsl}/loop_controller.rb +4 -2
  88. data/lib/gridinit-jmeter/{idl → dsl}/mail_reader_sampler.rb +4 -2
  89. data/lib/gridinit-jmeter/{idl → dsl}/mailer_visualizer.rb +4 -2
  90. data/lib/gridinit-jmeter/{idl → dsl}/md5hex_assertion.rb +4 -2
  91. data/lib/gridinit-jmeter/{idl → dsl}/module_controller.rb +4 -2
  92. data/lib/gridinit-jmeter/{idl → dsl}/monitor_results.rb +4 -2
  93. data/lib/gridinit-jmeter/{idl → dsl}/once_only_controller.rb +4 -2
  94. data/lib/gridinit-jmeter/{idl → dsl}/os_process_sampler.rb +6 -4
  95. data/lib/gridinit-jmeter/{idl → dsl}/poisson_random_timer.rb +4 -2
  96. data/lib/gridinit-jmeter/{idl → dsl}/random_controller.rb +4 -2
  97. data/lib/gridinit-jmeter/{idl → dsl}/random_order_controller.rb +4 -2
  98. data/lib/gridinit-jmeter/{idl → dsl}/random_variable.rb +4 -2
  99. data/lib/gridinit-jmeter/{idl → dsl}/recording_controller.rb +4 -2
  100. data/lib/gridinit-jmeter/{idl → dsl}/regex_user_parameters.rb +4 -2
  101. data/lib/gridinit-jmeter/{idl → dsl}/regular_expression_extractor.rb +5 -2
  102. data/lib/gridinit-jmeter/{idl → dsl}/response_assertion.rb +8 -3
  103. data/lib/gridinit-jmeter/{idl → dsl}/response_time_graph.rb +4 -2
  104. data/lib/gridinit-jmeter/{idl → dsl}/result_status_action_handler.rb +4 -2
  105. data/lib/gridinit-jmeter/{idl → dsl}/runtime_controller.rb +4 -2
  106. data/lib/gridinit-jmeter/{idl → dsl}/save_responses_to_a_file.rb +4 -2
  107. data/lib/gridinit-jmeter/{idl → dsl}/simple_config_element.rb +4 -2
  108. data/lib/gridinit-jmeter/{idl → dsl}/simple_controller.rb +4 -2
  109. data/lib/gridinit-jmeter/{idl → dsl}/simple_data_writer.rb +4 -2
  110. data/lib/gridinit-jmeter/{idl → dsl}/smime_assertion.rb +4 -2
  111. data/lib/gridinit-jmeter/{idl → dsl}/smtp_sampler.rb +4 -2
  112. data/lib/gridinit-jmeter/{idl → dsl}/soapxmlrpc_request.rb +4 -2
  113. data/lib/gridinit-jmeter/{idl → dsl}/spline_visualizer.rb +4 -2
  114. data/lib/gridinit-jmeter/{idl → dsl}/summary_report.rb +4 -2
  115. data/lib/gridinit-jmeter/{idl → dsl}/switch_controller.rb +4 -2
  116. data/lib/gridinit-jmeter/{idl → dsl}/synchronizing_timer.rb +4 -2
  117. data/lib/gridinit-jmeter/{idl → dsl}/tcp_sampler.rb +4 -2
  118. data/lib/gridinit-jmeter/{idl → dsl}/tcp_sampler_config.rb +4 -2
  119. data/lib/gridinit-jmeter/{idl → dsl}/test_action.rb +4 -2
  120. data/lib/gridinit-jmeter/{idl → dsl}/test_plan.rb +5 -3
  121. data/lib/gridinit-jmeter/{idl → dsl}/thread_group.rb +5 -3
  122. data/lib/gridinit-jmeter/{idl → dsl}/throughput_controller.rb +5 -3
  123. data/lib/gridinit-jmeter/{idl → dsl}/transaction_controller.rb +6 -3
  124. data/lib/gridinit-jmeter/{idl → dsl}/uniform_random_timer.rb +4 -2
  125. data/lib/gridinit-jmeter/dsl/user_defined_variables.rb +35 -0
  126. data/lib/gridinit-jmeter/{idl → dsl}/user_parameters.rb +4 -2
  127. data/lib/gridinit-jmeter/{idl → dsl}/view_results_in_table.rb +4 -2
  128. data/lib/gridinit-jmeter/{idl → dsl}/view_results_tree.rb +4 -2
  129. data/lib/gridinit-jmeter/{idl → dsl}/while_controller.rb +4 -2
  130. data/lib/gridinit-jmeter/{idl → dsl}/xml_assertion.rb +4 -2
  131. data/lib/gridinit-jmeter/{idl → dsl}/xml_schema_assertion.rb +4 -2
  132. data/lib/gridinit-jmeter/{idl → dsl}/xpath_assertion.rb +4 -2
  133. data/lib/gridinit-jmeter/{idl → dsl}/xpath_extractor.rb +4 -2
  134. data/lib/gridinit-jmeter/dsl.rb +170 -187
  135. data/lib/gridinit-jmeter/helpers/helper.rb +43 -0
  136. data/lib/gridinit-jmeter/helpers/parser.rb +109 -0
  137. data/lib/gridinit-jmeter/idl.rb +16 -6
  138. data/lib/gridinit-jmeter/idl.xml +54 -11
  139. data/lib/gridinit-jmeter/{listeners → plugins}/gc_console_status_logger.rb +0 -0
  140. data/lib/gridinit-jmeter/{listeners → plugins}/gc_latencies_over_time.rb +0 -0
  141. data/lib/gridinit-jmeter/{listeners → plugins}/gc_response_codes_per_second.rb +0 -0
  142. data/lib/gridinit-jmeter/{listeners → plugins}/gc_response_times_distribution.rb +0 -0
  143. data/lib/gridinit-jmeter/{listeners → plugins}/gc_response_times_over_time.rb +0 -0
  144. data/lib/gridinit-jmeter/{listeners → plugins}/gc_response_times_percentiles.rb +0 -0
  145. data/lib/gridinit-jmeter/{listeners → plugins}/gc_transactions_per_second.rb +0 -0
  146. data/lib/gridinit-jmeter/{timers/gc_throughput_shaping_timer.rb → plugins/gc_variable_throughput_timer.rb} +1 -1
  147. data/lib/gridinit-jmeter/version.rb +1 -1
  148. data/lib/gridinit-jmeter.rb +6 -105
  149. data/spec/dsl_spec.rb +377 -82
  150. metadata +131 -174
  151. data/examples/basic_proxy.rb +0 -8
  152. data/examples/basic_results.rb +0 -22
  153. data/examples/basic_run.rb +0 -12
  154. data/examples/basic_simple_data_writer.rb +0 -14
  155. data/examples/basic_stdout.rb +0 -8
  156. data/examples/basic_test_data.rb +0 -15
  157. data/examples/basic_testplan.jmx +0 -138
  158. data/examples/basic_testplan.rb +0 -44
  159. data/examples/jbhifi_now_search.rb +0 -94
  160. data/lib/gridinit-jmeter/assertions/response_assertion.rb +0 -55
  161. data/lib/gridinit-jmeter/config/auth_manager.rb +0 -26
  162. data/lib/gridinit-jmeter/config/cache_manager.rb +0 -20
  163. data/lib/gridinit-jmeter/config/cookie_manager.rb +0 -21
  164. data/lib/gridinit-jmeter/config/counter_config.rb +0 -24
  165. data/lib/gridinit-jmeter/config/header_manager.rb +0 -26
  166. data/lib/gridinit-jmeter/config/random_variable.rb +0 -24
  167. data/lib/gridinit-jmeter/config/request_defaults.rb +0 -31
  168. data/lib/gridinit-jmeter/config/user_defined_variable.rb +0 -25
  169. data/lib/gridinit-jmeter/controllers/if_controller.rb +0 -20
  170. data/lib/gridinit-jmeter/controllers/interleave.rb +0 -18
  171. data/lib/gridinit-jmeter/controllers/loop_controller.rb +0 -19
  172. data/lib/gridinit-jmeter/controllers/once_only.rb +0 -17
  173. data/lib/gridinit-jmeter/controllers/random_order.rb +0 -16
  174. data/lib/gridinit-jmeter/controllers/simple.rb +0 -17
  175. data/lib/gridinit-jmeter/controllers/switch.rb +0 -20
  176. data/lib/gridinit-jmeter/controllers/throughput.rb +0 -26
  177. data/lib/gridinit-jmeter/controllers/transaction.rb +0 -19
  178. data/lib/gridinit-jmeter/controllers/while_controller.rb +0 -18
  179. data/lib/gridinit-jmeter/helpers/dsl_helper.rb +0 -21
  180. data/lib/gridinit-jmeter/idl/http_authorization_manager.rb +0 -26
  181. data/lib/gridinit-jmeter/idl/user_defined_variables.rb +0 -26
  182. data/lib/gridinit-jmeter/listeners/aggregate_report.rb +0 -47
  183. data/lib/gridinit-jmeter/listeners/graph_visualizer.rb +0 -46
  184. data/lib/gridinit-jmeter/listeners/response_time_graph_visualizer.rb +0 -47
  185. data/lib/gridinit-jmeter/listeners/simple_data_writer.rb +0 -51
  186. data/lib/gridinit-jmeter/listeners/stat_visualizer.rb +0 -46
  187. data/lib/gridinit-jmeter/listeners/summary_report.rb +0 -46
  188. data/lib/gridinit-jmeter/listeners/table_visualizer.rb +0 -46
  189. data/lib/gridinit-jmeter/listeners/view_results_full_visualizer.rb +0 -57
  190. data/lib/gridinit-jmeter/post_processors/regex_extractor.rb +0 -34
  191. data/lib/gridinit-jmeter/post_processors/xpath_extractor.rb +0 -23
  192. data/lib/gridinit-jmeter/pre_processors/bean_shell_pre_processor.rb +0 -23
  193. data/lib/gridinit-jmeter/samplers/http_sampler.rb +0 -99
  194. data/lib/gridinit-jmeter/samplers/ldap_ext_sampler.rb +0 -36
  195. data/lib/gridinit-jmeter/samplers/soap_sampler.rb +0 -26
  196. data/lib/gridinit-jmeter/test_plan/test_plan.rb +0 -23
  197. data/lib/gridinit-jmeter/threads/thread_group.rb +0 -30
  198. data/lib/gridinit-jmeter/timers/gaussian_random_timer.rb +0 -18
@@ -1,94 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- require 'gridinit-jmeter'
3
- require 'open-uri'
4
-
5
- test do
6
-
7
- defaults(
8
- :domain => 'now.jbhifi.com.au',
9
- :protocol => 'https',
10
- :image_parser => true,
11
- :concurrentDwn => true,
12
- :embedded_url_re => '.+?now.((?!\$\{).)*$',
13
- :concurrentPool => 4
14
- )
15
-
16
- with_user_agent :iphone, 'Accept' => '*/*'
17
-
18
- cache :clear_each_iteration => true
19
-
20
- cookies
21
-
22
- threads 3, {:loops => 3} do
23
-
24
- random_timer 1000, 1500
25
-
26
- transaction 'jbhifi_home' do
27
- visit 'home', '/'
28
- visit 'choose', '/music/Home/Choose/?_=${__time(,)}', {
29
- :follow_redirects => false,
30
- :image_parser => true,
31
- :embedded_url_re => 'none',
32
- } do
33
- with_xhr
34
- assert 'contains', 'WELCOME TO JB HI-FI NOW'
35
- end
36
- end
37
-
38
- transaction 'jbhifi_search_xhr' do
39
- Loop 4 do
40
- counter
41
- bsh_pre(<<-EOS.strip_heredoc)
42
- String[] varArray = {"de", "dead", "deadma", "deadmau5"};
43
- idx = Integer.parseInt(vars.get("counter"))-1;
44
- vars.put("search_value", varArray[idx]);
45
- EOS
46
- get 'tgsearch', '/tgsearch/predictSearch.aspx?id=MD84-225&k=${search_value}' do
47
- with_xhr
48
- end
49
- end
50
- end
51
-
52
- transaction'jbhifi_search' do
53
- post 'search', '/music/Search/Search', {
54
- :fill_in => {
55
- 'searchType' => 'KW',
56
- 'keyword' => 'deadmau5',
57
- 'numRecords' => 25
58
- }
59
- } do
60
- with_xhr
61
- extract 'id', '"c":"(.+?)"', {
62
- :match_number => 0,
63
- :template => '$1$'
64
- }
65
- end
66
- end
67
-
68
- transaction'jbhifi_add_to_playlist' do
69
- post 'playlist', '/music/Playlist/AddPreview/', {
70
- :fill_in => {
71
- 'id' => '${id}'
72
- }
73
- } do
74
- with_xhr
75
- extract 'mp3', '"mp3":"(.+?)"', {
76
- :match_number => 0,
77
- :template => '$1$'
78
- }
79
- end
80
- end
81
-
82
- exists 'mp3' do
83
- transaction'jbhifi_preview_track' do
84
- get 'preview', '${mp3}'
85
- end
86
- end
87
-
88
- view_results
89
-
90
- end
91
-
92
- # end.grid ENV['API_TOKEN']
93
- end.jmx
94
- # end.run(path: '/usr/share/jmeter/bin/')
@@ -1,55 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class ResponseAssertion
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(match, pattern, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
10
- <collectionProp name="Asserion.test_strings">
11
- <stringProp name="#{Time.now.to_i}">#{pattern}</stringProp>
12
- </collectionProp>
13
- <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
14
- <boolProp name="Assertion.assume_success">false</boolProp>
15
- <intProp name="Assertion.test_type">#{test_type(match)}</intProp>
16
- </ResponseAssertion>
17
- EOF
18
- if params[:scope]
19
- @doc.at_xpath('//ResponseAssertion') <<
20
- Nokogiri::XML(<<-EOF.strip_heredoc).children
21
- <stringProp name="Assertion.scope">#{params[:scope]}</stringProp>
22
- EOF
23
- params.delete [:scope]
24
- end
25
- update params
26
- end
27
-
28
- private
29
-
30
- def test_type(match)
31
- case match
32
- when 'contains'
33
- 2
34
- when 'not-contains'
35
- 6
36
- when 'matches'
37
- 1
38
- when 'not-matches'
39
- 5
40
- when 'equals'
41
- 8
42
- when 'not-equals'
43
- 12
44
- when 'substring'
45
- 16
46
- when 'not-substring'
47
- 20
48
- else
49
- 2
50
- end
51
- end
52
- end
53
-
54
- end
55
- end
@@ -1,26 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class AuthManager
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
10
- <collectionProp name="AuthManager.auth_list">
11
- <elementProp name="" elementType="Authorization">
12
- <stringProp name="Authorization.url"></stringProp>
13
- <stringProp name="Authorization.username"></stringProp>
14
- <stringProp name="Authorization.password"></stringProp>
15
- <stringProp name="Authorization.domain"></stringProp>
16
- <stringProp name="Authorization.realm"></stringProp>
17
- </elementProp>
18
- </collectionProp>
19
- </AuthManager>
20
- EOF
21
- update params
22
- end
23
- end
24
-
25
- end
26
- end
@@ -1,20 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class CacheManager
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <CacheManager guiclass="CacheManagerGui" testclass="CacheManager" testname="HTTP Cache Manager" enabled="true">
10
- <boolProp name="clearEachIteration">#{params[:clear_each_iteration] ? 'true' : 'false'}</boolProp>
11
- <boolProp name="useExpires">#{params[:use_expires] ? 'true' : 'false'}</boolProp>
12
- </CacheManager>
13
- EOF
14
- params.delete :clear_each_iteration
15
- update params
16
- end
17
- end
18
-
19
- end
20
- end
@@ -1,21 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class CookieManager
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
10
- <collectionProp name="CookieManager.cookies"/>
11
- <boolProp name="CookieManager.clearEachIteration">#{params[:clear_each_iteration] ? 'true' : 'false'}</boolProp>
12
- <stringProp name="CookieManager.policy">default</stringProp>
13
- </CookieManager>
14
- EOF
15
- params.delete :clear_each_iteration
16
- update params
17
- end
18
- end
19
-
20
- end
21
- end
@@ -1,24 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class CounterConfig
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(name, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="#{name}" enabled="true">
10
- <stringProp name="CounterConfig.start">1</stringProp>
11
- <stringProp name="CounterConfig.end"></stringProp>
12
- <stringProp name="CounterConfig.incr">1</stringProp>
13
- <stringProp name="CounterConfig.name">#{name}</stringProp>
14
- <stringProp name="CounterConfig.format"></stringProp>
15
- <boolProp name="CounterConfig.per_user">true</boolProp>
16
- <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
17
- </CounterConfig>
18
- EOF
19
- update params
20
- end
21
- end
22
-
23
- end
24
- end
@@ -1,26 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class HeaderManager
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
10
- <collectionProp name="HeaderManager.headers"/>
11
- </HeaderManager>
12
- EOF
13
- params.each do |name, value|
14
- @doc.at_xpath('//collectionProp') <<
15
- Nokogiri::XML(<<-EOF.strip_heredoc).children
16
- <elementProp name="" elementType="Header">
17
- <stringProp name="Header.name">#{name}</stringProp>
18
- <stringProp name="Header.value">#{value}</stringProp>
19
- </elementProp>
20
- EOF
21
- end
22
- end
23
- end
24
-
25
- end
26
- end
@@ -1,24 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class RandomVariableConfig
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(name, min, max, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <RandomVariableConfig guiclass="TestBeanGUI" testclass="RandomVariableConfig" testname="#{name}" enabled="#{enabled(params)}">
10
- <stringProp name="maximumValue">#{max}</stringProp>
11
- <stringProp name="minimumValue">#{min}</stringProp>
12
- <stringProp name="outputFormat"></stringProp>
13
- <boolProp name="perThread">false</boolProp>
14
- <stringProp name="randomSeed"></stringProp>
15
- <stringProp name="variableName">#{name}</stringProp>
16
- </RandomVariableConfig>
17
-
18
- EOF
19
- update params
20
- end
21
- end
22
-
23
- end
24
- end
@@ -1,31 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class RequestDefaults
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
10
- <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
11
- <collectionProp name="Arguments.arguments"/>
12
- </elementProp>
13
- <stringProp name="HTTPSampler.domain"></stringProp>
14
- <stringProp name="HTTPSampler.port"></stringProp>
15
- <stringProp name="HTTPSampler.connect_timeout"></stringProp>
16
- <stringProp name="HTTPSampler.response_timeout"></stringProp>
17
- <stringProp name="HTTPSampler.protocol"></stringProp>
18
- <stringProp name="HTTPSampler.contentEncoding"></stringProp>
19
- <stringProp name="HTTPSampler.path"></stringProp>
20
- <boolProp name="HTTPSampler.image_parser">false</boolProp>
21
- <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
22
- <boolProp name="HTTPSampler.concurrentDwn">false</boolProp>
23
- <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
24
- </ConfigTestElement>
25
- EOF
26
- update params
27
- end
28
- end
29
-
30
- end
31
- end
@@ -1,25 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class UserDefinedVariable
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
10
- <collectionProp name="Arguments.arguments">
11
- <elementProp name="testguid" elementType="Argument">
12
- <stringProp name="Argument.name"></stringProp>
13
- <stringProp name="Argument.value"></stringProp>
14
- <stringProp name="Argument.metadata">=</stringProp>
15
- </elementProp>
16
- </collectionProp>
17
- <stringProp name="TestPlan.comments"></stringProp>
18
- </Arguments>
19
- EOF
20
- update params
21
- end
22
- end
23
-
24
- end
25
- end
@@ -1,20 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class IfController
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(name, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <IfController guiclass="IfControllerPanel" testclass="IfController" testname="#{name}" enabled="true">
10
- <stringProp name="IfController.condition">#{params[:condition]}</stringProp>
11
- <boolProp name="IfController.evaluateAll">false</boolProp>
12
- <boolProp name="IfController.useExpression">false</boolProp>
13
- </IfController>
14
- EOF
15
- update params
16
- end
17
- end
18
-
19
- end
20
- end
@@ -1,18 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class InterleaveController
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(name, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <InterleaveControl guiclass="InterleaveControlGui" testclass="InterleaveControl" testname="#{name}" enabled="true">
10
- <intProp name="InterleaveControl.style">1</intProp>
11
- </InterleaveControl>
12
- EOF
13
- update params
14
- end
15
- end
16
-
17
- end
18
- end
@@ -1,19 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class LoopController
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(loops, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
10
- <boolProp name="LoopController.continue_forever">true</boolProp>
11
- <stringProp name="LoopController.loops">#{loops}</stringProp>
12
- </LoopController>
13
- EOF
14
- update params
15
- end
16
- end
17
-
18
- end
19
- end
@@ -1,17 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class OnceOnly
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(name, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="#{name}" enabled="true">
10
- </OnceOnlyController>
11
- EOF
12
- update params
13
- end
14
- end
15
-
16
- end
17
- end
@@ -1,16 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class RandomOrderController
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(name, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <RandomOrderController guiclass="RandomOrderControllerGui" testclass="RandomOrderController" testname="#{name}" enabled="true"/>
10
- EOF
11
- update params
12
- end
13
- end
14
-
15
- end
16
- end
@@ -1,17 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class SimpleController
5
- attr_accessor :doc
6
- include Helper
7
-
8
- def initialize(name, params={})
9
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
10
- <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="#{name}" enabled="true"/>
11
- EOF
12
- update params
13
- end
14
- end
15
-
16
- end
17
- end
@@ -1,20 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class SwitchController
5
- attr_accessor :doc
6
- include Helper
7
-
8
- def initialize(name, switch_value, params={})
9
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
10
- <SwitchController guiclass="SwitchControllerGui" testclass="SwitchController" testname="#{name}" enabled="#{enabled(params)}">
11
- <stringProp name="SwitchController.value">#{switch_value}</stringProp>
12
- </SwitchController>
13
-
14
- EOF
15
- update params
16
- end
17
- end
18
-
19
- end
20
- end
@@ -1,26 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class Throughput
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(name, percent, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="#{percent.to_i}%_#{name}" enabled="true">
10
- <intProp name="ThroughputController.style">1</intProp>
11
- <boolProp name="ThroughputController.perThread">false</boolProp>
12
- <intProp name="ThroughputController.maxThroughput">1</intProp>
13
- <FloatProperty>
14
- <name>ThroughputController.percentThroughput</name>
15
- <value>#{percent.to_f}</value>
16
- <savedValue>0.0</savedValue>
17
- </FloatProperty>
18
- </ThroughputController>
19
- EOF
20
- update params
21
- end
22
- end
23
-
24
- end
25
- end
26
-
@@ -1,19 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class Transaction
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(name, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="#{name}" enabled="true">
10
- <boolProp name="TransactionController.parent">true</boolProp>
11
- <boolProp name="TransactionController.includeTimers">false</boolProp>
12
- </TransactionController>
13
- EOF
14
- update params
15
- end
16
- end
17
-
18
- end
19
- end
@@ -1,18 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class WhileController
5
- attr_accessor :doc
6
- include Helper
7
- def initialize(condition, params={})
8
- @doc = Nokogiri::XML(<<-EOF.strip_heredoc)
9
- <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true">
10
- <stringProp name="WhileController.condition">#{condition}</stringProp>
11
- </WhileController>
12
- EOF
13
- update params
14
- end
15
- end
16
-
17
- end
18
- end
@@ -1,21 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
- module Helper
4
- def update(params)
5
- params.each do |name, value|
6
- node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
7
- node.first.content = value unless node.empty?
8
- end
9
- end
10
-
11
- def enabled(params)
12
- #default to true unless explicitly set to false
13
- if params.has_key?(:enabled) && params[:enabled] == false
14
- 'false'
15
- else
16
- 'true'
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,26 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class DSL
5
- def http_authorization_manager(params={}, &block)
6
- node = Gridinit::Jmeter::HttpAuthorizationManager.new(params)
7
- attach_node(node, &block)
8
- end
9
- end
10
-
11
- class HttpAuthorizationManager
12
- attr_accessor :doc
13
- include Helper
14
-
15
- def initialize(name, params={})
16
- @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
17
- <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="#{name}" enabled="true">
18
- <collectionProp name="AuthManager.auth_list"/>
19
- </AuthManager>)
20
- EOS
21
- update params
22
- end
23
- end
24
-
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- module Gridinit
2
- module Jmeter
3
-
4
- class DSL
5
- def user_defined_variables(params={}, &block)
6
- node = Gridinit::Jmeter::UserDefinedVariables.new(params)
7
- attach_node(node, &block)
8
- end
9
- end
10
-
11
- class UserDefinedVariables
12
- attr_accessor :doc
13
- include Helper
14
-
15
- def initialize(name, params={})
16
- @doc = Nokogiri::XML(<<-EOS.strip_heredoc)
17
- <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="#{name}" enabled="true">
18
- <collectionProp name="Arguments.arguments"/>
19
- </Arguments>)
20
- EOS
21
- update params
22
- end
23
- end
24
-
25
- end
26
- end