LoadRunner錯誤處理&腳本相關

1Connection reset by peer  [MsgId: MERR-27780]

如下圖,只需要在Winlnet replay instead of Sockets 處勾選就ok了

當光標在此處時,可以看下面的Hint

use wininet replay engine.Note this mode is a fallback potion to be used only when the default(socket) replay engine fails(使用wininet回放引擎。注意這種模式是一種後備選擇,只有在默認(socket)回放引擎失敗使用)

Loadrunner默認發送是通過sockets(將http轉換爲sockets)發送的,而sockets默認SSL的版本爲SSL2和SSL3。HTTPS協議錄製的腳本以SSL3版本回放時會使sockets端口連接失敗,會被服務器拒絕連接。--- 摘自網絡


2.Failed to end Transaction "login_end"(by name).

在添加事務的時候如果報這個錯是因爲事務名字問題,名字要一致

首先保證在要做的事務前後加下面2個函數

lr_start_transaction("login");

lr_end_transaction("login", LR_AUTO);


---------------------------------------分隔符-------------------------------------

說明:之後的時間比較少,所以直接貼我在記事本上做的筆記。比較碎片化,不利於除自己之外的人瀏覽,在此抱歉!

Error -27496: Internal Error - InternetCloseHandle failed for item at 06CEE900, Windows error code=6. Assuming the item can be deleted, but error(s) may occur in fvLrwNetWinInetCallback
內部錯誤(呼叫客戶服務) 暫不知怎麼處理
-------
checkPoink.c(43): Error -27492: "HttpSendRequest" failed, Windows error code=12017 and retry limit (0) exceeded for URL="https://jmstest.youhongedu.com/"

checkPoink.c(12): Error -27489: InternetReadFile failed. Windows error code=6. URL="https://jmstest.youhongedu.com/login/"
在Run-time settings---Options
    HTTP-request connect tiomeout(sec) 設置成最大值 999
    HTTP-request receive tiomeout(sec) 設置成最大值 999
    Step download timeout(sec) 設置成最大值 999
-------
設置IP欺騙後,65992-error,Socket desciptor ont found
    要用設置的IP欺騙的網卡進行訪問。而是用無線網或者訪問localhose/127.0.0.1,沒有使用設置了IP欺騙的網卡進行訪問引起的
添加 資源監控
-------

*************************分隔符************************

1.獲取某個請求的響應的信息(請求頭信息、響應頭信息、響應內容體)
  默認最大長度爲256
     web_set_max_html_param_len("262144");
     //自定義截取字符串,根據左右字符串獲取數據
     web_reg_save_param("ResponseBody", "LB=", "RB=", "Search=Body", LAST);
     // REQUEST爲內置變量,保存請求的頭信息,需在發送URL請求前註冊使用,將請求頭信息存入字符串RequestHeader中
     web_save_header(REQUEST, "RequestHeader");
     // 將RESPONSE保存響應的頭信息在字符串ResponseHeader中
     web_save_header(RESPONSE, "ResponseHeader");

    web_submit_data("login",
        "Action=https://jmstest.youhongedu.com/login/",
        "Method=POST",
        "TargetFrame=",
        "RecContentType=text/html",
        "Referer=https://jmstest.youhongedu.com/login/",
        "Snapshot=t8.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=username", "Value=jms13999999999", ENDITEM,
        "Name=password", "Value=yh111111", ENDITEM,
        LAST)

     //字符轉碼
     lr_convert_string_encoding(lr_eval_string("{RequestHeader}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"RequestHeaderUTF8");
     lr_convert_string_encoding(lr_eval_string("{ResponseHeader}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"ResponseHeaderUTF8");
     lr_convert_string_encoding(lr_eval_string("{ResponseBody}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"ResponseBodyUTF8");
     //輸出信息
     lr_output_message("# 請求頭信息:\n %s", lr_eval_string("{RequestHeaderUTF8}"));
     lr_output_message("# 響應頭信息:\n %s", lr_eval_string("{ResponseHeaderUTF8}"));
     lr_output_message("# 響應內容體:\n %s", lr_eval_string("{ResponseBodyUTF8}"));   
     
 2.亂碼處理
利用Loadrunner提供的轉換函數(lr_convert_string_encoding)進行處理,GBK轉換UTF-8參考代碼:
lr_convert_string_encoding("我是代碼",
"GBK",
"UTF-8",
"outparam"
);
由於轉換過程中會多出一個 \0 的結束字符,也就是outparam轉換後變成了”我是代碼\0”,
所以還需要特別進行處理:lr_save_string(lr_eval_string("{outparam}"),"newparam");
將outparam重新save轉存到另一個newparam的參數中,當然也可以保存在原來的outparam參數中進行覆蓋,這樣才能保證整個轉換過程沒有紕漏,一些系統對\0比較敏感的時候還可能出現未知的問題。
例:
  lr_convert_string_encoding("將我轉碼","GBK","UTF-8","outparam");
  lr_save_string(lr_eval_string("{outparam}"),"newparam");
  lr_output_message(lr_eval_string("{newparam}"));
    
3. 在Controller  Virtual user(3個小人圖標) 的 Status中可以打印 當前參數和迭代次數
    static int iteration;
    Action()
    {
        //在Vugen中顯示參數值,參數化param
        lr_output_message("當前參數:%s",lr_eval_string("{param}"));
        //在Controller 監控窗口中顯示當前參數值和當前值的迭代次數
        lr_vuser_status_message("當前參數:%s,迭代次數:%d",lr_eval_string("{param}"),++iteration);
        teturn 0;
    }    
    



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