From cd100bccdfc0b4468236bd335e4eab0bc4ec1c75 Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Fri, 24 Nov 2023 15:15:51 +0100 Subject: [PATCH] perf(benchmarks): ability to pass a params list to controller --- lib/tasks/benchmarks.rake | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/tasks/benchmarks.rake b/lib/tasks/benchmarks.rake index 4dc88bd5a..5ec14ff4f 100644 --- a/lib/tasks/benchmarks.rake +++ b/lib/tasks/benchmarks.rake @@ -78,6 +78,11 @@ namespace :benchmarks do # # Attention : penser à refaire les étapes 1 et 2 sur la seconde branche ! # + # 5. Pour passer des paramètres d'urls, utiliser la variable d'environnement `PARAMS` + # sous forme key=value, séparables par des virgules : + # + # rake benchmarks:action[Users::CommencerController,commencer,commencer] PARAMS=path=my-demarche,other=value + # desc "Benchmark a Rails action" task :action, [:controller, :action1, :action2] => :environment do |_, args| require 'benchmark/ips' @@ -97,6 +102,13 @@ namespace :benchmarks do controller.request = ActionDispatch::TestRequest.create controller.response = ActionDispatch::TestResponse.new controller.request.env['warden'] = warden + + params = ENV.fetch("PARAMS") { "" }.split(",") + params.each do |param| + key, value = param.split("=") + controller.params[key.strip] = value.strip + end + controller end