1. 程式人生 > >LoadRunner字串編碼轉換函式:lr_convert_string_encoding

LoadRunner字串編碼轉換函式:lr_convert_string_encoding

        最近在除錯指令碼的過程中,多次用到LoadRunner字串編碼轉換函式lr_convert_string_encoding,這裡簡單總結一下,方便以後參考~

1.函式實現

Loadrunner自帶函式,直接使用即可

lr_convert_string_encoding

//C Language

int lr_convert_string_encoding( const char *sourceString, const char *fromEncoding,const char *toEncoding, const char *paramName);
官方引數解釋:

sourceString

The string to convert

fromEncoding

The encoding of the sourceString

toEncoding

The encoding to convert of the string saved in parameter paramName

paramName

The name of the parameter in which the destination string will be saved


對應的中文引數解釋:

   sourceString:被轉換的源字串。

   fromEncoding:轉換前的字元編碼。

   toEncoding:要轉換成為的字元編碼。

   paramName:轉換後的目標字串。

lr_convert_string_encoding converts a string encoding betweenthe following encodings: System locale, Unicode, and UTF-8. The function savesthe result string, including its terminating NULL, in the parameter paramName.

根據上面的說明,這個函式其實只是把字串在三種編碼格式中做轉換,所以其實功能也是有限的,不過也已經可以適用到我們常見的一些場景了。

常量和值的對應關係如下:

Possible values for 'fromEncoding'and 'toEncoding' :

Constant

Value

LR_ENC_SYSTEM_LOCALE

NULL

LR_ENC_UTF8

"utf-8"

LR_ENC_UNICODE

"ucs-2"


2.Loadrunner中的使用

   在URL請求的返回訊息中,我們有時候會遇到中文返回被編碼的情況,不易識別,這時候就可以用編碼轉換函式,方便除錯指令碼。

Action()
{
	int compare=1;
	web_reg_save_param("payRespBody",
		"LB=",
		"RB=",
		"NotFound=ERROR",
		"Search=Body",
		LAST);

	web_reg_save_param("responseMsg",
		"LB=responseMsg\":\"",
		"RB=\",",
		"NotFound=ERROR",
		"Search=All",
		LAST);

	web_custom_request("pay.htm", 
		"URL=http://xxx/a/b/pay.htm?x={orderId}&pwd=x", 
		"Method=POST", 
		"TargetFrame=", 
		"Resource=0", 
		"RecContentType=application/json", 
		"Referer=", 
		"Mode=HTML", 
		"EncType=application/x-www-form-urlencoded; charset=UTF-8", 
		LAST);

	lr_convert_string_encoding(lr_eval_string("{responseMsg}"),"utf-8",NULL,"msg");//將返回訊息responseMsg值做編碼轉換

	lr_output_message("轉換編碼前payRespBody----%s",lr_eval_string("{payRespBody}"));
	
	lr_convert_string_encoding(lr_eval_string("{payRespBody}"),"utf-8",NULL,"bodymsg"); <pre name="code" class="cpp">         //將返回訊息的body做編碼轉換

	compare=strcmp(lr_eval_string("{msg}"),"支付成功");//將編碼轉換後的responseMsg值與可識別的中文做比較,判斷事務成功或失敗

	if(compare==0){

		lr_end_transaction("3--支付",LR_PASS);
			
		}
	else{
			lr_end_transaction("3--支付",LR_FAIL);
			
			lr_output_message("支付失敗orderId:----%s,responseMsg----%s",lr_eval_string("{orderId}"),lr_eval_string("{msg}"));//列印轉換編碼後的返回

			lr_output_message("轉換編碼後payRespBody----%s",lr_eval_string("{bodymsg}"));//列印轉換編碼後的返回,便於定位問題
		}
		
	return 0;
}
通過對比轉換前和轉換後的值可以發現,編碼轉換後,中文變得可識別,方便了指令碼除錯和指令碼問題定位及解決。
Action.c(x): 轉換編碼前payRespBody----{"responseMsg":"鏀粯澶辮觸","success":false}
Action.c(y): 轉換編碼後payRespBody----{"responseMsg":"支付失敗","success":false}

相關推薦

LoadRunner字串編碼轉換函式lr_convert_string_encoding

        最近在除錯指令碼的過程中,多次用到LoadRunner字串編碼轉換函式lr_convert_string_encoding,這裡簡單總結一下,方便以後參考~ 1.函式實現 Loadrunner自帶函式,直接使用即可 lr_convert_string_

LoadRunner字串編碼轉換函式lr_convert_string_encoding

在LoadRunner中,為我們提供了一個字串編碼轉換的函式     int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEnc

關於python的字串大小轉換函式capitalize() title() upper() swapcase()

原以為寫了,找的我好苦!結果竟然沒寫! 補上: capitalize():讓字串首字母變成大寫! title():所有單詞開頭字母變成大寫! upper():整個字串的所有字母變成大寫! swapcase():所有字母進行大小寫轉換! 程式碼:

