性能需求:對系統某頁面中,點擊下載功能做並發測試,以獲取在並發下載文件的情況下系統的性能指標。
備注:頁面上點擊下載時的文件可以是word、excel、pdf等。
問題1:錄制完下載的場景后,發現腳本里面並沒有包含下載的腳本或url?
解決步驟:
1. 在IE瀏覽器上打開需要測試功點的頁面,點擊下載鏈接前啟用httpWatch錄制下載功能點,然后查看Stream下面服務器返回的響應信息,一個HTTP響應代表服務器向客戶端回送的數據,它包括:
一個狀態行、若干消息頭、以及實體內容 ,其中的一些消息頭和實體內容都是可選的,消息頭和實體內容之間要用空行隔開。
如圖:只需要關注服務器響應的content-type=application/octet-stream

2. 設置LoadRunner錄制選項-HTTP屬性-高級-非資源,在里面添加非資源內容類型:application/octet-stream ,如圖:

3. 添加完后,再次重新錄制腳本,在腳本里面就會有mod=attachment&參數的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()函數模擬發送下載的請求,服務器響應直接返回需要下載文件里面的內容,這是通過content-type=application/octet-stream來決定的。所以,LoadRunner在回放腳本的時候,其實已經對服務器產生下載功能的效果了。
問題2:當設置LoadRunner常規選項-顯示-勾選show browser during replay時,回放運行腳本,運行時查看器的窗口會彈出下載並保存的提示框,如何解決?
如圖:

問題分析:
1、 運行回放下載功能腳本出現此提示的原因是服務器響應返回的只有二進制文件,並且content-type=application/octet-stream才會產生,文本文件不會出現;查看快照如圖:

2、 保存的文件格式是UNK,其實保存在本地電腦上,重命名下載文件的格式后,再打開該文件,會發現文件內容就是下載的文件;
3、 不保存或者取消彈出的UNK文件窗口,再次運行vugen時會提示“default result directory is locked”;
解決方法:
把去掉勾選“show browser during replay”即可。
