12

我正在建立一个供个人使用的小型网站来测试我公司制作的 API。我的老板想要一个网站,我们可以在其中进入网站,使用 GET 或 POST 请求表单,以及发送请求的次数。他希望记录请求、每个请求的时间以及所有请求的平均时间。

有没有办法使用 Ruby 测量 GET 或 POST 请求的响应时间?

我查看了 Net::HTTP 库,但没有看到任何返回所用时间的内容。

是否有任何网站已经这样做了?他们需要有一个 GUI,以便非技术人员可以使用它。如果没有,我打算有一个简单的表单来运行脚本,将该脚本的输出写入文本文件或电子表格,然后将其发送给用户。

还有其他建议吗?(一个漂亮的 AJAX 界面可能工作得很好,但可能需要数据库存储。每次运行 10000 个请求时,这可能会变得很庞大。

4

2 回答 2

25

正如评论中提到的,ruby 有一个基准模块

require "benchmark"

time = Benchmark.measure do
  #requests
end
于 2013-03-28T07:23:36.690 回答
7

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

时间可以精确到微秒,这对于您的需求应该是足够准确的。

界面由您自己决定,因为这是一个完全不同的主题,将构成一本书。

于 2013-03-28T00:09:01.627 回答