jmeter_perf 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (275) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +19 -0
  4. data/.standard.yml +4 -0
  5. data/CHANGELOG.md +18 -0
  6. data/DSL.md +235 -0
  7. data/README.md +24 -0
  8. data/Rakefile +12 -0
  9. data/example/Gemfile +39 -0
  10. data/example/Gemfile.lock +232 -0
  11. data/example/README.md +3 -0
  12. data/example/Rakefile +6 -0
  13. data/example/app/controllers/application_controller.rb +2 -0
  14. data/example/app/controllers/test_controller.rb +15 -0
  15. data/example/bin/bundle +109 -0
  16. data/example/bin/docker-entrypoint +8 -0
  17. data/example/bin/rails +4 -0
  18. data/example/bin/rake +4 -0
  19. data/example/bin/setup +33 -0
  20. data/example/config/application.rb +44 -0
  21. data/example/config/boot.rb +3 -0
  22. data/example/config/credentials.yml.enc +1 -0
  23. data/example/config/database.yml +25 -0
  24. data/example/config/environment.rb +5 -0
  25. data/example/config/environments/development.rb +64 -0
  26. data/example/config/environments/production.rb +82 -0
  27. data/example/config/environments/test.rb +61 -0
  28. data/example/config/initializers/cors.rb +16 -0
  29. data/example/config/initializers/filter_parameter_logging.rb +8 -0
  30. data/example/config/initializers/inflections.rb +16 -0
  31. data/example/config/locales/en.yml +31 -0
  32. data/example/config/puma.rb +35 -0
  33. data/example/config/routes.rb +5 -0
  34. data/example/config.ru +7 -0
  35. data/example/fast.log +49 -0
  36. data/example/jmeter.log +28 -0
  37. data/example/lib/tasks/test.rake +40 -0
  38. data/example/log/.keep +0 -0
  39. data/example/public/robots.txt +1 -0
  40. data/example/random.log +49 -0
  41. data/example/slow.log +49 -0
  42. data/example/vendor/.keep +0 -0
  43. data/lib/Rakefile +4 -0
  44. data/lib/jmeter_perf/dsl/access_log_sampler.rb +38 -0
  45. data/lib/jmeter_perf/dsl/aggregate_graph.rb +61 -0
  46. data/lib/jmeter_perf/dsl/aggregate_report.rb +61 -0
  47. data/lib/jmeter_perf/dsl/ajp13_sampler.rb +47 -0
  48. data/lib/jmeter_perf/dsl/assertion_results.rb +61 -0
  49. data/lib/jmeter_perf/dsl/bean_shell_assertion.rb +34 -0
  50. data/lib/jmeter_perf/dsl/bean_shell_listener.rb +34 -0
  51. data/lib/jmeter_perf/dsl/bean_shell_postprocessor.rb +34 -0
  52. data/lib/jmeter_perf/dsl/bean_shell_preprocessor.rb +34 -0
  53. data/lib/jmeter_perf/dsl/bean_shell_sampler.rb +34 -0
  54. data/lib/jmeter_perf/dsl/bean_shell_timer.rb +34 -0
  55. data/lib/jmeter_perf/dsl/bsf_assertion.rb +34 -0
  56. data/lib/jmeter_perf/dsl/bsf_listener.rb +34 -0
  57. data/lib/jmeter_perf/dsl/bsf_postprocessor.rb +34 -0
  58. data/lib/jmeter_perf/dsl/bsf_preprocessor.rb +34 -0
  59. data/lib/jmeter_perf/dsl/bsf_sampler.rb +34 -0
  60. data/lib/jmeter_perf/dsl/bsf_timer.rb +34 -0
  61. data/lib/jmeter_perf/dsl/compare_assertion.rb +33 -0
  62. data/lib/jmeter_perf/dsl/comparison_assertion_visualizer.rb +61 -0
  63. data/lib/jmeter_perf/dsl/constant_throughput_timer.rb +32 -0
  64. data/lib/jmeter_perf/dsl/constant_timer.rb +31 -0
  65. data/lib/jmeter_perf/dsl/counter.rb +37 -0
  66. data/lib/jmeter_perf/dsl/css_jquery_extractor.rb +37 -0
  67. data/lib/jmeter_perf/dsl/csv_data_set_config.rb +39 -0
  68. data/lib/jmeter_perf/dsl/debug_postprocessor.rb +34 -0
  69. data/lib/jmeter_perf/dsl/debug_sampler.rb +33 -0
  70. data/lib/jmeter_perf/dsl/distribution_graphalpha.rb +61 -0
  71. data/lib/jmeter_perf/dsl/duration_assertion.rb +31 -0
  72. data/lib/jmeter_perf/dsl/for_each_controller.rb +33 -0
  73. data/lib/jmeter_perf/dsl/ftp_request.rb +40 -0
  74. data/lib/jmeter_perf/dsl/ftp_request_defaults.rb +38 -0
  75. data/lib/jmeter_perf/dsl/gaussian_random_timer.rb +32 -0
  76. data/lib/jmeter_perf/dsl/generate_summary_results.rb +29 -0
  77. data/lib/jmeter_perf/dsl/graph_results.rb +61 -0
  78. data/lib/jmeter_perf/dsl/html_assertion.rb +36 -0
  79. data/lib/jmeter_perf/dsl/html_link_parser.rb +29 -0
  80. data/lib/jmeter_perf/dsl/html_parameter_mask.rb +38 -0
  81. data/lib/jmeter_perf/dsl/http_authorization_manager.rb +39 -0
  82. data/lib/jmeter_perf/dsl/http_cache_manager.rb +32 -0
  83. data/lib/jmeter_perf/dsl/http_cookie_manager.rb +34 -0
  84. data/lib/jmeter_perf/dsl/http_header_manager.rb +36 -0
  85. data/lib/jmeter_perf/dsl/http_request.rb +47 -0
  86. data/lib/jmeter_perf/dsl/http_request_defaults.rb +53 -0
  87. data/lib/jmeter_perf/dsl/http_url_rewriting_modifier.rb +36 -0
  88. data/lib/jmeter_perf/dsl/if_controller.rb +33 -0
  89. data/lib/jmeter_perf/dsl/include_controller.rb +31 -0
  90. data/lib/jmeter_perf/dsl/j_unit_request.rb +43 -0
  91. data/lib/jmeter_perf/dsl/java_request.rb +75 -0
  92. data/lib/jmeter_perf/dsl/java_request_defaults.rb +75 -0
  93. data/lib/jmeter_perf/dsl/jdbc_connection_configuration.rb +43 -0
  94. data/lib/jmeter_perf/dsl/jdbc_postprocessor.rb +39 -0
  95. data/lib/jmeter_perf/dsl/jdbc_preprocessor.rb +39 -0
  96. data/lib/jmeter_perf/dsl/jdbc_request.rb +39 -0
  97. data/lib/jmeter_perf/dsl/jms_pointto_point.rb +47 -0
  98. data/lib/jmeter_perf/dsl/jms_publisher.rb +49 -0
  99. data/lib/jmeter_perf/dsl/jms_subscriber.rb +41 -0
  100. data/lib/jmeter_perf/dsl/json_path_postprocessor.rb +33 -0
  101. data/lib/jmeter_perf/dsl/jsr223_assertion.rb +35 -0
  102. data/lib/jmeter_perf/dsl/jsr223_listener.rb +35 -0
  103. data/lib/jmeter_perf/dsl/jsr223_postprocessor.rb +35 -0
  104. data/lib/jmeter_perf/dsl/jsr223_preprocessor.rb +35 -0
  105. data/lib/jmeter_perf/dsl/jsr223_sampler.rb +35 -0
  106. data/lib/jmeter_perf/dsl/jsr223_timer.rb +35 -0
  107. data/lib/jmeter_perf/dsl/keystore_configuration.rb +34 -0
  108. data/lib/jmeter_perf/dsl/ldap_extended_request.rb +48 -0
  109. data/lib/jmeter_perf/dsl/ldap_extended_request_defaults.rb +48 -0
  110. data/lib/jmeter_perf/dsl/ldap_request.rb +41 -0
  111. data/lib/jmeter_perf/dsl/ldap_request_defaults.rb +45 -0
  112. data/lib/jmeter_perf/dsl/login_config_element.rb +32 -0
  113. data/lib/jmeter_perf/dsl/loop_controller.rb +32 -0
  114. data/lib/jmeter_perf/dsl/mail_reader_sampler.rb +43 -0
  115. data/lib/jmeter_perf/dsl/mailer_visualizer.rb +70 -0
  116. data/lib/jmeter_perf/dsl/md5_hex_assertion.rb +31 -0
  117. data/lib/jmeter_perf/dsl/module_controller.rb +31 -0
  118. data/lib/jmeter_perf/dsl/monitor_results.rb +61 -0
  119. data/lib/jmeter_perf/dsl/once_only_controller.rb +29 -0
  120. data/lib/jmeter_perf/dsl/os_process_sampler.rb +40 -0
  121. data/lib/jmeter_perf/dsl/poisson_random_timer.rb +32 -0
  122. data/lib/jmeter_perf/dsl/random_controller.rb +31 -0
  123. data/lib/jmeter_perf/dsl/random_order_controller.rb +29 -0
  124. data/lib/jmeter_perf/dsl/random_variable.rb +36 -0
  125. data/lib/jmeter_perf/dsl/recording_controller.rb +29 -0
  126. data/lib/jmeter_perf/dsl/reg_ex_user_parameters.rb +33 -0
  127. data/lib/jmeter_perf/dsl/regular_expression_extractor.rb +38 -0
  128. data/lib/jmeter_perf/dsl/response_assertion.rb +37 -0
  129. data/lib/jmeter_perf/dsl/response_time_graph.rb +61 -0
  130. data/lib/jmeter_perf/dsl/result_status_action_handler.rb +31 -0
  131. data/lib/jmeter_perf/dsl/runtime_controller.rb +31 -0
  132. data/lib/jmeter_perf/dsl/save_responses_to_a_file.rb +35 -0
  133. data/lib/jmeter_perf/dsl/simple_config_element.rb +29 -0
  134. data/lib/jmeter_perf/dsl/simple_controller.rb +29 -0
  135. data/lib/jmeter_perf/dsl/simple_data_writer.rb +61 -0
  136. data/lib/jmeter_perf/dsl/smime_assertion.rb +41 -0
  137. data/lib/jmeter_perf/dsl/smtp_sampler.rb +57 -0
  138. data/lib/jmeter_perf/dsl/soap_xml_rpc_request.rb +39 -0
  139. data/lib/jmeter_perf/dsl/spline_visualizer.rb +61 -0
  140. data/lib/jmeter_perf/dsl/summary_report.rb +61 -0
  141. data/lib/jmeter_perf/dsl/switch_controller.rb +31 -0
  142. data/lib/jmeter_perf/dsl/synchronizing_timer.rb +32 -0
  143. data/lib/jmeter_perf/dsl/tcp_sampler.rb +39 -0
  144. data/lib/jmeter_perf/dsl/tcp_sampler_config.rb +37 -0
  145. data/lib/jmeter_perf/dsl/test_action.rb +33 -0
  146. data/lib/jmeter_perf/dsl/test_fragment.rb +29 -0
  147. data/lib/jmeter_perf/dsl/test_plan.rb +37 -0
  148. data/lib/jmeter_perf/dsl/thread_group.rb +43 -0
  149. data/lib/jmeter_perf/dsl/throughput_controller.rb +38 -0
  150. data/lib/jmeter_perf/dsl/transaction_controller.rb +32 -0
  151. data/lib/jmeter_perf/dsl/uniform_random_timer.rb +32 -0
  152. data/lib/jmeter_perf/dsl/user_defined_variables.rb +39 -0
  153. data/lib/jmeter_perf/dsl/user_parameters.rb +36 -0
  154. data/lib/jmeter_perf/dsl/view_results_in_table.rb +61 -0
  155. data/lib/jmeter_perf/dsl/view_results_tree.rb +61 -0
  156. data/lib/jmeter_perf/dsl/while_controller.rb +31 -0
  157. data/lib/jmeter_perf/dsl/x_path_assertion.rb +37 -0
  158. data/lib/jmeter_perf/dsl/x_path_extractor.rb +37 -0
  159. data/lib/jmeter_perf/dsl/xml_assertion.rb +29 -0
  160. data/lib/jmeter_perf/dsl/xml_schema_assertion.rb +31 -0
  161. data/lib/jmeter_perf/extend/assertions/response_assertion.rb +38 -0
  162. data/lib/jmeter_perf/extend/config_elements/header_manager.rb +13 -0
  163. data/lib/jmeter_perf/extend/config_elements/http_cache_manager.rb +12 -0
  164. data/lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb +39 -0
  165. data/lib/jmeter_perf/extend/config_elements/http_request_defaults.rb +55 -0
  166. data/lib/jmeter_perf/extend/config_elements/user_defined_variables.rb +13 -0
  167. data/lib/jmeter_perf/extend/config_elements/user_parameters.rb +31 -0
  168. data/lib/jmeter_perf/extend/controllers/foreach_controller.rb +31 -0
  169. data/lib/jmeter_perf/extend/controllers/loop_controller.rb +11 -0
  170. data/lib/jmeter_perf/extend/controllers/module_controller.rb +26 -0
  171. data/lib/jmeter_perf/extend/controllers/throughput_controller.rb +15 -0
  172. data/lib/jmeter_perf/extend/controllers/transaction_controller.rb +14 -0
  173. data/lib/jmeter_perf/extend/misc/exists.rb +13 -0
  174. data/lib/jmeter_perf/extend/misc/rsync.rb +24 -0
  175. data/lib/jmeter_perf/extend/misc/uuid.rb +12 -0
  176. data/lib/jmeter_perf/extend/misc/with_helpers.rb +27 -0
  177. data/lib/jmeter_perf/extend/plugins/jmeter_plugins.rb +124 -0
  178. data/lib/jmeter_perf/extend/processors/extract.rb +27 -0
  179. data/lib/jmeter_perf/extend/processors/regular_expression_extractor.rb +27 -0
  180. data/lib/jmeter_perf/extend/samplers/http_request.rb +66 -0
  181. data/lib/jmeter_perf/extend/samplers/jms_pointtopoint.rb +23 -0
  182. data/lib/jmeter_perf/extend/samplers/soapxmlrpc_request.rb +10 -0
  183. data/lib/jmeter_perf/extend/threads/thread_group.rb +19 -0
  184. data/lib/jmeter_perf/extend/timers/constant_throughput_timer.rb +11 -0
  185. data/lib/jmeter_perf/extend/timers/random_timer.rb +14 -0
  186. data/lib/jmeter_perf/helpers/dsl_generator.rb +157 -0
  187. data/lib/jmeter_perf/helpers/fallback_content_proxy.rb +96 -0
  188. data/lib/jmeter_perf/helpers/helper.rb +63 -0
  189. data/lib/jmeter_perf/helpers/parser.rb +143 -0
  190. data/lib/jmeter_perf/helpers/running_statistics.rb +62 -0
  191. data/lib/jmeter_perf/helpers/string.rb +60 -0
  192. data/lib/jmeter_perf/helpers/user-agents.rb +42 -0
  193. data/lib/jmeter_perf/plugins/active_threads_over_time.rb +59 -0
  194. data/lib/jmeter_perf/plugins/composite_graph.rb +77 -0
  195. data/lib/jmeter_perf/plugins/console_status_logger.rb +19 -0
  196. data/lib/jmeter_perf/plugins/dummy_sampler.rb +30 -0
  197. data/lib/jmeter_perf/plugins/jmx_collector.rb +74 -0
  198. data/lib/jmeter_perf/plugins/json_path_assertion.rb +23 -0
  199. data/lib/jmeter_perf/plugins/json_path_extractor.rb +22 -0
  200. data/lib/jmeter_perf/plugins/latencies_over_time.rb +53 -0
  201. data/lib/jmeter_perf/plugins/loadosophia_uploader.rb +66 -0
  202. data/lib/jmeter_perf/plugins/perfmon_collector.rb +87 -0
  203. data/lib/jmeter_perf/plugins/redis_data_set.rb +43 -0
  204. data/lib/jmeter_perf/plugins/response_codes_per_second.rb +53 -0
  205. data/lib/jmeter_perf/plugins/response_times_distribution.rb +53 -0
  206. data/lib/jmeter_perf/plugins/response_times_over_time.rb +53 -0
  207. data/lib/jmeter_perf/plugins/response_times_percentiles.rb +54 -0
  208. data/lib/jmeter_perf/plugins/stepping_thread_group.rb +34 -0
  209. data/lib/jmeter_perf/plugins/transactions_per_second.rb +53 -0
  210. data/lib/jmeter_perf/plugins/ultimate_thread_group.rb +28 -0
  211. data/lib/jmeter_perf/plugins/variable_throughput_timer.rb +35 -0
  212. data/lib/jmeter_perf/report/comparator.rb +258 -0
  213. data/lib/jmeter_perf/report/summary.rb +268 -0
  214. data/lib/jmeter_perf/tasks/dsl.rake +19 -0
  215. data/lib/jmeter_perf/version.rb +5 -0
  216. data/lib/jmeter_perf/views/report_template.html.erb +114 -0
  217. data/lib/jmeter_perf.rb +183 -0
  218. data/lib/specifications/idl.xml +1494 -0
  219. data/sig/jmeter_perf.rbs +195 -0
  220. data/sorbet/config +5 -0
  221. data/sorbet/rbi/annotations/.gitattributes +1 -0
  222. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  223. data/sorbet/rbi/gems/.gitattributes +1 -0
  224. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  225. data/sorbet/rbi/gems/bump@0.10.0.rbi +169 -0
  226. data/sorbet/rbi/gems/byebug@11.1.3.rbi +3607 -0
  227. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3427 -0
  228. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
  229. data/sorbet/rbi/gems/docile@1.4.1.rbi +377 -0
  230. data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
  231. data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
  232. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  233. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
  234. data/sorbet/rbi/gems/method_source@1.1.0.rbi +304 -0
  235. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  236. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  237. data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
  238. data/sorbet/rbi/gems/parser@3.3.5.0.rbi +5519 -0
  239. data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
  240. data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +1151 -0
  241. data/sorbet/rbi/gems/pry@0.14.2.rbi +10076 -0
  242. data/sorbet/rbi/gems/racc@1.8.1.rbi +162 -0
  243. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  244. data/sorbet/rbi/gems/rake@13.2.1.rbi +3074 -0
  245. data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
  246. data/sorbet/rbi/gems/rbtree3@0.7.1.rbi +9 -0
  247. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
  248. data/sorbet/rbi/gems/rexml@3.3.8.rbi +4858 -0
  249. data/sorbet/rbi/gems/rspec-core@3.13.1.rbi +11132 -0
  250. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
  251. data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
  252. data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
  253. data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
  254. data/sorbet/rbi/gems/rubocop-ast@1.32.3.rbi +7054 -0
  255. data/sorbet/rbi/gems/rubocop-performance@1.21.1.rbi +9 -0
  256. data/sorbet/rbi/gems/rubocop@1.65.1.rbi +58182 -0
  257. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  258. data/sorbet/rbi/gems/simplecov-html@0.13.1.rbi +225 -0
  259. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  260. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  261. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  262. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +9 -0
  263. data/sorbet/rbi/gems/standard-performance@1.4.0.rbi +9 -0
  264. data/sorbet/rbi/gems/standard@1.40.0.rbi +926 -0
  265. data/sorbet/rbi/gems/tapioca@0.16.3.rbi +3596 -0
  266. data/sorbet/rbi/gems/tdigest@0.2.1.rbi +170 -0
  267. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  268. data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +66 -0
  269. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  270. data/sorbet/rbi/gems/yard@0.9.37.rbi +18379 -0
  271. data/sorbet/rbi/todo.rbi +31 -0
  272. data/sorbet/tapioca/config.yml +13 -0
  273. data/sorbet/tapioca/require.rb +15 -0
  274. data/tasks/dsl.rake +22 -0
  275. metadata +355 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b40b49f0107640d596b7d74d4237a4c98a9455367574040d210a45c1d45c1354
