ruby-jmeter 2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,13 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 2 do
6
+ transaction name: 'Assertions' do
7
+ visit name: 'Altentee', url: 'http://altentee.com/' do
8
+ assert contains: 'We test, tune and secure your site'
9
+ assert 'not-contains' => 'Something in frames', scope: 'children'
10
+ end
11
+ end
12
+ end
13
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,11 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ auth url: '/', username: 'tim', password: 'secret', domain: 'altentee.com'
6
+ threads count: 1 do
7
+ transaction name: 'Google Search' do
8
+ visit name: 'Home Page', url: 'http://google.com/'
9
+ end
10
+ end
11
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,11 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ cache clear_each_iteration: true
6
+ threads count: 1 do
7
+ transaction name: 'Google Search' do
8
+ visit name: 'Home Page', url: 'http://google.com/'
9
+ end
10
+ end
11
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,11 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ cookies clear_each_iteration: false
6
+ threads count: 1 do
7
+ transaction name: 'Google Search' do
8
+ visit name: 'Home Page', url: 'http://google.com/'
9
+ end
10
+ end
11
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,10 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 100 do
6
+ visit name: 'Home', url: 'http://altentee.com' do
7
+ extract regex: "content='(.+?)' name='csrf-token'", name: 'csrf-token'
8
+ end
9
+ end
10
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,10 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 1 do
6
+ dummy_sampler '__grid_data_api', {response_data: "ACIR0001, ACIR0002, ACIR0003, ACIR0004, ACIR0005, ACIR0006, ABS0003, MBS0001, MBS0004, MBS0005, ABS0004, ABS0005, ABS0010, ABS0011, ABS0012, ABS0013, ABS0014, ABS0016, ABS0017, ABS0018, ABS0021, ABS0022, MBS0006, MBS0009, MBS0010"}
7
+ end
8
+
9
+
10
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,23 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ cookies clear_each_iteration: false
6
+ threads count: 1 do
7
+ transaction name: 'Google Search' do
8
+ visit name: 'Home Page', url: 'http://google.com/'
9
+ end
10
+ end
11
+
12
+ #
13
+ # You need jmeter-plugins at Google code
14
+ # http://code.google.com/p/jmeter-plugins
15
+ #
16
+ latencies_over_time 'Response Latencies Over Time'
17
+ response_codes_per_second 'Response Codes per Second'
18
+ response_times_distribution 'Response Times Distribution'
19
+ response_times_over_time 'Response Times Over Time'
20
+ response_times_percentiles 'Response Times Percentiles'
21
+ transactions_per_second 'Transactions per Second'
22
+
23
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,8 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 1 do
6
+ visit name: 'Home Page', url: 'http://google.com/'
7
+ end
8
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,8 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 1 do
6
+ visit name: 'Home Page', url: 'http://google.com/'
7
+ end
8
+ end.grid('6CnGKgaTRU62LspdTFbr', {region: 'us-west-2', endpoint: '127.0.0.1:3000'})
@@ -0,0 +1,19 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ header name: 'Accept', value: '*'
6
+
7
+ with_user_agent :iphone
8
+
9
+ threads count: 1 do
10
+ visit name: 'Home Page', url: 'http://google.com/'
11
+ end
12
+
13
+ transaction name: 'Google Search via XHR' do
14
+ visit name: 'Home Page', url: 'http://google.com/' do
15
+ with_xhr
16
+ end
17
+ end
18
+
19
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,16 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 1 do
6
+ ldap_ext name: 'ldap_ext sample',
7
+ test: 'sbind',
8
+ user_dn: 'user_dn',
9
+ user_pw: 'user_password',
10
+ servername: 'your_ldap_server',
11
+ secure: true,
12
+ port: 636
13
+
14
+ end
15
+ view_results name: 'debug'
16
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,15 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+
6
+ threads count: 1 do
7
+
8
+ transaction name: 'Post with a Raw Body', parent: false do
9
+ post name: 'Home Page', url: 'http://google.com',
10
+ raw_body: '{"name":"Big Poncho","price":10,"vendor_attendance_id":24,"product_id":1}'
11
+ end
12
+
13
+ end
14
+
15
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,8 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 10 do
6
+ visit name: 'Google Search', url: 'http://google.com/?hl=en&tbo=d&sclient=psy-ab&q=flood.io&oq=flood.io'
7
+ end
8
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,15 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 100 do
6
+
7
+ think_time 5000,5000
8
+
9
+ transaction name: 'Google Search' do
10
+ visit name: 'Home Page', url: 'http://google.com/'
11
+ random_timer 3000
12
+ end
13
+
14
+ end
15
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,14 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 100 do
6
+
7
+ think_time 5000,5000
8
+
9
+ throughput_controller percent: 99 do
10
+ transaction name: "TC_01", parent: true, include_timers: true
11
+ end
12
+
13
+ end
14
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,21 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+ threads count: 100 do # threads = RPS * <max response time ms> / 1000
6
+
7
+ throughput_shaper 'increasing load test', [
8
+ { :start_rps => 100, :end_rps => 100, :duration => 60 },
9
+ { :start_rps => 200, :end_rps => 200, :duration => 60 },
10
+ { :start_rps => 300, :end_rps => 300, :duration => 60 },
11
+ { :start_rps => 400, :end_rps => 400, :duration => 60 },
12
+ { :start_rps => 500, :end_rps => 500, :duration => 60 },
13
+ { :start_rps => 600, :end_rps => 600, :duration => 60 }
14
+ ]
15
+
16
+ transaction name: 'Google Search' do
17
+ visit name: 'Home Page', url: 'http://google.com/'
18
+ end
19
+
20
+ end
21
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,64 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ test do
5
+
6
+ defaults :domain => 'www.etsy.com'
7
+
8
+ cache :clear_each_iteration => true
9
+
10
+ cookies
11
+
12
+ threads :count => 1, :loops => 10 do
13
+
14
+ random_timer 1000, 3000
15
+
16
+ transaction '01_etsy_home' do
17
+ visit :name => 'home', :url => 'http://www.etsy.com/' do
18
+ assert 'contains' => 'Etsy - Your place to buy and sell all things handmade, vintage, and supplies'
19
+ end
20
+ end
21
+
22
+ Once do
23
+ transaction '02_etsy_signin' do
24
+ submit :name => 'signin', :url => 'https://www.etsy.com/signin',
25
+ :fill_in => {
26
+ :username => 'tim.koops@gmail.com',
27
+ :password => ARGV[0],
28
+ :persistent => 1,
29
+ :from_page => 'http://www.etsy.com/',
30
+ :from_action => '',
31
+ :from_name => '',
32
+ :overlay => 1
33
+ } do
34
+ assert 'contains' => 'Tim'
35
+ extract :regex => 'a href="(/browse.+?)"', :name => 'random_category'
36
+ end
37
+ end
38
+ end
39
+
40
+ exists 'random_category' do
41
+
42
+ transaction '03_etsy_browse_random_category' do
43
+ visit :name => 'browse', :url => '${random_category}' do
44
+ extract :regex => 'a href="(http.+?subcat.+?)"', :name => 'random_sub_category'
45
+ end
46
+ end
47
+
48
+ transaction '04_etsy_browse_random_sub_category' do
49
+ visit :name => 'browse', :url => '${random_sub_category}' do
50
+ extract :regex => 'a href="(/listing.+?)"', :name => 'random_listing'
51
+ end
52
+ end
53
+
54
+ transaction '05_etsy_view_random_listing' do
55
+ visit :name => 'view', :url => '${random_listing}'
56
+ end
57
+
58
+ end
59
+
60
+ end
61
+
62
+ # end.grid ARGV[1]
63
+ # end.jmx
64
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
@@ -0,0 +1,18 @@
1
+ require 'nokogiri'
2
+ require 'rest_client'
3
+ require 'json'
4
+ require 'cgi'
5
+ require 'open3'
6
+
7
+ require 'ruby-jmeter/version'
8
+ require 'ruby-jmeter/helpers/helper'
9
+ require 'ruby-jmeter/helpers/parser'
10
+ require 'ruby-jmeter/helpers/fallback_content_proxy'
11
+ require 'ruby-jmeter/helpers/logger-colors'
12
+ require 'ruby-jmeter/helpers/strip-heredoc'
13
+ require 'ruby-jmeter/helpers/user-agents'
14
+
15
+ lib = File.dirname(File.absolute_path(__FILE__))
16
+ Dir.glob(lib + '/ruby-jmeter/dsl/*', &method(:require))
17
+ Dir.glob(lib + '/ruby-jmeter/plugins/*', &method(:require))
18
+ require 'ruby-jmeter/dsl'
@@ -0,0 +1,237 @@
1
+ # RubyJmeter::DSL methods
2
+ - Test Plan
3
+ `test_plan`
4
+ - Counter
5
+ `counter`
6
+ - CSV Data Set Config
7
+ `csv_data_set_config`
8
+ - FTP Request Defaults
9
+ `ftp_request_defaults`
10
+ - HTTP Authorization Manager
11
+ `http_authorization_manager`
12
+ - HTTP Cache Manager
13
+ `http_cache_manager`
14
+ - HTTP Cookie Manager
15
+ `http_cookie_manager`
16
+ - HTTP Header Manager
17
+ `http_header_manager`
18
+ - HTTP Request Defaults
19
+ `http_request_defaults`
20
+ - Java Request Defaults
21
+ `java_request_defaults`
22
+ - JDBC Connection Configuration
23
+ `jdbc_connection_configuration`
24
+ - Keystore Configuration
25
+ `keystore_configuration`
26
+ - LDAP Extended Request Defaults
27
+ `ldap_extended_request_defaults`
28
+ - LDAP Request Defaults
29
+ `ldap_request_defaults`
30
+ - Login Config Element
31
+ `login_config_element`
32
+ - Random Variable
33
+ `random_variable`
34
+ - Simple Config Element
35
+ `simple_config_element`
36
+ - TCP Sampler Config
37
+ `tcp_sampler_config`
38
+ - User Defined Variables
39
+ `user_defined_variables`
40
+ - Thread Group
41
+ `thread_group`
42
+ - ForEach Controller
43
+ `foreach_controller`
44
+ - If Controller
45
+ `if_controller`
46
+ - Include Controller
47
+ `include_controller`
48
+ - Loop Controller
49
+ `loop_controller`
50
+ - Module Controller
51
+ `module_controller`
52
+ - Once Only Controller
53
+ `once_only_controller`
54
+ - Random Controller
55
+ `random_controller`
56
+ - Random Order Controller
57
+ `random_order_controller`
58
+ - Recording Controller
59
+ `recording_controller`
60
+ - Runtime Controller
61
+ `runtime_controller`
62
+ - Simple Controller
63
+ `simple_controller`
64
+ - Switch Controller
65
+ `switch_controller`
66
+ - Throughput Controller
67
+ `throughput_controller`
68
+ - Transaction Controller
69
+ `transaction_controller`
70
+ - While Controller
71
+ `while_controller`
72
+ - BeanShell Timer
73
+ `beanshell_timer`
74
+ - BSF Timer
75
+ `bsf_timer`
76
+ - Constant Throughput Timer
77
+ `constant_throughput_timer`
78
+ - Constant Timer
79
+ `constant_timer`
80
+ - Gaussian Random Timer
81
+ `gaussian_random_timer`
82
+ - JSR223 Timer
83
+ `jsr223_timer`
84
+ - Poisson Random Timer
85
+ `poisson_random_timer`
86
+ - Synchronizing Timer
87
+ `synchronizing_timer`
88
+ - Uniform Random Timer
89
+ `uniform_random_timer`
90
+ - BeanShell PreProcessor
91
+ `beanshell_preprocessor`
92
+ - BSF PreProcessor
93
+ `bsf_preprocessor`
94
+ - HTML Link Parser
95
+ `html_link_parser`
96
+ - HTML Parameter Mask
97
+ `html_parameter_mask`
98
+ - HTTP URL Re-writing Modifier
99
+ `http_url_rewriting_modifier`
100
+ - JDBC PreProcessor
101
+ `jdbc_preprocessor`
102
+ - JSR223 PreProcessor
103
+ `jsr223_preprocessor`
104
+ - RegEx User Parameters
105
+ `regex_user_parameters`
106
+ - User Parameters
107
+ `user_parameters`
108
+ - Access Log Sampler
109
+ `access_log_sampler`
110
+ - AJP/1.3 Sampler
111
+ `ajp13_sampler`
112
+ - BeanShell Sampler
113
+ `beanshell_sampler`
114
+ - BSF Sampler
115
+ `bsf_sampler`
116
+ - Debug Sampler
117
+ `debug_sampler`
118
+ - FTP Request
119
+ `ftp_request`
120
+ - HTTP Request
121
+ `http_request`
122
+ - Java Request
123
+ `java_request`
124
+ - JDBC Request
125
+ `jdbc_request`
126
+ - JMS Point-to-Point
127
+ `jms_pointtopoint`
128
+ - JMS Publisher
129
+ `jms_publisher`
130
+ - JMS Subscriber
131
+ `jms_subscriber`
132
+ - JSR223 Sampler
133
+ `jsr223_sampler`
134
+ - JUnit Request
135
+ `junit_request`
136
+ - LDAP Extended Request
137
+ `ldap_extended_request`
138
+ - LDAP Request
139
+ `ldap_request`
140
+ - Mail Reader Sampler
141
+ `mail_reader_sampler`
142
+ - OS Process Sampler
143
+ `os_process_sampler`
144
+ - SMTP Sampler
145
+ `smtp_sampler`
146
+ - SOAP/XML-RPC Request
147
+ `soapxmlrpc_request`
148
+ - TCP Sampler
149
+ `tcp_sampler`
150
+ - Test Action
151
+ `test_action`
152
+ - BeanShell PostProcessor
153
+ `beanshell_postprocessor`
154
+ - BSF PostProcessor
155
+ `bsf_postprocessor`
156
+ - CSS/JQuery Extractor
157
+ `cssjquery_extractor`
158
+ - Debug PostProcessor
159
+ `debug_postprocessor`
160
+ - JDBC PostProcessor
161
+ `jdbc_postprocessor`
162
+ - JSR223 PostProcessor
163
+ `jsr223_postprocessor`
164
+ - Regular Expression Extractor
165
+ `regular_expression_extractor`
166
+ - Result Status Action Handler
167
+ `result_status_action_handler`
168
+ - XPath Extractor
169
+ `xpath_extractor`
170
+ - BeanShell Assertion
171
+ `beanshell_assertion`
172
+ - BSF Assertion
173
+ `bsf_assertion`
174
+ - Compare Assertion
175
+ `compare_assertion`
176
+ - Duration Assertion
177
+ `duration_assertion`
178
+ - HTML Assertion
179
+ `html_assertion`
180
+ - JSR223 Assertion
181
+ `jsr223_assertion`
182
+ - JSR223 Assertion
183
+ `jsr223_assertion`
184
+ - MD5Hex Assertion
185
+ `md5hex_assertion`
186
+ - MD5Hex Assertion
187
+ `md5hex_assertion`
188
+ - Response Assertion
189
+ `response_assertion`
190
+ - SMIME Assertion
191
+ `smime_assertion`
192
+ - XML Assertion
193
+ `xml_assertion`
194
+ - XML Schema Assertion
195
+ `xml_schema_assertion`
196
+ - XPath Assertion
197
+ `xpath_assertion`
198
+ - Aggregate Graph
199
+ `aggregate_graph`
200
+ - Aggregate Report
201
+ `aggregate_report`
202
+ - Assertion Results
203
+ `assertion_results`
204
+ - BeanShell Listener
205
+ `beanshell_listener`
206
+ - BSF Listener
207
+ `bsf_listener`
208
+ - Comparison Assertion Visualizer
209
+ `comparison_assertion_visualizer`
210
+ - Distribution Graph (alpha)
211
+ `distribution_graphalpha`
212
+ - Generate Summary Results
213
+ `generate_summary_results`
214
+ - Graph Results
215
+ `graph_results`
216
+ - JSR223 Listener
217
+ `jsr223_listener`
218
+ - Mailer Visualizer
219
+ `mailer_visualizer`
220
+ - Monitor Results
221
+ `monitor_results`
222
+ - Response Time Graph
223
+ `response_time_graph`
224
+ - Response Time Graph
225
+ `response_time_graph`
226
+ - Save Responses to a file
227
+ `save_responses_to_a_file`
228
+ - Simple Data Writer
229
+ `simple_data_writer`
230
+ - Spline Visualizer
231
+ `spline_visualizer`
232
+ - Summary Report
233
+ `summary_report`
234
+ - View Results in Table
235
+ `view_results_in_table`
236
+ - View Results Tree
237
+ `view_results_tree`