性能需求:對系統(tǒng)某頁面中,點擊下載功能做并發(fā)測試誊垢,以獲取在并發(fā)下載文件的情況下系統(tǒng)的性能指標。
備注:頁面上點擊下載時的文件可以是word殃饿、excel壁晒、pdf等业栅。
問題1:錄制完下載的場景后,發(fā)現(xiàn)腳本里面并沒有包含下載的腳本或url携取?
解決步驟:
1. ?在IE瀏覽器上打開需要測試功點的頁面雷滋,點擊下載鏈接前啟用httpWatch錄制下載功能點,然后查看Stream下面服務器返回的響應信息晤斩,一個HTTP響應代表服務器向客戶端回送的數(shù)據(jù),它包括:
一個狀態(tài)行实愚、若干消息頭腊敲、以及實體內(nèi)容 维苔,其中的一些消息頭和實體內(nèi)容都是可選的,消息頭和實體內(nèi)容之間要用空行隔開没宾。
如圖:只需要關注服務器響應的content-type=application/octet-stream
2.設置LoadRunner錄制選項-HTTP屬性-高級-非資源榕吼,在里面添加非資源內(nèi)容類型:application/octet-stream 勉失,如圖:
3.添加完后乱凿,再次重新錄制腳本徒蟆,在腳本里面就會有mod=attachment&參數(shù)的url請求型型,腳本代碼如下:
download()
{
lr_think_time(3);
lr_start_transaction("download");
web_url("forum.php_5",
"URL=http://127.0.0.1/Discuz/upload/forum.php?mod=attachment&aid=M3wxMTZiMzFhOXwxNDQzODQ0ODc2fDN8NA%3D%3D",
"Resource=0",
"RecContentType=application/octet-stream",
"Referer=http://127.0.0.1/Discuz/upload/forum.php?mod=viewthread&tid=4&extra=page%3D1",
"Snapshot=t6.inf",
"Mode=HTML",
LAST);
lr_end_transaction("download",LR_AUTO);
return 0;
}
此時闹蒜,錄制下載的腳本有了,但是LoadRunner回放運行腳本后姥闪,并沒有像手工操作那樣真實的把文件下載下來筐喳,為什么?
測試場景分析:一般我們手工在頁面上點擊下載鏈接時荣月,瀏覽器會彈出下載保存框梳毙,下載并保存到本地電腦里面,而使用LoadRunner錄制這種場景時堂氯,是不會錄制到瀏覽器彈出下載保存框并保存到本地電腦的步驟的咽白,當點擊某個下載文件鏈接時鸟缕,LoadRunner錄制的腳本里面只會以web_url()函數(shù)模擬發(fā)送下載的請求,服務器響應直接返回需要下載文件里面的內(nèi)容授段,這是通過content-type=application/octet-stream來決定的番甩。所以,LoadRunner在回放腳本的時候窍育,其實已經(jīng)對服務器產(chǎn)生下載功能的效果了宴胧。
問題2:當設置LoadRunner常規(guī)選項-顯示-勾選show browser during replay時,回放運行腳本乞娄,運行時查看器的窗口會彈出下載并保存的提示框显歧,如何解決?
如圖:
問題分析:
1溶其、 ?運行回放下載功能腳本出現(xiàn)此提示的原因是服務器響應返回的只有二進制文件瓶逃,并且content-type=application/octet-stream才會產(chǎn)生束铭,文本文件不會出現(xiàn)契沫;查看快照如圖:
2懈万、 ?保存的文件格式是UNK会通,其實保存在本地電腦上,重命名下載文件的格式后涕侈,再打開該文件煤辨,會發(fā)現(xiàn)文件內(nèi)容就是下載的文件众辨;
3、 ?不保存或者取消彈出的UNK文件窗口鹃彻,再次運行vugen時會提示“default result directory is locked”;
解決方法:
把去掉勾選“show browser during replay”即可虚婿。