如何确定一个网站在负载测试方面表现良好?

Posted

技术标签:

【中文标题】如何确定一个网站在负载测试方面表现良好?【英文标题】:How to determine a website is good in load testing? 【发布时间】:2011-03-14 03:37:30 【问题描述】:

我是测试新手。目前,我正在使用 JMeter 构建一个测试计划,然后针对我的 Java Web 应用程序运行它。目前我只是使用(平均响应时间、90% 线路、吞吐量和所用 CPU/内存的估计)来对 Web 的工作方式进行大致估计。

是否有任何类型的质量检查表可以知道 Web 应用程序是否正常工作?我试图在网上搜索,但没有找到任何线索。

更新:关于我的测试计划,它模拟了一个200个用户同时访问我的Web应用程序的情况,并遵循一个典型的工作流程:登录,结账,下载文件。 .. 我正在努力使测试尽可能真实,以便我知道是否存在任何潜在问题。

我还添加了“用户思考时间”,以使测试更加真实。

【问题讨论】:

【参考方案1】:

听起来你是在正确的轨道上。

响应时间将使您能够广泛地衡量最终用户对应用性能的接受程度。

您还希望获得最长的响应时间。

否则,这取决于您的硬件平台处理负载的能力。 这有点难。基本上,您正在寻找服务器中负载减慢速度的瓶颈。您可能无法通过思考时间模拟 200 个用户。

如果 CPU 和内存统计数据不高,请检查磁盘队列长度以确保没有磁盘问题。

那么一般的流程是

通过我的响应时间来衡量绩效是否合适?

是:增加负载并重试。

否:那么我的硬件的哪一部分导致了这个负载的问题。

当您对自己的网站达到预期效果感到满意或意识到存在性能问题时,您可以停止。

向性能不佳的网站添加更多硬件通常很诱人,但您可以通过更改代码来提高应用程序的效率,从而获得很多好处。

负载测试将有助于告诉您应用的哪些部分最差,您可以将注意力集中在它们上。

【讨论】:

根据 Jmeter 报告,在某种特殊请求中响应时间相当长。好像调用的请求越多,速度就越好(我觉得是缓存的效果)。我怎么知道不是硬件问题? 此外,您能否介意解释一下最大响应时间与硬件问题的关系? 如果您在特定负载下遇到硬件问题,硬件可能需要更长的时间才能从磁盘获取内容,或者请求必须等待 CPU 时间才能执行。【参考方案2】:

我同意泰勒的观点。重要的是要了解您正在测试什么,您想要测试什么。比你能回答如何做这个问题。

这里有一些简单的例子(也可以查看*** - 性能测试以获得更好的整体情况)。

您想测试服务器特性吗? 在这种情况下,我使用了用户数量随时间增加的脚本。 这当然取决于服务器配置,如果您有 2 个集群并且每个集群能够处理 150 个并发连接,那么最好在负载平衡开始时测试它的执行情况。

您想检查应用程序和服务器在估计的高负载下的行为吗? 在这种情况下,它应该在需求中预期负载(用户数量)。脚本应该运行很长时间,还应该进行内存分析以检查可能的内存泄漏。在这种情况下,您将能够回答它是否稳定。

你想在短时间内查看海量用户的高峰吗? ....

这样的问题很多。如果您确定要执行哪种类型的测试,那么您应该能够将值与要求进行比较。

【讨论】:

我想检查应用程序在高负载下的行为(如问题中所述)。我不太了解内存分析器。真的有必要吗? 我认为内存分析是一种很好的做法。如果您进行内存分析并且内存消耗稳定,则表明应用程序将按预期工作。在某些情况下,运行 10 分钟的测试不会发现任何问题,而运行 2 小时的相同测试会发现问题,对于长时间的测试,最好知道什么是内存消耗。但这当然取决于要求。【参考方案3】:

Firebug 使用 firefox 或右键单击并检查元素并重新加载页面并返回检查元素窗口.. 您可以在网络中看到一些可以提供帮助的良好统计信息

【讨论】:

实际上,我正在做负载测试。从 JMeter 我已经得到了很多不同的参数,我只是不知道如何使用它们来创建关于抗压力能力的良好估计。 我相信你的意思是萤火虫的“网络”标签而不是检查元素。 “网络”选项卡将显示加载时间以及浏览器和服务器之间发生的所有交互。 是的,对不起,我的意思是检查元素适用于 chrome【参考方案4】:

了解您正在测试的内容更为重要,更重要的是了解您的负载是什么,以及它的特征。 (它是均匀分布还是尖峰?预期的平均访问者数量、使用模式等)。在你知道这些问题的答案之前,你得到的任何数字都介于毫无意义和彻头彻尾的误导之间。

【讨论】:

@Tyler:我已经更新了我的问题。我建立了一个测试计划,在访问该站点时模拟用户的常见活动,然后在另一台机器上运行 200 个线程。 200个用户真的很现实吗?这是一个相当高的负载,真的。 @Tyler:再想一想,看来我现在需要的是某种仪表。可接受的最大响应时间是多少?可接受的吞吐量是多少……等等。 @Tyler:是的,这是要求之一。 请记住,200 个用户根本不等于 200 个负载测试线程。这是您需要进行一些实际用户测试的时候。确定点击率、页面停留时间等。要抛出一个数字,对于一组(本地)社区站点,这些站点每天的页面浏览量可以达到 50 万,很少会看到超过 5-10 个请求实际上正在处理给定的时间。至于数字,我建议 100 毫秒作为没有明显进一步收益的点,250 毫秒大约是“好”的下限,1000 毫秒以上不太理想。同样,取决于用例,例如数据输入与只读。

以上是关于如何确定一个网站在负载测试方面表现良好?的主要内容,如果未能解决你的问题,请参考以下文章

怎么样用LoadRunner对已经上线的网站进行测试?需要测试哪些地方?

网站性能测试时负载并发数怎么计算?

如何测试网站最大并发数

web测试关注的六部分

如何使用 JMeter 对网站进行负载测试

网站测试