我已閱讀負載測試和可用於在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「只有登錄時纔可以訪問?
我已閱讀負載測試和可用於在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「只有登錄時纔可以訪問?
您應該首先手動獲取授權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。
讓它成爲任何其他工具,但我的問題是如何加載測試特定的頁面,而無需實際登錄到Web應用程序?
簡短的回答是:不,你不能。如果可以的話,那麼應用程序會有一個很大的安全漏洞,對吧?
您需要登錄,獲取授權令牌/會話ID(可能是cookie),並在將來的請求中發送該令牌。
如果您想要測試大量的併發虛擬客戶端,每個虛擬客戶端都進行登錄和一系列操作,您可能需要嘗試一些可模擬真實用戶的性能測試工具。在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。