轉換函式TO_CHAR()用法之一 將一個數值轉化成字串

 格式:TO_CHAR(number,format) 即 TO_CHAR((數值,格式) 用法: 1、不指定格式的 TO_CHAR函式將數值轉換成簡單字串形式。         例:  TO_CHAR(123)       結果       123       

Python字串編碼轉換

使用encode()方法編碼 str.encode([encoding="utf-8"][,errors="strict"]) str:表示需要轉換的字串 encoding=“utf-8”:可選引數

Java 正確的做字串編碼轉換

1.字串的內部表示 字串在java中統一用unicode表示( 即utf-16 LE) , 對於 String s = “你好哦!”; 如果原始碼檔案是GBK編碼, 作業系統(windows)預設的環境編碼為GBK,那麼編譯時, JVM將 按照GBK編碼將

PHP圖片與base64字串相互轉換函式

/** * base64字串轉換成圖片 * @param string $base64_string base64字串 * @param unknown $path 圖片儲存路徑 * @param string $prefix 圖片字首 * @return boolean */ function

java字串編碼轉換及在tomcat中的應用

最近在正式環境中手機訪問系統時,中文都會出現亂碼的情況。順帶研究一下字符集的問題。字串編碼轉換java檔案編譯時,JVM按照檔案的編碼方式解析成字元,然後轉換為unicode格式的位元組陣列。 那麼不論原始碼檔案是什麼格式,同樣的字串,最後得到的unicode位元組陣列是完全

java中String字串的替換函式replace與replaceAll的區別

1>replace的引數是char和CharSequence,既可以支援字元替換,也可以支援字串替換。 2>replaceall引數是regex, replacement,regex表示是正則表示式。 replace : String src = new Strin

linux c 字元編碼轉換函式 iconv

一、利用iconv函式族進行編碼轉換 在LINUX上進行編碼轉換時,既可以利用iconv函式族程式設計實現,也可以利用iconv命令來實現,只不過後者是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。 iconv函式族的標頭檔案是iconv.h,使用前需包含之。 #

python中字串編碼轉換

字串編碼轉換程式設計師最苦逼的地方,什麼亂碼之類的幾乎都是由漢字引起的。 其實編碼問題很好搞定,只要記住一點: 任何平臺的任何編碼,都能和Unicode互相轉換。 UTF-8與GBK互相轉換,那就先把UTF-8轉換成Unicode,再從Unicode轉換成GBK,反之同理。 注意:在python3中en

主機位元組序與網路位元組序的轉換函式htonl、ntohl、htons、ntohs

Part 1: htons函式具體解釋      在Linux和Windows網路程式設計時需要用到htons和htonl函式,用來將主機位元組順序轉換為網路位元組順序。      在Intel機器下,執行以下程式 int main() ...{    printf(

java字串應用之字串編碼轉換

{    /** *//** 7位ASCII字元,也叫作ISO646-US、Unicode字符集的基本拉丁塊      */    publicstaticfinal String US_ASCII ="US-ASCII";    /** *//** ISO拉丁字母表 No.1,也叫做ISO-LATIN-1 

Java字串編碼轉換UTF-8

import java.io.UnsupportedEncodingException; /** * * * 描述:<p>    功能描述,該部分必須以中文句號結尾。</p> * 建立日期:2012-7-16 下午4:28:16<

自定義數字和字串轉換函式

C語言中,常見的字串與數字之間的相互轉換的庫函式有:atof(字串轉換成浮點數)、atoi(字串轉換成整型數)、atol(字串轉換成長整形數)、itoa(整型數轉換成字串)、ltoa(長整型數轉換成字串)等。在求職中,讓求職者自定義此類函式的實現是為了考察求職者

javascript 物件與字串相互轉換函式 JSON.stringify 和 JSON.parse 的使用

JSON.stringify() The JSON.stringify() method converts a JavaScript value to a JSON string, optionally replacing values if a repla

[Swift]庫函式atoi字串內容轉換為整數

1、如果第一個非空格字元存在,是數字或者正負號則開始做型別轉換,之後檢測到非數字(包括結束符 \0) 字元時停止轉換,返回Int32整形數。否則,返回0。 1 //返回Int32位整形 2 print(atoi("123456")) 3 //Print 123456 4 print(atoi("

劍指offer第49題字串轉化成整型(題目要求不要用轉換函式

思路:拆分在合併,有非數字符號的return 0; public class _Test49 { public static void main(String[] args) { Scanner scanner = new Scanner

DB2常用函式型別轉換函式

CAST表示式用來轉換型別使用 Sql程式碼    SELECT CAST(CURRENT TIME AS CHAR(8) )&nb

[Visual Studio C++] [MFC 除錯錯誤]不存在從"CString"到"char"的適當轉換函式

1.編譯問題描述: 不存在從"CString"到"char"的適當轉換函式。   2.錯誤程式碼:                       writeint=a