我已经阅读了有关负载测试以及可用于在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”只有在您登录时才能访问?
答案 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。