Testing 如何在负载测试中确定网站是否良好?

Testing 如何在负载测试中确定网站是否良好?,testing,webtest,load-testing,Testing,Webtest,Load Testing,我是个测试新手。现在,我正在使用JMeter构建一个测试计划,然后针对我的java web应用程序运行它。目前,我只是使用(平均响应时间、90%线路、吞吐量和CPU/内存使用的估计)来对web的工作方式进行近似估计 是否有任何类型的质量检查表可以确保web应用程序工作正常?我试图在网上搜索,但没有找到任何线索 更新:关于我的测试计划,它模拟了200个用户同时访问我的web应用程序的情况,并遵循典型的工作流程:登录、签出商品、下载文档。。。我正在努力使测试尽可能真实,这样我就能知道是否有任何潜在的

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

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

更新:关于我的测试计划,它模拟了200个用户同时访问我的web应用程序的情况,并遵循典型的工作流程:登录、签出商品、下载文档。。。我正在努力使测试尽可能真实,这样我就能知道是否有任何潜在的问题


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

Firebug使用firefox或右键单击并检查元素,然后重新加载页面并返回检查元素窗口。。在这里,您可以在网络中看到一些很好的统计数据,这些数据有助于了解您正在测试的内容,更重要的是了解您的负载以及它的特性。(它是均匀分布的还是尖峰的?预期的模拟访客的平均数量、使用模式等)。在你知道这些问题的答案之前,你得到的任何数字都是介于无意义和完全误导之间的

我同意泰勒的观点。了解您正在测试的内容以及您想要测试的内容非常重要。然后你就可以回答这个问题了

下面是一些简单的例子(也可以查看wikipedia-性能测试以获得更好的整体效果)

是否要测试服务器特性? 在本例中,我使用的脚本中的用户数量会随着时间的推移而增加。 这当然取决于服务器配置,如果您有2个集群,每个集群都能够处理150个并发连接,那么最好测试它在负载平衡开始时的性能

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

您想在短时间内查看大量用户的峰值吗?


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

听起来你的思路是对的

响应时间将为您提供一个广泛的度量,即您的应用程序性能对最终用户的可接受程度

您还需要获得最长的响应时间

否则,这取决于硬件平台处理负载的能力。 这有点难。基本上,您是在寻找服务器中的瓶颈,因为负载会使速度减慢。模拟200个用户的思考时间,你可能不会遇到瓶颈

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

一般的过程是这样的

通过我的响应时间来衡量性能是否合适

是:增加负载,然后重试

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

当你很高兴你的网站能够达到预期目标,或者你意识到存在性能问题时,你可以停止

在性能较差的网站上添加更多硬件通常是很诱人的,但是通过更改代码使应用程序更高效,您可以获得很多好处


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

实际上,我正在进行负载测试。从JMeter我已经得到了很多不同的参数,我只是不知道如何使用它们来创建一个关于抗压力能力的良好估计。我相信你指的是firebug的“net”选项卡,而不是检查元素。“Net”选项卡将显示加载时间以及浏览器和服务器之间发生的所有交互。是的,对不起,我是说inspect元素是用于chrome@Tyler:我已经更新了我的问题。我建立了一个测试计划,模拟用户访问站点时的常见活动,然后在另一台机器上运行200个线程。200个用户真的真实吗?“这真是一个很高的负荷。”泰勒:再想一想,我现在需要的似乎是某种仪表。可接受的最大响应时间是多少?可接受的吞吐量是多少。。等等。@Tyler:是的,这是一个要求。请记住,200个用户根本不等于200个load tester线程。这时您需要进行一些实际的用户测试。确定点击率、页面上的时间等。对于一组(本地)社区网站,每天的页面浏览量可以超过50万次,在任何给定的时间内,很少有超过5-10个请求被实际处理。至于数字,我建议100ms是没有进一步增益的点,250ms是“好”的较低范围,1000ms+是不理想的。同样,这取决于用例,例如数据输入与只读。根据Jmeter报告,在某种特殊请求中,响应时间相当长。似乎请求越多,速度就越快(我认为这是缓存的作用)。我怎么知道这不是因为硬件问题?此外,您能解释一下最大响应时间与硬件问题的关系吗?如果您在特定负载下遇到硬件问题,可能需要更长的硬件才能从磁盘获取数据,或者请求需要等待CPU时间才能执行。我想检查应用程序在高负载下的行为(如问题中所述)。我对内存分析器了解不多。真的有必要吗?我认为记忆分析是好的。