3

我想做性能测试。但我们没有任何要求。我想为网站做负载测试。我如何进行这些测试?

我的网站就像 youtube(社交应用程序)。在这个我想检查在特定时间有多少用户可以上传视频,我们可以存储多少视频,10000个视频可能不是?如何测试这些。

我目前正在使用 JMeter 进行负载测试。

你能提出一些建议吗?我们要检查的时间是什么?需要多少并发用户?

谢谢

4

4 回答 4

2

这里有两个不同的问题:

  1. 要求:您要查找的统计数据是什么?
  2. 技术:你如何测试你是否达到了你为自己设定的目标?

关于(1):在一个完美的世界中,您将能够分析您的目标客户范围并了解有多少人将同时使用您的系统。然后,您将了解其中有多少实际上会(同时)在您的网站中触发响应,并从中了解您需要同时处理多少个请求。

您可能想知道的另一个问题是您可以预期拥有的数据大小。如果您有 1,000,000 个用户,并且每 100 个用户中就有 1 个上传视频,那么您的数据库中就有 10,000 个视频。所以这个问题的答案再次取决于用户的数量和他们的行为。

进行某种市场调查并得出数字可能是可能的,但精益创业方法论指出,您通常不知道这些问题的答案,您只能猜测,而且通常您猜错了。

所以,假设你真的什么都不懂,你应该了解如何让你的系统以一种可以支持任意数量的并发用户和任意大小的数据的方式进行扩展。

但是,您可能想知道有关您正在使用的当前基础架构的统计信息。这将我们引向(2)。

JMeter 是测试并发负载的好工具,您没有说明您的服务器是用什么编写的,但 JMeter 建议使用 Java,在这种情况下,您应该了解内存限制和垃圾收集时间。

假设一个无状态(或至少会话粘性)分布式系统,您可能希望测试单个“典型”服务器的响应时间和给定数量并发请求的故障。从小处着手,在结果仍然可以接受的情况下再往上走(即,对于 100 个并发请求,50ms 响应时间和 0 个失败响应是可以接受的,1000 个并发给你 300ms 延迟和 5 个失败响应,在 5000 时你可以达到 500ms和 15 个失败的响应,这是您认为可以接受的最高延迟,以及您可以接受的尽可能多的失败)

您可能希望从上面更改“典型”并查看不同的基础架构如何为您提供不同的结果,今天的云服务的好处是您可以轻松进入 EC2 并以很少的投资获得任何类型的基础架构并测试您的结果所以你知道你需要买什么(假设你不想继续托管在 EC2 上)。您还可以使用 EC2 来托管 JMeter 实例(我曾经读过一篇关于此的文章,不记得在哪里,但谷歌它),并且您可以以低于 200 美元/测试的价格发出许多并发请求。

于 2012-12-18T12:16:16.737 回答
2

http://www.loadstorm.com

是一个不错的开始进行负载测试的网站。

如果您正在寻找更先进的东西,请尝试 hp loadrunner-

http://www8.hp.com/us/en/software-solutions/software.html?compURI=1175451#.UmbpLZRgY08

于 2013-10-22T20:09:25.847 回答
0

根据我的加载测试经验,您可能会研究这些解决方案

  • http://www.webperformance.com/我们使用 Web Performance 来生成虚拟客户端,它们提供了非常好的工具,集成到 AWS 中,因此与其他解决方案相比,它既快速又便宜。
  • http://newrelic.com这家伙监控我们的服务器和应用程序,图表显示非常详细的信息(瓶颈、资源等)

哦,关于这个问题有一本有趣的书(http://www.amazon.com/Scalability-Rules-Principles-Scaling-Sites/dp/0321753887),它会很有帮助。

于 2012-12-18T11:43:37.420 回答
0

但是我们没有任何要求。

构建性能测试是一项微型开发工作。如果没有要求,您将不知道要在测试中构建什么,从要包括哪些业务流程到每种类型的用户有多少到被认为是可接受的响应时间。如果您正在对现有应用程序的更新进行性能测试,那么您可能拥有可供现有用户群使用的事务数据(可能还有转换数据)。希望这些信息是历史信息,以便您可以观察到随着时间的推移的增长。为您的负荷计划 18 个月,最好是 36 个月。

您将需要参与需求的业务利益相关者。此应用程序旨在满足业务需求,根据此部署的成功或失败,某人将被降职、解雇、晋升或奖金。找到那个人!任何将在此应用程序上获得奖金或职位的人也可能非常了解业务需求和期望。

如果这是您第一次从事性能测试工作,那么您最好聘请该领域的专家。您需要的大约 85% 的技能与工具无关,最后一点由您的工具为您的测试工作填充。这 85% 在需求、监控、分析和报告部分至关重要。作为一名性能测试员与许多其他学科没有什么不同,因为最好的发展路线是通过确认核心技能、对流程、方法和工具的正式指导,然后是一段时间的实习。你有没有见过像理发师那样不熟练的人理发,或者没有接受过砌体训练的人砌砖墙?如果是这样,那么您就会了解如果您刚刚进入该角色,性能测试将具有什么价值。

聘请经验丰富的项目负责人。像刚出生的小狗一样跟着他们走。做大量笔记。问很多问题。确保您可以维护他们为将来使用而开发的内容,并了解开发项目的原因

否则,如果没有要求,您就有走上“艺术测试”之路的危险。艺术测试是与需求和/或生产数据观察分离的性能测试。你会在很多环境中看到这一点,最后只剩下一两个星期进行性能测试,项目不会出现滑点,也没有时间解决任何问题。简而言之,它变成了一个价值不高的复选框。

哦,检查您的日志以了解上传时的实际并发性。您可能会发现的东西会让您感到惊讶和高兴。我花了很多个小时与某人讨论,他们告诉我他们的网站上有 10000 个并发用户,只是在查看日志时发现平均会话持续时间不到 10 分钟,而 10 分钟块中的最大并发数仅为几百个用户。

于 2013-10-31T13:50:21.590 回答