Python脚本负载测试web pag

2024-04-28 11:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个网页的测试加载。我想用多线程的python来实现。 第一个POST请求将登录用户(设置cookies)。

然后我需要知道服务器可以同时执行同一POST请求的用户数量。 所以我正在考虑生成线程,在其中请求将在循环中发出。

我有几个问题: 一。是否可以同时运行1000-1500个请求?我的意思是它不会让系统慢下来,所以不再可靠了吗? 2。带宽限制呢?要使此测试可靠,通道应该有多好?

测试站点所在的服务器是Amazon EC2,脚本将从另一个服务器(Amazon也是)运行。

谢谢!


Tags: 用户服务器脚本网页amazon站点系统ec2
2条回答

变量太多。1000在同时。。。不,在同一秒。。。可能吧。带宽很可能是瓶颈。这是最好的实验解决办法。

当运行多个线程时,cPython不会从多个内核中获得优势。这意味着,基本上,你将只有一个核心做测试工作。

有专门的工具来做你想做的事。我建议两个:

FunkLoad是一个用Python编写的功能性和负载web测试程序,其主要用例是:

  • web项目的功能测试,以及回归测试。
  • 性能测试:通过加载web应用程序和监视 你的服务器它帮助你找出瓶颈,给出详细的 绩效评估报告。
  • 加载测试工具以暴露在粗略测试中不会出现的错误, 比如容量测试或者寿命测试。
  • 压力测试工具来压倒web应用程序资源和测试 应用程序可恢复性。
  • 通过编写任何web重复任务的脚本来编写web代理,比如检查 一个网站还活着。

Tsung是一个开源的多协议分布式负载测试工具

The purpose of Tsung is to simulate users in order to test the scalability and performance of IP based client/server applications. You can use it to do load and stress testing of your servers. Many protocols have been implemented and tested, and it can be easily extended. WebDAV, LDAP and MySQL support have been added recently (experimental).

It can be distributed on several client machines and is able to simulate hundreds of thousands of virtual users concurrently (or even millions if you have enough hardware ...).


如果您决定编写自己的工具,您可能需要使用Python的multiprocessing module,因为它允许您使用多个内核。您还应该查看Twisted,因为它可以让您在线程数量有限的情况下轻松处理多个套接字。这比为每个套接字生成一个新线程要好得多。

你和Amazon EC2一起工作,所以我建议你使用Tsung。你可以租用十几台多核服务器几个小时,然后用Tsung运行一些非常重的负载测试。在这种配置下它的伸缩性非常好。

至于带宽,通常不是问题,但这取决于应用程序。在执行负载测试时,必须密切监视所有资源。

相关问题 更多 >