繁体   English   中英

我可以重用集成测试套件来配置Rails应用程序吗?

[英]Can I reuse my integration test suite to profile a Rails app?

关于Rails分析的大多数文章都推荐Ruby-Prof 要使用Ruby-Prof我需要为每个控制器动作编写至少一个新测试,然后手动比较结果以查看花费时间最长的结果,并可能是进行优化的候选方法。

如果我已经完全知道我要关注的请求,那么这很好。 如果我首先要确定热点,那就不好了。 鉴于我已经有一个庞大的集成测试套件,涵盖了我关心的所有应用程序功能,看来我真正想要做的是:

  1. 运行整个测试套件,并捕获每个控制器操作所花费的时间。 (或者模型方法,或者我想要的任何粒度级别。)
  2. 在每个控制器操作中打印两个列表,分别列出最坏情况和平均情况的时间。
  3. 对每个列表进行排序,然后开始研究运行时间最长的控制器操作,现在使用Ruby-prof或其他分析工具来深入研究调用堆栈。 最坏的情况将确定可能有问题的请求参数(即,在后端触发缓慢的代码),而在编写性能测试时,我不必全盘考虑。

人们是否有某些理由不以这种方式使用集成测试套件,而不是基本上用第二个性能测试套件来复制它? 我没有看到它的建议。 在我编写代码以执行类似操作之前(大概在ApplicationController使用before_action ,是否已经before_action于此的工具?

我认为自动化测试不会告诉您有关性能的任何信息。 您需要真实的数据。 例如,您的测试可能不会使用索引,但是如果您创建10,000条没有索引的记录,则可能会发现性能问题。

我需要为每个控制器操作至少编写一个新测试

为什么要对每个控制器动作进行性能测试?

以我有限的经验,性能测试是在部署应用程序并测试非常具体的东西之后进行的。 我测试了很慢的代码块或我认为可能很慢的代码。

另外,如果您使用在线性能工具,则无需更改代码。 联机工具针对已部署的应用程序实例运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM