2014-03-03 81 views
0

我已閱讀負載測試和可用於在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只有登錄時纔可以訪問?

回答

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

讓它成爲任何其他工具,但我的問題是如何加載測試特定的頁面,而無需實際登錄到Web應用程序?

簡短的回答是:不,你不能。如果可以的話,那麼應用程序會有一個很大的安全漏洞,對吧?

您需要登錄,獲取授權令牌/會話ID(可能是cookie),並在將來的請求中發送該令牌。

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測試平臺不僅使與網站的互動更加容易,它可以模擬大量的客戶端 - 例如,你可以用一個CSV文件,擁有50000用戶餵它/密碼組合。

如果您有時間,您可能想在許多測試場景中查看很多blogs

相關問題