加载测试特定页面

时间:2014-03-03 14:38:49

标签: apache2 load-testing stress-testing

我已经阅读了有关负载测试以及可用于在Web应用程序上实现它的工具。 我正在使用 apache ab 。让它成为任何其他工具,但我的问题是如何在不实际登录Web应用程序的情况下加载测试特定页面?

当您要测试的真实时,如何通过简单地使用“ab -k -n 500 -c 10 http://abc.xyz.com/来了解每个页面的响应时间“ab -k -n 500 -c 10 http://abc.xyz.com/index.html只有在您登录时才能访问?

3 个答案:

答案 0 :(得分:1)

您应首先手动获取授权Cookie(例如,使用curl),然后将其添加到标头中。我们对大多数负载测试任务使用Yandex.Tank。以下是您的案例的load.ini示例:

[phantom]
address = abc.xyz.com
rps_schedule = line (1, 120, 15) const (120, 10m)
header_http = 1.1
headers = [Host: abc.xyz.com]
  [Connection: close]
  [Cookie:<here goes auth cookie>]
uris=/index.html

我认为你也可以用ab或jmeter做类似的事情。

答案 1 :(得分:1)

  

让它成为任何其他工具,但我的问题是如何在不实际登录Web应用程序的情况下加载特定于测试的页面?

简短的回答是:不,你不能。如果可以,那么应用程序会有一个很大的安全漏洞,对吗?

您需要登录,获取授权令牌/会话ID(可能是cookie)并在将来的请求中发送。

答案 2 :(得分:0)

如果要使用大量并发虚拟客户端进行测试,每个客户端都进行登录和一系列操作,您可能需要尝试一些可以模拟真实用户的性能测试工具。在NetGend测试平台上,以下示例脚本将通过填写html表单来模拟用户并执行一些操作。 (NetGend使用javascript语法)

quickForm("http://www.example.com/login?", ["jsmith", "abc123"]);
//do action after login
//get a list of productIDS
prodId = randElement(productIDS);
action(http,"http://www.example.com/view?product=${prodId}");

NetGend测试平台不仅可以更轻松地与网站进行交互,还可以模拟大量客户端 - 例如,您可以使用带有50,000个用户/密码组合的csv文件来提供它。

如果您有时间,可能需要在许多测试方案中查看许多blogs