4
+ data.tar.gz: 53d7d951ba04981ed613bb3a81f0b0cadcb2706f576a9580c88c76c465decb89
5
+ SHA512:
6
+ metadata.gz: 7f1744ab7b9d13c4061e2c55d03f702ece823eef438592dc88b2cbfb584cdba555c3c260d800df66d60bab747a9cde8b47c5894e81afeef31f0fecaf51a6a584
7
+ data.tar.gz: 158c4421ee958d284b0153aa530898f67ec6f4794b1792cc63ebc96e445b7bd3409d69fd087be5756c6fab5e57336fbbfb5fb5534c990f10b9e76871b4f6ffec
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,19 @@
1
+ inherit_mode:
2
+ merge:
3
+ - Exclude
4
+
5
+ require:
6
+ - standard
7
+ - standard-custom
8
+ - standard-performance
9
+ - rubocop-performance
10
+
11
+ inherit_gem:
12
+ standard: config/base.yml
13
+ standard-performance: config/base.yml
14
+ standard-custom: config/base.yml
15
+
16
+ AllCops:
17
+ SuggestExtensions: false
18
+ TargetRubyVersion: 3.2.x
19
+ NewCops: enable
data/.standard.yml ADDED
@@ -0,0 +1,4 @@
1
+ ruby_version: 3.3
2
+ format: progress
3
+ ignore:
4
+ - 'lib/jmeter_perf/dsl/*' # This is automatically generated code
data/CHANGELOG.md ADDED
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5
+ and this project adheres to [Ruby Semantic Versioning](https://guides.rubygems.org/patterns/#semantic-versioning).
6
+
7
+ ## [1.0.3] - 2024-10-31
8
+ - Namespace DSLGenerator
9
+ ## [1.0.2] - 2024-10-31
10
+ - Add documentation
11
+ ## [1.0.1] - 2024-10-31
12
+ - Patched a CSV::Malformed error that occurred with seemingly malformed lines that were just incomplete
13
+ - Fixed the RPM formula
14
+ - Comparator#pass? now takes in key arguments for easier use
15
+ - Added specs
16
+
17
+ ## [1.0.0] - 2024-10-28
18
+ Initial release of the JmeterPerf gem
data/DSL.md ADDED
@@ -0,0 +1,235 @@
1
+ # JmeterPerf::DSL methods
2
+ - AJP13Sampler
3
+ `ajp13_sampler`
4
+ - AccessLogSampler
5
+ `access_log_sampler`
6
+ - AggregateGraph
7
+ `aggregate_graph`
8
+ - AggregateReport
9
+ `aggregate_report`
10
+ - AssertionResults
11
+ `assertion_results`
12
+ - BSFAssertion
13
+ `bsf_assertion`
14
+ - BSFListener
15
+ `bsf_listener`
16
+ - BSFPostprocessor
17
+ `bsf_postprocessor`
18
+ - BSFPreprocessor
19
+ `bsf_preprocessor`
20
+ - BSFSampler
21
+ `bsf_sampler`
22
+ - BSFTimer
23
+ `bsf_timer`
24
+ - BeanShellAssertion
25
+ `bean_shell_assertion`
26
+ - BeanShellListener
27
+ `bean_shell_listener`
28
+ - BeanShellPostprocessor
29
+ `bean_shell_postprocessor`
30
+ - BeanShellPreprocessor
31
+ `bean_shell_preprocessor`
32
+ - BeanShellSampler
33
+ `bean_shell_sampler`
34
+ - BeanShellTimer
35
+ `bean_shell_timer`
36
+ - CSSJqueryExtractor
37
+ `css_jquery_extractor`
38
+ - CSVDataSetConfig
39
+ `csv_data_set_config`
40
+ - CompareAssertion
41
+ `compare_assertion`
42
+ - ComparisonAssertionVisualizer
43
+ `comparison_assertion_visualizer`
44
+ - ConstantThroughputTimer
45
+ `constant_throughput_timer`
46
+ - ConstantTimer
47
+ `constant_timer`
48
+ - Counter
49
+ `counter`
50
+ - DebugPostprocessor
51
+ `debug_postprocessor`
52
+ - DebugSampler
53
+ `debug_sampler`
54
+ - DistributionGraphalpha
55
+ `distribution_graphalpha`
56
+ - DurationAssertion
57
+ `duration_assertion`
58
+ - FTPRequest
59
+ `ftp_request`
60
+ - FTPRequestDefaults
61
+ `ftp_request_defaults`
62
+ - ForEachController
63
+ `for_each_controller`
64
+ - GaussianRandomTimer
65
+ `gaussian_random_timer`
66
+ - GenerateSummaryResults
67
+ `generate_summary_results`
68
+ - GraphResults
69
+ `graph_results`
70
+ - HTMLAssertion
71
+ `html_assertion`
72
+ - HTMLLinkParser
73
+ `html_link_parser`
74
+ - HTMLParameterMask
75
+ `html_parameter_mask`
76
+ - HTTPAuthorizationManager
77
+ `http_authorization_manager`
78
+ - HTTPCacheManager
79
+ `http_cache_manager`
80
+ - HTTPCookieManager
81
+ `http_cookie_manager`
82
+ - HTTPHeaderManager
83
+ `http_header_manager`
84
+ - HTTPRequest
85
+ `http_request`
86
+ - HTTPRequestDefaults
87
+ `http_request_defaults`
88
+ - HTTPUrlRewritingModifier
89
+ `http_url_rewriting_modifier`
90
+ - IfController
91
+ `if_controller`
92
+ - IncludeController
93
+ `include_controller`
94
+ - JDBCConnectionConfiguration
95
+ `jdbc_connection_configuration`
96
+ - JDBCPostprocessor
97
+ `jdbc_postprocessor`
98
+ - JDBCPreprocessor
99
+ `jdbc_preprocessor`
100
+ - JDBCRequest
101
+ `jdbc_request`
102
+ - JMSPointtoPoint
103
+ `jms_pointto_point`
104
+ - JMSPublisher
105
+ `jms_publisher`
106
+ - JMSSubscriber
107
+ `jms_subscriber`
108
+ - JSONPathPostprocessor
109
+ `json_path_postprocessor`
110
+ - JSR223Assertion
111
+ `jsr223_assertion`
112
+ - JSR223Listener
113
+ `jsr223_listener`
114
+ - JSR223Postprocessor
115
+ `jsr223_postprocessor`
116
+ - JSR223Preprocessor
117
+ `jsr223_preprocessor`
118
+ - JSR223Sampler
119
+ `jsr223_sampler`
120
+ - JSR223Timer
121
+ `jsr223_timer`
122
+ - JUnitRequest
123
+ `j_unit_request`
124
+ - JavaRequest
125
+ `java_request`
126
+ - JavaRequestDefaults
127
+ `java_request_defaults`
128
+ - KeystoreConfiguration
129
+ `keystore_configuration`
130
+ - LDAPExtendedRequest
131
+ `ldap_extended_request`
132
+ - LDAPExtendedRequestDefaults
133
+ `ldap_extended_request_defaults`
134
+ - LDAPRequest
135
+ `ldap_request`
136
+ - LDAPRequestDefaults
137
+ `ldap_request_defaults`
138
+ - LoginConfigElement
139
+ `login_config_element`
140
+ - LoopController
141
+ `loop_controller`
142
+ - MD5HexAssertion
143
+ `md5_hex_assertion`
144
+ - MailReaderSampler
145
+ `mail_reader_sampler`
146
+ - MailerVisualizer
147
+ `mailer_visualizer`
148
+ - ModuleController
149
+ `module_controller`
150
+ - MonitorResults
151
+ `monitor_results`
152
+ - OSProcessSampler
153
+ `os_process_sampler`
154
+ - OnceOnlyController
155
+ `once_only_controller`
156
+ - PoissonRandomTimer
157
+ `poisson_random_timer`
158
+ - RandomController
159
+ `random_controller`
160
+ - RandomOrderController
161
+ `random_order_controller`
162
+ - RandomVariable
163
+ `random_variable`
164
+ - RecordingController
165
+ `recording_controller`
166
+ - RegExUserParameters
167
+ `reg_ex_user_parameters`
168
+ - RegularExpressionExtractor
169
+ `regular_expression_extractor`
170
+ - ResponseAssertion
171
+ `response_assertion`
172
+ - ResponseTimeGraph
173
+ `response_time_graph`
174
+ - ResultStatusActionHandler
175
+ `result_status_action_handler`
176
+ - RuntimeController
177
+ `runtime_controller`
178
+ - SMIMEAssertion
179
+ `smime_assertion`
180
+ - SMTPSampler
181
+ `smtp_sampler`
182
+ - SOAPXmlRPCRequest
183
+ `soap_xml_rpc_request`
184
+ - SaveResponsesToAFile
185
+ `save_responses_to_a_file`
186
+ - SimpleConfigElement
187
+ `simple_config_element`
188
+ - SimpleController
189
+ `simple_controller`
190
+ - SimpleDataWriter
191
+ `simple_data_writer`
192
+ - SplineVisualizer
193
+ `spline_visualizer`
194
+ - SummaryReport
195
+ `summary_report`
196
+ - SwitchController
197
+ `switch_controller`
198
+ - SynchronizingTimer
199
+ `synchronizing_timer`
200
+ - TCPSampler
201
+ `tcp_sampler`
202
+ - TCPSamplerConfig
203
+ `tcp_sampler_config`
204
+ - TestAction
205
+ `test_action`
206
+ - TestFragment
207
+ `test_fragment`
208
+ - TestPlan
209
+ `test_plan`
210
+ - ThreadGroup
211
+ `thread_group`
212
+ - ThroughputController
213
+ `throughput_controller`
214
+ - TransactionController
215
+ `transaction_controller`
216
+ - UniformRandomTimer
217
+ `uniform_random_timer`
218
+ - UserDefinedVariables
219
+ `user_defined_variables`
220
+ - UserParameters
221
+ `user_parameters`
222
+ - ViewResultsInTable
223
+ `view_results_in_table`
224
+ - ViewResultsTree
225
+ `view_results_tree`
226
+ - WhileController
227
+ `while_controller`
228
+ - XMLAssertion
229
+ `xml_assertion`
230
+ - XMLSchemaAssertion
231
+ `xml_schema_assertion`
232
+ - XPathAssertion
233
+ `x_path_assertion`
234
+ - XPathExtractor
235
+ `x_path_extractor`
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # JmeterPerf
2
+ Dynamically generate JMeter test plans, run performance tests, generate reports, compare reports and more using JMeter and Ruby.
3
+
4
+ ## Installation
5
+
6
+ Install the gem and add to the application's Gemfile by executing:
7
+
8
+ $ bundle add jmeter_perf
9
+
10
+ If bundler is not being used to manage dependencies, install the gem by executing:
11
+
12
+ $ gem install jmeter_perf
13
+
14
+ ## Usage
15
+
16
+ Check out the Wiki! https://github.com/jlurena/jmeter_perf/wiki
17
+
18
+ ## Development
19
+
20
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
21
+
22
+ ## Contributing
23
+
24
+ Bug reports and pull requests are welcome on GitHub at https://github.com/jlurena/jmeter_perf.
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+ require "rubocop/rake_task"
6
+
7
+ Dir.glob("tasks/*.rake").each { |r| load r }
8
+
9
+ RSpec::Core::RakeTask.new(:spec)
10
+ RuboCop::RakeTask.new(:rubocop)
11
+
12
+ task default: [:rubocop, :spec]
data/example/Gemfile ADDED
@@ -0,0 +1,39 @@
1
+ source "https://rubygems.org"
2
+
3
+ ruby "3.2.2"
4
+
5
+ gem "jmeter_perf", path: "../"
6
+
7
+ # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
8
+ gem "rails", "~> 7.1.3", ">= 7.1.3.3"
9
+
10
+ # Use sqlite3 as the database for Active Record
11
+ gem "sqlite3", "~> 1.4"
12
+
13
+ # Use the Puma web server [https://github.com/puma/puma]
14
+ gem "puma", ">= 5.0"
15
+
16
+ # Build JSON APIs with ease [https://github.com/rails/jbuilder]
17
+ # gem "jbuilder"
18
+
19
+ # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
20
+ # gem "kredis"
21
+
22
+ # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
23
+ # gem "bcrypt", "~> 3.1.7"
24
+
25
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
26
+ gem "tzinfo-data", platforms: %i[windows jruby]
27
+
28
+ # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin Ajax possible
29
+ # gem "rack-cors"
30
+
31
+ group :development, :test do
32
+ # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
33
+ gem "pry-byebug", platforms: %i[mri windows]
34
+ end
35
+
36
+ group :development do
37
+ # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
38
+ # gem "spring"
39
+ end
@@ -0,0 +1,232 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ jmeter_perf (1.0.6)
5
+ nokogiri (~> 1.16, >= 1.16.7)
6
+ tdigest (~> 0.2.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (7.1.4)
12
+ actionpack (= 7.1.4)
13
+ activesupport (= 7.1.4)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ zeitwerk (~> 2.6)
17
+ actionmailbox (7.1.4)
18
+ actionpack (= 7.1.4)
19
+ activejob (= 7.1.4)
20
+ activerecord (= 7.1.4)
21
+ activestorage (= 7.1.4)
22
+ activesupport (= 7.1.4)
23
+ mail (>= 2.7.1)
24
+ net-imap
25
+ net-pop
26
+ net-smtp
27
+ actionmailer (7.1.4)
28
+ actionpack (= 7.1.4)
29
+ actionview (= 7.1.4)
30
+ activejob (= 7.1.4)
31
+ activesupport (= 7.1.4)
32
+ mail (~> 2.5, >= 2.5.4)
33
+ net-imap
34
+ net-pop
35
+ net-smtp
36
+ rails-dom-testing (~> 2.2)
37
+ actionpack (7.1.4)
38
+ actionview (= 7.1.4)
39
+ activesupport (= 7.1.4)
40
+ nokogiri (>= 1.8.5)
41
+ racc
42
+ rack (>= 2.2.4)
43
+ rack-session (>= 1.0.1)
44
+ rack-test (>= 0.6.3)
45
+ rails-dom-testing (~> 2.2)
46
+ rails-html-sanitizer (~> 1.6)
47
+ actiontext (7.1.4)
48
+ actionpack (= 7.1.4)
49
+ activerecord (= 7.1.4)
50
+ activestorage (= 7.1.4)
51
+ activesupport (= 7.1.4)
52
+ globalid (>= 0.6.0)
53
+ nokogiri (>= 1.8.5)
54
+ actionview (7.1.4)
55
+ activesupport (= 7.1.4)
56
+ builder (~> 3.1)
57
+ erubi (~> 1.11)
58
+ rails-dom-testing (~> 2.2)
59
+ rails-html-sanitizer (~> 1.6)
60
+ activejob (7.1.4)
61
+ activesupport (= 7.1.4)
62
+ globalid (>= 0.3.6)
63
+ activemodel (7.1.4)
64
+ activesupport (= 7.1.4)
65
+ activerecord (7.1.4)
66
+ activemodel (= 7.1.4)
67
+ activesupport (= 7.1.4)
68
+ timeout (>= 0.4.0)
69
+ activestorage (7.1.4)
70
+ actionpack (= 7.1.4)
71
+ activejob (= 7.1.4)
72
+ activerecord (= 7.1.4)
73
+ activesupport (= 7.1.4)
74
+ marcel (~> 1.0)
75
+ activesupport (7.1.4)
76
+ base64
77
+ bigdecimal
78
+ concurrent-ruby (~> 1.0, >= 1.0.2)
79
+ connection_pool (>= 2.2.5)
80
+ drb
81
+ i18n (>= 1.6, < 2)
82
+ minitest (>= 5.1)
83
+ mutex_m
84
+ tzinfo (~> 2.0)
85
+ base64 (0.2.0)
86
+ bigdecimal (3.1.8)
87
+ builder (3.3.0)
88
+ byebug (11.1.3)
89
+ coderay (1.1.3)
90
+ concurrent-ruby (1.3.4)
91
+ connection_pool (2.4.1)
92
+ crass (1.0.6)
93
+ date (3.3.4)
94
+ drb (2.2.1)
95
+ erubi (1.13.0)
96
+ globalid (1.2.1)
97
+ activesupport (>= 6.1)
98
+ i18n (1.14.6)
99
+ concurrent-ruby (~> 1.0)
100
+ io-console (0.7.2)
101
+ irb (1.14.1)
102
+ rdoc (>= 4.0.0)
103
+ reline (>= 0.4.2)
104
+ loofah (2.22.0)
105
+ crass (~> 1.0.2)
106
+ nokogiri (>= 1.12.0)
107
+ mail (2.8.1)
108
+ mini_mime (>= 0.1.1)
109
+ net-imap
110
+ net-pop
111
+ net-smtp
112
+ marcel (1.0.4)
113
+ method_source (1.1.0)
114
+ mini_mime (1.1.5)
115
+ minitest (5.25.1)
116
+ mutex_m (0.2.0)
117
+ net-imap (0.4.17)
118
+ date
119
+ net-protocol
120
+ net-pop (0.1.2)
121
+ net-protocol
122
+ net-protocol (0.2.2)
123
+ timeout
124
+ net-smtp (0.5.0)
125
+ net-protocol
126
+ nio4r (2.7.3)
127
+ nokogiri (1.16.7-aarch64-linux)
128
+ racc (~> 1.4)
129
+ nokogiri (1.16.7-arm-linux)
130
+ racc (~> 1.4)
131
+ nokogiri (1.16.7-arm64-darwin)
132
+ racc (~> 1.4)
133
+ nokogiri (1.16.7-x86-linux)
134
+ racc (~> 1.4)
135
+ nokogiri (1.16.7-x86_64-darwin)
136
+ racc (~> 1.4)
137
+ nokogiri (1.16.7-x86_64-linux)
138
+ racc (~> 1.4)
139
+ pry (0.14.2)
140
+ coderay (~> 1.1)
141
+ method_source (~> 1.0)
142
+ pry-byebug (3.10.1)
143
+ byebug (~> 11.0)
144
+ pry (>= 0.13, < 0.15)
145
+ psych (5.1.2)
146
+ stringio
147
+ puma (6.4.3)
148
+ nio4r (~> 2.0)
149
+ racc (1.8.1)
150
+ rack (3.1.8)
151
+ rack-session (2.0.0)
152
+ rack (>= 3.0.0)
153
+ rack-test (2.1.0)
154
+ rack (>= 1.3)
155
+ rackup (2.1.0)
156
+ rack (>= 3)
157
+ webrick (~> 1.8)
158
+ rails (7.1.4)
159
+ actioncable (= 7.1.4)
160
+ actionmailbox (= 7.1.4)
161
+ actionmailer (= 7.1.4)
162
+ actionpack (= 7.1.4)
163
+ actiontext (= 7.1.4)
164
+ actionview (= 7.1.4)
165
+ activejob (= 7.1.4)
166
+ activemodel (= 7.1.4)
167
+ activerecord (= 7.1.4)
168
+ activestorage (= 7.1.4)
169
+ activesupport (= 7.1.4)
170
+ bundler (>= 1.15.0)
171
+ railties (= 7.1.4)
172
+ rails-dom-testing (2.2.0)
173
+ activesupport (>= 5.0.0)
174
+ minitest
175
+ nokogiri (>= 1.6)
176
+ rails-html-sanitizer (1.6.0)
177
+ loofah (~> 2.21)
178
+ nokogiri (~> 1.14)
179
+ railties (7.1.4)
180
+ actionpack (= 7.1.4)
181
+ activesupport (= 7.1.4)
182
+ irb
183
+ rackup (>= 1.0.0)
184
+ rake (>= 12.2)
185
+ thor (~> 1.0, >= 1.2.2)
186
+ zeitwerk (~> 2.6)
187
+ rake (13.2.1)
188
+ rbtree3 (0.7.1)
189
+ rdoc (6.7.0)
190
+ psych (>= 4.0.0)
191
+ reline (0.5.10)
192
+ io-console (~> 0.5)
193
+ sqlite3 (1.7.3-aarch64-linux)
194
+ sqlite3 (1.7.3-arm-linux)
195
+ sqlite3 (1.7.3-arm64-darwin)
196
+ sqlite3 (1.7.3-x86-linux)
197
+ sqlite3 (1.7.3-x86_64-darwin)
198
+ sqlite3 (1.7.3-x86_64-linux)
199
+ stringio (3.1.1)
200
+ tdigest (0.2.1)
201
+ rbtree3 (~> 0.7.1)
202
+ thor (1.3.2)
203
+ timeout (0.4.1)
204
+ tzinfo (2.0.6)
205
+ concurrent-ruby (~> 1.0)
206
+ webrick (1.8.2)
207
+ websocket-driver (0.7.6)
208
+ websocket-extensions (>= 0.1.0)
209
+ websocket-extensions (0.1.5)
210
+ zeitwerk (2.7.0)
211
+
212
+ PLATFORMS
213
+ aarch64-linux
214
+ arm-linux
215
+ arm64-darwin-23
216
+ x86-linux
217
+ x86_64-darwin
218
+ x86_64-linux
219
+
220
+ DEPENDENCIES
221
+ jmeter_perf!
222
+ pry-byebug
223
+ puma (>= 5.0)
224
+ rails (~> 7.1.3, >= 7.1.3.3)
225
+ sqlite3 (~> 1.4)
226
+ tzinfo-data
227
+
228
+ RUBY VERSION
229
+ ruby 3.2.2p53
230
+
231
+ BUNDLED WITH
232
+ 2.5.14
data/example/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # README
2
+
3
+ Example API application to test JmeterPerf
data/example/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative "config/application"
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,2 @@
1
+ class ApplicationController < ActionController::API
2
+ end
@@ -0,0 +1,15 @@
1
+ class TestController < ApplicationController
2
+ def fast
3
+ render plain: "Fast action"
4
+ end
5
+
6
+ def slow
7
+ sleep 5
8
+ render plain: "Slow action"
9
+ end
10
+
11
+ def random
12
+ sleep rand(1..3)
13
+ render plain: "Random"
14
+ end
15
+ end