loadrunner11的移動端性能測試之腳本優化


測試步驟之腳本優化(Script)

看到這里,是不是疑惑錄制好的腳本還需要優化嗎,答案是肯定的。

優化概要

腳本優化包括插入注釋(Comment),插入事務(Transaction),插入檢查點(Check),插入集合點(Rendezvous),腳本參數化(Parameter),關聯技術(Correlation)等等。

打開VuGen,相關設置如下

 

 

進入到腳本頁(頂部的Script按鈕),就能看到錄制到action部分的腳本了,如下圖所示

 

 

上面是我錄制優化的登陸模塊腳本,學過編程語言就大概能知道,LR腳本里都是些函數組成的,lr_output_message(日志中打印輸出,類似C中printf函數),web_custom_request(請求函數,就是模擬用戶點擊按鈕操作,點擊一次就提交一次這種請求),web_reg_save_param_ex(注冊函數,通俗點就是在服務器返回數據中查找並保存特定的數據)等。

不管怎樣,錄制成功后,首先得回放腳本一下,看看有沒有問題,沒問題就根據需求,真實環境進行腳本優化。

插入注釋(Comment)    

插入注釋為了使腳本方便易懂,很簡單,單行在前面加上//即可,多行注釋用/* ....(此處是腳本).....*/。

 

 

插入事務(Transaction)

插入事務也很快,就是判斷一段操作的時間,記住事務插入在集合點之后並且是成對出現的,如lr_start_transaction("登錄")和lr_end_transaction("登錄",LR_AUTO),事物名要相同,一般情況下結束事物的LR_AUTO為自動判斷事物是否成功,沒遇到報錯的頁面基本都是成功的,所以需要通過檢查點加以判斷。

 

 

插入集合點(Rendezvous)

插入集合點(lr_rendezvous),一般做並發測試是需要集合點的,如做並發登陸,插入后可在場景設計中設置,當設置的虛擬用戶數全部運行至集合點后,再同時運行,腳本如下圖:

 

插入檢查點(Check)

上面說過事物需要檢查點來加以判斷,拿登錄來說,一般登錄成功就會在首頁顯示“歡迎你,XX用戶”,是不是找到"歡迎你"三個字就說明登錄成功了呢,於是檢查點就這么來了。自動添加我就不說了,手動插入如下:

web_reg_find(

                   "Text=\"respCode\": \"0\"",

                    "SaveCount=Ok_Count",

                    LAST);

         web_custom_request(

        …………            //內容省略

                   LAST);

         lr_output_message(lr_eval_string ("Ok_count查找respCode值並計數"));

         if(atoi(lr_eval_string("{Ok_Count}"))>0)

               lr_output_message("-----------------------------成功登錄!-----------------------------",LR_PASS);

         else

               lr_output_message("-----------------------------登錄失敗!------------------------------",LR_FAIL);

檢查點常用函數:web_reg_find,從服務器返回的數據查找,Text是查找的內容,SaveCount是計數變量名,此處判斷SaveCount的值是否大於0,大於0就表示找到了返回值,執行LR_PASS,事物成功,即表示登錄成功。

注:lr_eval_string("{Ok_Count}")獲取返回參數Ok_Count的值,類型為char,atoi(lr_eval_string("{Ok_Count}"))把字符型轉換成整型。

手動關聯(Correlation)

在回放腳本總是不成功,查找原因,是登錄驗證碼的問題,這個是服務器返回過來的,錯了就不能登錄了。不能自己輸,開發又不能屏蔽,該怎么處理呢?對於服務器返回的動態數據,進行查找並保存在一個參數中,就叫關聯技術。同樣的自動關聯就不說了,手動關聯如下:

web_reg_save_param_ex(

                   "ParamName=CSRule_1",

                   "LB=\"code\":",

                   "RB=}}}",

                   "Ordinal=1",

                   "SaveOffset=1",

                   "SaveLen=6",

                   SEARCH_FILTERS,

                   LAST);

查看響應日志如下:"mobileRespHeader": {"respCode": "2000","respDesc": "鎴愬姛"},"mobileRespBody": {"data": {"code":"MKLJ39"}}}

查找的結果為CSRule_1= MKLJ39,后面就用CSRule_1代替驗證碼了。

 

 

常用關聯函數:web_reg_save_param_ex,CSRule_1就是自定義的參數名,LB,RB為左邊界和右邊界,用於定位查找的那個數據,Ordinal指第幾次內容出現的位置,SaveOffset指從找到的字符串中第幾個開始截取,SaveLen指取多少長度的值,其他就算固定的格式了,注意!!!冒號 ” 前需要加反斜杠“\”

腳本參數化(Parameter)

此處是對登錄賬號進行的參數化,直接在賬號處點右鍵—Replace with a parameter 輸入名稱即可,類型可以參照資料,一般是File。

 

 

參數化的數據可以手動輸入,也可以導入dat文件,還可以從數據庫導入。

對賬號參數化后,點擊右鍵—Parameter Properties… 進入參數化設置界面,具體參數參考資料,要注意圖中標注的取值順序和策略設置,組合起來共有9種方式。

 

只要記住Select next row行是針對場景運行的虛擬用戶設置的,VuGen回放不起作用,選擇Sequential,每個用戶都從第一行參數開始順序去;Update Value on行是針對腳本的參數設置的,選擇Each iteration,單個用戶的參數在同一次迭代中取值是相同的,不管你有相同的幾個參數。

以上就是腳本優化的大概流程,寫的不算仔細,可供參考,最后保存前不要忘記再回放一下腳本哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM