6

有哪些好的自动化工具用于负载测试(压力测试)Web 应用程序,它们使用 HTTP 网络数据包的记录和重放?

我知道市场上有许多负载测试工具可以记录和重放 HTTP 网络数据包。但这些不适合我的目的,因为:

  • HTTP 数据包格式在我们的应用程序中经常变化(例如,当我们优化 AJAX 调用时)。我们不想仅仅因为 HTTP 数据包格式有细微的变化就调整所有的测试脚本。

  • 我们的测试团队不需要知道任何关于我们应用程序的内部信息来编写他们的测试脚本。然而,重放 HTTP 数据包的工具要求团队了解 HTTP 请求和响应的格式,以便他们能够调整重放 HTTP 数据包的详细信息(例如用户名)。

我正在寻找的自动化负载测试工具应该能够让测试团队编写“黑盒”测试脚本,例如:

  • 在 URL http://...调用网页。
  • 首先,在文本字段XXX中输入XXX
  • 然后,按下按钮XXX
  • 等到收到来自 Web 服务器的响应。
  • 验证文本字段XXX现在是否包含文本XXX

该工具应该能够模拟多达 1000 个用户,并且应该与使用 ASP.NET 和 AJAX 的 Web 应用程序兼容。

4

5 回答 5

2

我发现 JMeter 非常有用,它还具有记录用例的记录功能,因此您不必手动指定每个 GET/POST,而是“单击”一次用例,然后让 JMeter 重复它。
http://jmeter.apache.org/

于 2010-06-04T07:20:41.677 回答
1

许可证可能很昂贵(如果您没有 MSDN),但 Visual Studio 2010 终极版有一套很棒的负载和压力测试工具,可以按照您的描述进行操作。您可以在这里免费试用 90 天。

于 2010-06-04T07:13:27.203 回答
0

有几种方法;然而,我曾遇到过不得不推出自己的负载生成实用程序的情况。

就您的测试脚本而言,它涉及:

  • 向 http://表单输入页面发送 GET 请求(仅检查是否给出 200 响应)
  • 向 http://表单提交页面发送 POST 请求,其中包含为文本 XXX 预先生成的键/值对,并对响应执行正则表达式检查

除非您的网页是复杂的 AJAX,否则无需“模拟按钮按下” - 这由 POST 请求处理。

鉴于您的测试仅包含两步过程,应该有几个自动加载包可以做到这一点。

我以前用httperf对一个大型网站进行负载测试:它可以模拟一个由多个请求组成的会话,并且可以同时模拟大量用户(即会话)。例如,如果您的网站从主页生成了一个会话 cookie,您可以发出第一个请求,然后 httperf 将使用该 cookie 进行后续请求,直到完成提供的请求列表。

于 2010-06-04T07:17:02.823 回答
0

PushToTest.com 的 TestMaker 可以运行录制的脚本,例如 Selenium 以及许多不同的语言,例如 HTML、Java、Ruby、Groovy、.Net、VB、PHP 等。它具有通用的报告基础架构,您可以在测试中创建负载实验室或将 EC2 等云测试环境用于虚拟测试实验室。

他们每月提供有关使用开源测试工具的免费网络研讨会,下周二还有一个。

http://www.pushtotest.com

于 2010-06-04T13:16:41.693 回答
0

那么http://watin.sourceforge.net/呢?

于 2010-06-05T15:39:34.827 回答