qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          LoadRunner錄制Socket協議腳本亂碼調研

          最近在測試過程中使用LoadRunner錄制Socket協議腳本,在data.ws中,中文參數顯示為亂碼,直接影響到參數化等操作,導致壓力測試無法繼續下去。本文對錄制腳本的亂碼問題進行了相關調研。

            使用LoadRunner錄制的腳本如下:

            通過在網上搜索資源,查詢到幾種解決方案如下:

            ■ 方法一:通過字符串編碼轉換的函數修改腳本中的亂碼;

            通過一個字符串編碼轉換的函數lr_convert_string_encoding

            在LoadRunner中,為我們提供了一個字符串編碼轉換的函數lr_convert_string_encoding,它可以把字符編碼轉換為UTF-8格式。

            測試組人員通過對比發現,這個函數是在錄制的腳本中出現亂碼時使用的,例如:

          web_custom_request("CALL-H001I",
          "EncType=text/xml; charset=UTF-8",
          "BodyBinary=CALLH001I1040浣忔埧01
          鏆傛棤鍙風爜1
          11000000
          1000000.00A110102641122043#1闇嶈景榫"
          """x99"
          "10001鍘﹂棬100

            但本次遇到的問題是在錄制結束后,data.ws文件的中文參數顯示為亂碼。問題仍然得不到解決。

            ■ 方法二:錄制選項中的Support charset選中UTF-8再重新錄制

            這種方法是在錄制前,將錄制選項的Support charset選中UTF-8后進行錄制,這種方法主要適用于WEB頁面錄制時的場景。在錄制使用Socket協議時,錄制選項中沒有Support charset,導致問題也不能解決。

            ■ 方法三:更改服務器操作系統的語言

            將操作系統語言修改為英語,重啟機器后,重新錄制腳本,亂碼問題即可解決。

            但實際情況是,將操作系統語言改為英語后,重啟機器,重新錄制腳本,亂碼只是變換了一種形式而已(且文件名稱或目錄中有中文時會顯示成“??”),問題仍然無法解決。

            ■ 最終解決方法

            網上也有資料說這個問題無法解決(汗!!!),因為錄制Socket協議是LoadRunner直接監控TCP這一層的數據流,任何數據,雖然在最頂層應用層時是可見數據,但是一旦到了TCP層,均被封包成二進制。

            所以呢,看來要用LoadRunner來測試Socket,還是得通過手寫腳本的方式來實現。方法呢,其實很簡單。看下一篇吧!

          posted on 2013-04-03 10:02 順其自然EVO 閱讀(480) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄loadrunner

          <2013年4月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 随州市| 芦山县| 定襄县| 夏津县| 苏尼特右旗| 临漳县| 拉萨市| 廉江市| 军事| 象州县| 罗城| 蛟河市| 石台县| 大悟县| 连州市| 威海市| 邻水| 沂南县| 土默特左旗| 望江县| 巢湖市| 鄂尔多斯市| 繁昌县| 富川| 仲巴县| 祁东县| 伊春市| 葵青区| 塔河县| 定西市| 黄山市| 十堰市| 舟曲县| 双鸭山市| 陕西省| 苏尼特左旗| 中山市| 丁青县| 黎城县| 西乌珠穆沁旗| 广水市|