我正在建立一个供个人使用的小型网站来测试我公司制作的API。我的老板想要一个我们可以进入网站的网站,使用GET或POST请求表格,以及发送请求的次数。他希望记录请求,每个请求的时间以及所有请求的平均时间。
有没有办法使用Ruby来测量GET或POST请求的响应时间?
我查看了Net :: HTTP库,但没有看到任何返回时间的内容。
是否有任何网站已经这样做了?他们需要有一个GUI,所以非技术人员可以使用它。如果没有,我计划使用一个运行脚本的简单表单,将该脚本的输出写入文本文件或电子表格,然后将其发送给用户。
还有其他建议吗? (一个漂亮的AJAX外观可能很好用,但可能需要数据库存储。每次运行10000个请求,这可能会很大。
答案 0 :(得分:21)
正如评论中所提到的,ruby有一个benchmark module
require "benchmark"
time = Benchmark.measure do
#requests
end
答案 1 :(得分:6)
为什么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
时间测量到微秒,这应该足以满足您的需求。
你是自己的界面,因为这是一个完全不同的主题,并构成一本书。
而且,顺便说一下,你为我的部分工作欠你一小时的工资。