2

关于理解性能测试的基础知识,我有一些基本问题。我知道在各种情况下我们可能想做 - 压力测试 - 耐力测试等。但我在这里的主要目标是确保在一组负载下的应用程序的响应时间是体面的,该负载接近高端或至少高于平均水平加载。

我的问题如下:

  1. 当您开始计划您预期的申请响应时间时;你怎么看。如果那是第一步。我的意思是,我现在有一个 Web 应用程序。我是否只是从空中拉出一个数字并说“我希望应用程序需要 3 秒来响应每个请求”。然后去弄清楚我的应用程序缺少什么来获得响应时间?

  2. 或者反过来说,你用一组给定的硬件开始性能测试,然后说,让我们看看我现在得到的响应时间,然后看看结果,然后说,现在是 8 秒,我想要最大为 3 秒,那么让我们看看如何将其优化为 3 秒?但又是 3 秒没有空气了?我敢肯定,仅扩大机器规模不会增加响应时间。只有当单台机器/服务器处于负载状态并且您开始集群时,它才会获得响应时间?

  3. 现在对于单个用户,我的响应时间为 3 秒,但随着负载的增加,它会呈指数下降;那么我在哪里划定“我需要进一步优化代码”(有上限)和“我需要扩展我的服务器”(也有限制)之间的界限

  4. 进行性能和负载测试的最佳免费工具是什么?我用过一点Jmeter。但是还有什么好的和开源的吗?

  5. 如果我必须优化代码,我开始分析需要大量时间响应请求的特定流程?

基本上我想看看一个人是如何从端到端为他们的应用程序进行性能测试的。任何链接或文章都会非常有帮助。

谢谢。

4

5 回答 5

2

性能测试委员会是您自由交流性能测试经验、知识和实践的门户。

另请阅读Microsoft性能测试模式和实践。本指南向您展示了实施性能测试的端到端方法。

phoenix提到了开源工具。

于 2009-09-09T07:10:38.387 回答
2

首先你可以阅读

加快网站速度的最佳实践

对于工具

开源性能测试工具

性能:工具

于 2009-09-09T07:06:38.500 回答
1

此链接链接显示了在应用程序没有任何明显“瓶颈”时对应用程序进行性能调整的示例和方法。它在单个线程上最直观地工作。我没有在 Web 应用程序上使用它的经验,尽管其他人这样做。我同意分析并不容易,但我一直依赖这种技术,我认为它非常简单/有效。

于 2009-09-09T21:47:32.623 回答
0

首先,正确设计您的应用程序。

使用分析器,查看应用程序中的瓶颈所在,并尽可能将其消除。在改进之前测量性能。

于 2009-09-09T07:02:40.433 回答
0

我将尝试提供基本的分步指南,可用于在您的项目中实施性能测试。

1 -在开始测试之前,您应该知道为 JVM 分配的物理内存量和内存量,或其他。数据库大小为您当前的环境收集尽可能多的指标。了解你的环境

2 - 下一步将是确定常见的 DB 生产规模和预期的年增长率。您将需要测试您的应用程序在一年、两年、五年等之后的表现,

3 - 自动化环境设置,这将对您将来进行回归测试和缺陷修复验证有很大帮助。因此,您需要为您的测试提供数据库转储。以当前(基线)、一年、五年的交易量。

4 -完成收集基本信息后- 考虑监控负载下的服务器,也许您已经有一些监控解决方案,例如http://newrelic.com/这将帮助您确定性能下降的原因(CPU/Mem /线程数量等,)一些性能测试工具确实内置了监控系统。

在此您已准备好使用工具和负载选择进行移动,已经提供了有关如何执行此操作的材料,因此我将跳过工作负载选择部分。

5 -选择工具我认为 JMeter + http://blazemeter.com/是您此时需要的,两者都有很多不错的文章和教育材料,对于您的脚本录制,我建议使用 blazemeters Chrom Extension 而不是内置 JMeters 解决方案。如果你仍然认为你对 JMeter 的工作方式缺乏了解,我建议你阅读这本书 - Bayo Erinle 的 JMeter 2.9 性能测试

6 - 分析结果,审查测试计划并采取相应措施。

于 2015-04-15T08:46:22.237 回答