如何为网站设置负载/压力测试? [关闭]

Posted

技术标签:

【中文标题】如何为网站设置负载/压力测试? [关闭]【英文标题】:How to set up a load/stress test for a web site? [closed] 【发布时间】:2009-12-02 16:42:15 【问题描述】:

我突然接到了对我们公司网站进行压力/负载测试的任务,对此一无所知。我在 Google 上搜索“如何对网站进行负载测试”的每一次搜索都会返回各种公司和软件来实际进行负载测试。

现在我更感兴趣的是如何实际设置负载测试,例如在负载测试之前我应该​​考虑什么、我应该针对我的网站中的哪些页面进行负载测试以及我在做什么在做测试时想要监控。我们的网站位于一个多层系统上,并配有一个单独的数据库服务器(IIS 7 Web 服务器、SQL Server 2000 db)。我想我想同时监控 Web 服务器和数据库服务器以测试负载,但是在设置场景以对 Web 服务器进行负载测试时,我必须使用查询数据库的页面来查看数据库服务器上的任何负载同一时间。

Web 服务器和数据库服务器通常是同时测试还是单独测试?

如您所见,我对整个操作一无所知,因此任何关于如何进行此操作的煽动都会非常有帮助。

仅供参考,我一直在修补 Pylot,并且能够针对我们的网站创建和运行一个场景,但我不确定我应该在结果中寻找什么,或者我创建的场景是否是值得衡量的场景我们的网站。

提前致谢。

【问题讨论】:

见***.com/questions/340564/…,它解释了如何使用一个名为Selenium的Firefox插件来实现它。 我想补充一点,如果您使用 Selenium 路线,请查看 browsermob.com 作为一种让数百个 Selenium 实例同时协调并抨击您的网站的方法。注意:我是 BrowserMob 和 OpenQA 的创始人,也是 Selenium RC 的创建者之一。 【参考方案1】:

查看JMeter。我发现开始使用它有点棘手,但是一旦你设置好测试,它就很容易运行。他们有一个关于如何设置分布式测试的教程here。

【讨论】:

【参考方案2】:

一般来说,负载测试将在具有各种用户负载的常见场景中运行。 因此,例如,您可以设置一个测试,其中 50 个用户每秒登录 10 分钟,另一个数字从 5 个用户/秒开始并扩展到 1000 个/秒或任何对您有意义的数字您的网站。编辑:这个想法是测试您的实际应用程序在所有层使用时的行为。如果您要进行负载测试,一定要在一个好的工具上投入(时间和或美元)。

【讨论】:

【参考方案3】:

这里列出了可以帮助您入门的工具。您想先阅读它是对的,压力测试可能会变得复杂。

http://www.softwareqatest.com/qatweb1.html

【讨论】:

【参考方案4】:

从这个问题的答案可以看出,有很多程序可用于负载测试。根据我的经验,我发现Siege 是我个人的最爱。它很简单,提供了进行负载测试所需的大部分选项。这是一个示例用法:

seige -c 10 -t 1M http://www.google.com

这将在 1 分钟内向 google.com 发送 10 个并发请求。如果您想测试多个页面,您还可以提供一个包含 url 列表的文件。

请注意,当您有一个或一组要测试的 url 时,像 seige 这样的工具是合适的。如果您想测试更复杂的流程(例如,用户登录、提交条目、注销),那么您将需要使用 selenium 之类的东西。

【讨论】:

您无法使用 seige 测试 SPA。你需要一个虚拟浏览器来做到这一点【参考方案5】:

现有网站或替代网站的第一步是收集和分析。统计数据。

如果超出中心限制,则首次建模预测毫无意义。 (无论如何,它们都会以严格的方式出现)

在所有情况下,您都应该与 NOC 的某个人一起工作。原因太明显了,这里支持英雄方法的线程对您的公司不利;尤其是当你边走边学的时候。并不是说你不能成为英雄,但众所周知,NOC 对在决策会议上丢掉的业绩数据好战。

【讨论】:

【参考方案6】:

首先,获得一个像Neoload 这样的网络压力工具。

对许多用户活动进行建模,并使您的测试偏向于与预测的用户模式相对应,然后按您认为合适的方式扩大负载。对数据库运行查询并测量响应时间对用户体验一无所知。相反,通过对用户活动进行建模,您可以准确衡量您的服务器/系统在实际负载下将如何响应,因为这就是您将要生成的内容。

用户活动建模可能会变得相当复杂,但 Neoload 等良好的压力工具可以让您对任何机器访问服务器的确切行为进行密切建模。理想情况下,您应该像往常一样制作网络流量,因此如果您有负载均衡器,请确保使用它。

【讨论】:

你看他们的价格了吗?【参考方案7】:

我发现 Visual Studio 测试版更易于测试(尽管它不是免费的)。您可以将浏览会话记录为单个测试,这样您就可以轻松地从您的网络服务器和数据库中读取 perfmon 统计信息。

您应该采取的第一步是查看您的 IIS 日志以了解那里发生了什么。 Log Parser 2 is the tool 我会使用应该将 IIS 日志导入数据库。

查询可以让您了解峰值负载。

下一步是为测试制定一两个目标。您是否需要确保网站能够处理每秒 X 个请求的单个页面或两个页面上的峰值负载?

您是否打算增加网站的客户,在这种情况下,采用当前的 IIS 日志加载和论坛网络测试,可以模拟该范围的页面请求,但为预期的并发用户加载。

如果您打算更改站点上的功能,您可以进行基线负载测试并比较站点更改后的性能。

负载测试的真正目标是证明应用程序和硬件能够处理业务认为可接受的目标负载,并且仍然在合理的时间内返回页面。

【讨论】:

我们是 MS 合作伙伴,因此我们可能已经可以使用该工具。谢谢。为了回答您的一些问题,我没有给出任何具体的测试目标,所以我想我只是在当前配置下对系统进行基准测试。 Sweet,将 IIS 日志活动分解为一组 Web 测试,创建一个负载测试,以获得大约正确的测试比例。到 2010 年,它真的很棒,即使在 Beta 版中也能正常工作。

以上是关于如何为网站设置负载/压力测试? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在线压力测试,测试网站并发量

在线压力测试,测试网站并发量

压力测试、负载测试和并发测试有啥区别?

压力测试VS性能测试

网站性能ab命令压力测试

Web性能压力测试工具之WebBench详解