如何使用真实世界数据库对Rails应用程序进行性能/基准测试?

时间:2010-04-12 14:09:35

标签: ruby-on-rails testing performance-testing

我想对Rails应用程序进行性能测试。

现实世界数据的大小为100 MB。

但Rails总是重建测试数据库,它会覆盖现实世界的数据。

那么如何进行性能测试?

3 个答案:

答案 0 :(得分:16)

我会创建一个名为“performance”的新环境。您需要它来复制应用程序的生产设置(类缓存,模板等),然后加载数据库。在过去,我创建了一个专门用于性能测试的数据库,创建了一个rake任务,执行必要的迁移/加载,然后调用rails性能脚本。

您还可以在测试中关闭灯具行为 - 取决于您使用的测试框架。

我还在Running Rails performance tests on real data上发现了这个有用的帖子,其中有一些关于此方法的详细信息。

答案 1 :(得分:0)

我快速修复SQLite用户。

在TestCase中

def setup
  `cp db/development.sqlite3 db/test.sqlite3`
end

答案 2 :(得分:0)

我会将应用程序部署到临时服务器(靠近您的生产环境)。并在数据库中生成数据以进行更准确的测试。您可以查看ffaker gem来生成虚假数据。 然后使用第三方工具点击您的应用程序。导致您在服务器上运行的工具也会影响性能。我更喜欢Jmeter作为负载测试工具。 您可以创建测试用例。

例如,您想测试登录页面。您可以设置登录参数并发布到登录URL。您可以考虑对具有数据库写入操作的页面进行测试。那些可能是你的应用程序的瓶颈。

JMeter User Manual

Jmeter Tutorial

希望这有帮助。