使用HTTParty测试api响应时间

时间:2013-09-19 03:27:37

标签: ruby api testing automation httparty

我们的api服务有一些性能增强。我被要求获取一些随机数据并记录新旧响应时间,以便我们可以看到并排的示例。我编写了一个快速脚本来从数据库中获取随机数据,并在两个调用中使用相同的数据迭代该结果集。我在同一个循环中使用httparty进行两次调用,但似乎第一次调用比它应该慢。如果我切换两个旧呼叫现在更快,它不应该。以下是我正在做的事情。

如果我转换旧电话和新电话,我应该看到时间反映但是没有,而新电话现在非常慢。

有人可以对我做错了吗?提前谢谢。 (如果我的问题不清楚,请告诉我)

class ProductCompare < Test::Unit::TestCase

def test_compare

 def time_diff(start, finish)
   ((finish - start) * 1000.0).to_i
 end

 begin
   api_conn = Mysql.new()

   random_skus = api_conn.query("Select random data")

   random_skus.each do |row|

     puts row.join("\s")

         products1 = "http://api-call-old/#{row.join("\s")}"
         start_time1 = Time.now
         response1 = HTTParty.get(products1)
         end_time1 = Time.now
         products1_elapsed_tm = time_diff(start_time1, end_time1)

     puts "The response time for response1 is: #{products1_elapsed_tm} ms"

         products2 = "http://api-call-new/#{row.join("\s")}"
         start_time2 = Time.now
         response2 = HTTParty.get(products2)
         end_time2 = Time.now
         products2_elapsed_tm = time_diff(start_time2, end_time2)

     puts "The response time for response2 is: #{products2_elapsed_tm} ms"

     assert_equal(response1.body, response2.body, 'The products responce did not match')
   end

    api_conn.close
 rescue Mysql::Error => e
    puts e.error
 ensure
    api_conn.close if api_conn
 end
 end
end

0 个答案:

没有答案