LoadRunner使用記錄

使用LoadRunner搞了三個星期的測試,現記錄一下

LoadRunner主界面


圖1 LR主界面

在使用LoadRunner測試的時候兩個流程①編寫LR腳本,腳本儘量先錄製,然後再進行一些修改,如果不能錄製的話,那麼只能自己動手寫了。②運行腳本進行測試。如上圖所示。

1.腳本編寫

點擊圖1中的“①”處,進入如下頁面,然後點擊“File->New..”,新建一個腳本


選擇自己要使用的協議,我們使用的是“Window Sockets”協議,下面所有的闡述也都是基於這種協議的。


選擇協議後,進入到腳本主頁面


在腳本的主頁面,我們能看到左側的四個文件,vuser_init主要用於定義一些變量、某些連接的初始化等;Action是我們業務處理代碼的編寫的主要陣地;vuser_end是一些收尾工作,關閉連接釋放資源等等;data.ws存放一些緩存區的大小,這個文件也是必備的,不是可有可無的呦。緩存區的大小一定要和接受到的消息大小做相對應的修改。


開始編寫腳本,在編輯器中輸入“lr_”,”lrs_”,IDE會給我們lr函數的一些提示,我們根據函數的名字基本上就知道函數的功能了。


編寫一個HelloWorld吧。這個簡單的HelloWorld例子可以用來進行一些簡單的測試,比如截取字符串、字符串拼接等等,因爲腳本大了畢竟不太方便。


2.運行腳本進行測試

選擇要測試腳本然後添加到右邊的藍色框中,點擊OK


雙擊“Initialize“然後彈出一個框,我們選擇同時啓動


雙擊”Start Vusers“,填入啓動的用戶數,我們啓動100個用戶


雙擊”Duration“,填寫測試程序進行多長時間,通常我們直接就直接加1,意思就是運行1天,這樣省事


然後直接切換到”Run“Tab,然後點擊”Start Scenario“就可以測試了,然後就可以分析各種圖表了,具體的就不分析了。


3.簡單總結一些這3個星期中遇到的幾個印象比較深刻的問題吧。

(1)data.ws中設置消息緩存區的大小



213bit時間戳字段

想要在LR中獲取13bit時間戳時,有問題,最後只能通過一個字符串的拼接來實現的。

int curtime ;

time(&curtime);

aa=lr_eval_string("<NewParam_1>");

if (strlen(aa)>1) {strncpy(dest,aa+20,3);}

        sprintf(utc,"%ld",curtime);

memcpy(utc+10,dest,3); 

lr_output_message("cur

不能直接獲取13bit時間戳的原因:在32bit Win機器上,C中的intlong都是4個字節。

3LR專用函數錯誤認知

lrs_set_send_timeout(1240,0);  //爲發送套接字數據設置超時,Sets a timeout for sending data on a socketvoid lrs_set_send_timeout ( long sec, long u_sec );

lrs_set_recv_timeout2(1024,0);  

兩個函數的作用如下:

lrs_set_recv_timeout:執行lrs_receive命令後,等待服務器返回消息的超時時間,即:服務器的響應時間。

lrs_set_recv_timeout2:創建連接成功,接收到服務器返回的消息後,獲取匹配消息的超時時間。lrs_receive接收到數據後,會和預期的數據長度進行比較,如果長度不匹配,它將重新從套接字上讀取數據,直到超時爲止。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章