Измерение времени отклика на HTTP-запрос с помощью Ruby



Я создаю небольшой веб-сайт для личного использования, чтобы протестировать API, который делает моя компания. Мой босс хочет веб-сайт, на котором мы можем войти на сайт, запросить форму с помощью GET или POST и количество раз отправить запрос. Он хочет, чтобы запрос регистрировался, время на запрос и среднее время для всех запросов.



Есть ли способ измерить время ответа на запрос GET или POST с помощью Ruby?



Я просмотрел библиотеку Net:: HTTP, но не увидел ничего, что вернулось время ушло.



Есть ли сайты, которые уже делают это? Им нужен графический интерфейс, чтобы не-технари могли его использовать. Если нет, я планировал иметь простую форму, которая запускает сценарий, записывает результат этого сценария в текстовый файл или электронную таблицу, а затем отправляет его пользователю.



Есть еще предложения? (Красивый интерфейс AJAX может работать хорошо, но, вероятно, потребует хранения базы данных. При 10000 запросах за запуск, это может стать здоровенным.

435   2  

2 ответов:

Как упоминалось в комментариях, ruby имеет модуль benchmark

require "benchmark"

time = Benchmark.measure do
  #requests
end

Почему Net:: HTTP заботится о времени отклика? Это не входит в его обязанности.

До и после запроса используйте Time.now для установки времени начала и окончания:

start_time = Time.now
# ...do request...
elapsed_time = Time.now - start_time

Если вы хотите усреднить это, сложите значения elapsed_time вместе и разделите на количество тестов:

total_time += elapsed_time
# ... do some stuff...
average_time = total_time / num_of_iterations
Время измеряется вплоть до микросекунды, которая должна быть достаточно точной для ваших нужд.

Вы сами по себе для интерфейса, поскольку это совершенно другая тема и будет представлять собой книга.

И, кстати, ты должен мне час своего заработка за то, что я выполняю часть твоей работы за тебя.

Comments

    Ничего не найдено.