gpt4 book ai didi

ruby-on-rails - 为 Rails 性能测试生成代表性数据

转载 作者:行者123 更新时间:2023-11-28 20:09:42 26 4
gpt4 key购买 nike

我的 ruby​​ on rails 网站的特定页面速度很慢。

为了弄清楚发生了什么,我试着按照这个 guide在本地主机上设置这个简单的测试:

class BrowsingTest < ActionDispatch::PerformanceTest
def test_homepage
get '/slow_page'
end
end

此时我的测试数据库是空的,因此我需要为其添加一些数据。在研究了几个小时后,我有点困惑,我不确定我是否应该:

1) 以某种方式从生产服务器复制数据并将其粘贴到测试数据库中(有没有简单的方法来做到这一点?)

2) 使用测试夹具.yml 文件生成许多用户和帖子

3) 将代码放在seed.rb 中以生成用户和帖子。 (我尝试这样做,但由于某种原因,我在此文件中生成的内容在我的 PerformanceTest 运行时消失了

4) 我遇到了一些 Gem,比如 Factory Girl 和 Faker。我还没有尝试过这些,但从我读到的内容来看,它似乎更适合创建特定的情况和状态,而不是生成成千上万的用户来进行性能测试。

我认为这将是一种常见的情况,并且很想从已经这样做过的人那里得到一些建议。谢谢。

最佳答案

生成性能测试的最佳方法是使用来自生产服务器的真实用户数据。如果您可以使用这些,那么一定要使用它们。原因是您想针对最常见的真实用户场景优化您的 Web 应用程序的性能。无论您编造的不是基于真实用户行为的场景,充其量都不会具有代表性,或者在最坏的情况下完全无用。

在实践中,你想要做的是:

  • 复制您的生产数据库并将其用于您的性能测试 - 这将确保任何查询在生产中运行缓慢,例如由于大表、缺少索引、过多的索引影响更新速度等,在你的测试。
  • 解析您的网络服务器日志以计算高峰时段慢速页面上的并发请求数,并在您的测试中生成相同类型的负载(或更高 - 取决于您的增长预期)。
  • 您可能想要查看提供来自分布式服务器网络的真实负载近似值的服务。例如,看看 Browser Mob

关于ruby-on-rails - 为 Rails 性能测试生成代表性数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5713042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com