如何对网站进行负载测试?

3
我想进行性能测试,但我们没有任何要求。我想对网站进行负载测试。如何进行这些测试?
我的网站类似于YouTube(社交应用程序)。我想检查在特定时间内有多少用户可以上传视频,我们能存储多少个视频,是否可以有10000个视频?如何测试这些。
我目前正在使用JMeter进行负载测试。
您能否提供一些建议以及我们要检查的时间?需要多少并发用户?
谢谢
4个回答

2

2
有两个不同的问题:
1.需求:您正在寻找哪些统计数据?
2.技术:如何测试以查看自己是否达到了设定的目标?
关于第一点: 在理想情况下,您将能够分析您的目标客户范围并了解有多少人会同时使用您的系统。 然后,您将了解到其中有多少人实际上会在您的网站上触发响应(同时),并从中了解您需要同时处理多少请求。
您可能还想知道的另一个问题是可以预期的数据大小。 如果您有100万用户,并且100个用户中有1个上传视频,则会在数据库中产生10,000个视频。 因此,对于这个问题的答案再次取决于用户数量和他们的行为。
可能可以进行某种市场研究并得出数字,但精益创业方法论指出,通常您不知道这些问题的答案,您只是猜测,通常您猜错了。
因此,假设您无法真正了解任何事情,您应该了解如何使您的系统可扩展,以便让您支持任何数量的并发用户和任何数据大小。
但是,您可能想要了解有关您当前使用的基础架构的统计信息。 这就引出了第二点。
JMeter是一种用于测试并发负载的好工具,您没有说明您的服务器使用了什么语言,但是JMeter建议使用Java,在这种情况下,除了其他所有内容之外,您还应该了解内存限制和垃圾回收时间。
假设使用无状态(或至少会话粘性)分布式系统,您将希望测试单个“典型”服务器以获得给定数量的并发请求的响应时间和故障率。 从小开始,然后随着结果仍然可接受而增加(即,对于100个并发请求,50ms的响应时间和0个失败的响应是可以接受的,1000个并发请求会给您带来300ms的延迟和5个失败的响应,而在5000个并发请求时,您将达到500ms和15个失败的响应,这是您认为可以接受的最大延迟和最大故障数量)
您可能想要更改上述的“典型”并查看不同基础架构的结果如何。今天云服务的优秀之处在于,您可以轻松地转到EC2并获得任何类型的基础架构,而只需很少的投资即可测试您的结果,以便您知道需要购买什么(假设您不想留在EC2上托管)。 您还可以使用EC2托管JMeter实例(我曾经在一篇文章中读到过,但不记得是在哪里了,请通过谷歌搜索),并且您可以使用少于200美元/测试发出许多并发请求。

0
但我们没有任何需求。
构建性能测试是一个微观的开发工作。如果没有需求,你将不知道要将什么构建到你的测试中,从哪些业务流程包括到每种类型的用户有多少,以及什么被认为是可接受的响应时间。如果你正在对现有应用程序进行性能测试,那么你很可能有交易数据(和可能的转换数据)可供现有用户基础使用。希望这些信息是历史性的,这样你就可以观察随时间的增长。为你的负载计划18个月,最好是36个月。
你需要让业务股东参与需求。这个应用程序是为了满足业务需求而建立的,某人将根据此部署的成功或失败而被降级、解雇、晋升或奖金。找到那个人!任何一个将在这个应用程序方面获得奖金或职位的人也很可能非常了解业务需求和期望。

如果这是您第一次参与性能测试工作,那么最好雇用该领域的专家。大约85%的技能是与工具无关的,剩下的部分由您的测试工具填补。这85%在需求、监控、分析和报告部分至关重要。成为性能测试人员与其他许多学科类似,最佳的发展路线是确认核心技能,接受有关流程、方法和工具的正式指导,然后进行实习。您是否见过一个不熟练的理发师剪出的发型或一个没有砌筑培训的人建造的砖墙?如果是,那么您就明白了如果您刚刚被投入到这个角色中,性能测试将会有什么价值。

请为项目聘请经验丰富的领导者。像新生儿小狗一样跟随他们。做详细的笔记。提出很多问题。确保您可以维护他们为未来使用开发的内容,并理解为什么开发了这些内容。

否则,如果没有需求,你就有可能走上“艺术测试”的道路。艺术测试是与需求和/或生产数据观察无关的性能测试。在许多环境中,只剩下一两个星期进行性能测试,而且项目不能出现任何延误,也没有时间修复任何问题。简而言之,它变成了一个低价值的勾选框。
哦,还要检查上传时的实际并发日志。你可能会惊喜地发现一些东西。我曾经花费很多时间与某人讨论他们的网站有10000个并发用户,但当查看日志时,平均会话持续时间不到十分钟,10分钟内的最大并发仅有几百个用户。

0

根据我的负载测试经验,您可以考虑以下解决方案:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接