在上一篇《LoadRunner下載功能點(diǎn)腳本(方法一)》中,實(shí)現(xiàn)的腳本僅是錄制下載功能點(diǎn)的腳本,現(xiàn)在性能需求的場(chǎng)景更改如下:
性能需求:對(duì)系統(tǒng)某頁(yè)面中,點(diǎn)擊下載并將下載文件保存到本地電腦的功能做并發(fā)測(cè)試,以獲取在并發(fā)下載文件的情況下系統(tǒng)的性能指標(biāo)。
我們知道,LoadRunner錄制的腳本是根據(jù)協(xié)議啟用代理模擬瀏覽器發(fā)送請(qǐng)求,記錄對(duì)服務(wù)器響應(yīng)的相關(guān)數(shù)據(jù),因此,保存下載文件需要手動(dòng)編寫代碼插入在下載腳本前后。
代碼如下:
download()
{
? ? //文件大小int flen;
? ? //響應(yīng)數(shù)據(jù)內(nèi)容大小long? filedes;
? ? //文件名charfilename[1024];
? ? //設(shè)置頁(yè)面接受最大的字節(jié)數(shù),該設(shè)置應(yīng)大于下載文件的大小 web_set_max_html_param_len("1024000");
? ? //將響應(yīng)信息存放到fcontent變量web_reg_save_param("fcontent",
? ? ? ? "LB=",
? ? ? ? "RB=",
? ? ? ? "Ord=1",
? ? ? ? "Search=Body",
? ? ? ? LAST);
? ? lr_think_time(3);
? ? lr_start_transaction("download");
? ? web_url("forum.php_6",
? ? ? ? "URL=http://127.0.0.1/Discuz/upload/forum.php?mod=attachment&aid=M3xlZDM3YzJhMXwxNDQzODQxMjI3fDN8NA%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=t7.inf",
? ? ? ? "Mode=HTML",
? ? ? ? LAST);
? ? lr_end_transaction("download",LR_AUTO);
? ? //獲取響應(yīng)的全部?jī)?nèi)容,作為文件內(nèi)容保存flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
? ? //生成隨機(jī)的文件名稱,便于并發(fā)strcpy(filename,"d:\\test\\郵購(gòu)訂單_");
? ? strcat(filename,lr_eval_string("{Num}"));
? ? strcat(filename,".PDF");
? ? if(flen >0){
? ? ? ? //以寫方式打開文件? if((filedes = fopen(filename,"wb")) == NULL){
? ? ? ? ? ? lr_output_message("Open File Failed!");
? ? ? ? ? ? return-1;
? ? ? ? }
? ? ? ? //寫入文件內(nèi)容fwrite(lr_eval_string("{fcontent}"), flen,1, filedes);
? ? ? ? //關(guān)閉文件? ? ? ? fclose(filedes);
? ? }
? ? return0;
}
此時(shí),回放腳本后,發(fā)現(xiàn)在本地電腦D:\test目錄下生成下載文件,如圖:
