LoadRunner錄制Socket協(xié)議腳本亂碼調(diào)研
最近在測(cè)試過程中使用LoadRunner錄制Socket協(xié)議腳本,在data.ws中,中文參數(shù)顯示為亂碼,直接影響到參數(shù)化等操作,導(dǎo)致壓力測(cè)試無法繼續(xù)下去。本文對(duì)錄制腳本的亂碼問題進(jìn)行了相關(guān)調(diào)研。
使用LoadRunner錄制的腳本如下:
通過在網(wǎng)上搜索資源,查詢到幾種解決方案如下:
■ 方法一:通過字符串編碼轉(zhuǎn)換的函數(shù)修改腳本中的亂碼;
通過一個(gè)字符串編碼轉(zhuǎn)換的函數(shù)lr_convert_string_encoding
在LoadRunner中,為我們提供了一個(gè)字符串編碼轉(zhuǎn)換的函數(shù)lr_convert_string_encoding,它可以把字符編碼轉(zhuǎn)換為UTF-8格式。
測(cè)試組人員通過對(duì)比發(fā)現(xiàn),這個(gè)函數(shù)是在錄制的腳本中出現(xiàn)亂碼時(shí)使用的,例如:
web_custom_request("CALL-H001I", "EncType=text/xml; charset=UTF-8", "BodyBinary=CALLH001I1040浣忔埧01 鏆傛棤鍙風(fēng)爜1 11000000 1000000.00A110102641122043#1闇嶈景榫" """x99" "10001鍘﹂棬100 |
但本次遇到的問題是在錄制結(jié)束后,data.ws文件的中文參數(shù)顯示為亂碼。問題仍然得不到解決。
■ 方法二:錄制選項(xiàng)中的Support charset選中UTF-8再重新錄制
這種方法是在錄制前,將錄制選項(xiàng)的Support charset選中UTF-8后進(jìn)行錄制,這種方法主要適用于WEB頁(yè)面錄制時(shí)的場(chǎng)景。在錄制使用Socket協(xié)議時(shí),錄制選項(xiàng)中沒有Support charset,導(dǎo)致問題也不能解決。
■ 方法三:更改服務(wù)器操作系統(tǒng)的語言
將操作系統(tǒng)語言修改為英語,重啟機(jī)器后,重新錄制腳本,亂碼問題即可解決。
但實(shí)際情況是,將操作系統(tǒng)語言改為英語后,重啟機(jī)器,重新錄制腳本,亂碼只是變換了一種形式而已(且文件名稱或目錄中有中文時(shí)會(huì)顯示成“??”),問題仍然無法解決。
■ 最終解決方法
網(wǎng)上也有資料說這個(gè)問題無法解決(汗!!!),因?yàn)殇浿芐ocket協(xié)議是LoadRunner直接監(jiān)控TCP這一層的數(shù)據(jù)流,任何數(shù)據(jù),雖然在最頂層應(yīng)用層時(shí)是可見數(shù)據(jù),但是一旦到了TCP層,均被封包成二進(jìn)制。
所以呢,看來要用LoadRunner來測(cè)試Socket,還是得通過手寫腳本的方式來實(shí)現(xiàn)。方法呢,其實(shí)很簡(jiǎn)單??聪乱黄?!
posted on 2013-04-03 10:02 順其自然EVO 閱讀(482) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄 、loadrunner