jmeter_perf 1.0.9

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 (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