天天看點

loadrunner 腳本開發-檔案下載下傳

腳本開發-檔案下載下傳

by:授客 QQ:1033553122

下載下傳簡介

對 HTTP協定來說,無論是下載下傳檔案或者請求頁面,對用戶端來說,都隻是發出一個GET請求,并不會記錄點選後的“儲存”、“另存為操作”。

如下,點選頁面中tar.gz壓縮包,用工具可以清楚的看到,用戶端僅是發起了一個GET請求,請求擷取點選的資源。接着伺服器傳回包含請求資源響應消息

loadrunner 腳本開發-檔案下載下傳
loadrunner 腳本開發-檔案下載下傳

LoadRunner記錄了用戶端發出的對檔案的請求,并能夠收到伺服器傳回的内容。是以,我們要做的額外工作就是“儲存”、“另存為”---可以通過關聯的方法擷取伺服器傳回的内容,并寫入檔案儲存即可。

注意:這裡的要儲存的内容為http的消息主體,也就是上述兩箭頭垂直相交形成區域的内容。

具體執行個體

如下,通路圖示頁面,并下載下傳紅色方框框選的壓縮包

loadrunner 腳本開發-檔案下載下傳
loadrunner 腳本開發-檔案下載下傳

腳本主要由以下四個action組成,其中vuser_init,vuser_end的内容為預設值,未存放錄制内容:

vuser_init

download_page

download_file

vuser_end

download_page,download_file的具體代碼如下

//

通路下載下傳頁面

download_page()

{

web_url("dist",

"URL=http://tsung.erlang-projects.org/dist/",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t11.inf",

"Mode=HTML",

LAST);

return 0;

}

//錄制下載下傳操作

download_file()

   int

file_size;   

檔案大小

//fwrite緩沖區大小

   long

file_handle = NULL;  

檔案句柄

如果要儲存的資料超過1024個位元組,使用以下函數設定參數大小,保證參數可容納要儲存檔案的大小

web_set_max_html_param_len("10000");

//将響應資訊存放到

file_content參數

web_reg_save_param("file_content", "LB=", "RB=", "SEARCH=BODY", LAST);

web_link("idx-tsunami-0.1.1.tar.gz",

"Text=idx-tsunami-0.1.1.tar.gz",

"Snapshot=t12.inf",

//擷取響應檔案大小

file_size =

web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);

if(file_size > 0)     

//以“二進制+寫”的方式打開檔案(如下,在d盤根目錄下建立idx-tsunami-0.1.1.tar.gz檔案

if((file_handle = fopen("d:\\idx-tsunami-0.1.1.tar.gz", "wb")) ==

NULL)

lr_output_message("檔案操作失敗!");

return -1;

//寫入檔案内容

fwrite(lr_eval_string("{file_content}"), file_size, 1,

file_handle);

//關閉檔案

fclose(file_handle);

注意:

1.如下,從BODY,即消息主體中查找,不指定左右邊界,即查找所有消息主體的内容

2.上述的web_link手工改成如下的web_url也是可以的。

web_url("下載下傳idx-tsunami-0.1.1.tar.gz",

  "URL=http://tsung.erlang-projects.org/dist/idx-tsunami-0.1.1.tar.gz",

"RecContentType=application/x-gzip",

"Referer=http://tsung.erlang-projects.org/dist/",

解說:

1.

"URL=http://tsung.erlang-projects.org/dist/idx-tsunami-0.1.1.tar.gz",

此處的URL為指定資源下載下傳位址,通常通過右鍵資源連接配接-->屬性,可看到,如下圖

loadrunner 腳本開發-檔案下載下傳
loadrunner 腳本開發-檔案下載下傳

2."Referer=http://tsung.erlang-projects.org/dist/",

這裡的Referer指下載下傳資源所引用的頁面,Referer是HTTP

header的一部分,當浏覽器向web伺服器發送請求的時候,一般會帶上Referer,告訴伺服器我是從哪個頁面連結過來的,伺服器籍此可以獲得一些資訊用于處理。

loadrunner 腳本開發-檔案下載下傳
loadrunner 腳本開發-檔案下載下傳

作者:授客

QQ:1033553122

全國軟體測試QQ交流群:7156436

Git位址:https://gitee.com/ishouke

友情提示:限于時間倉促,文中可能存在錯誤,歡迎指正、評論!

作者五行缺錢,如果覺得文章對您有幫助,請掃描下邊的二維碼打賞作者,金額随意,您的支援将是我繼續創作的源動力,打賞後如有任何疑問,請聯系我!!!

           微信打賞                       

支付寶打賞                  全國軟體測試交流QQ群  

loadrunner 腳本開發-檔案下載下傳
loadrunner 腳本開發-檔案下載下傳
loadrunner 腳本開發-檔案下載下傳