LoadRunner文字列符号化変換関数:lr_convert_string_encoding

3353 ワード

最近では、スクリプトのデバッグ中に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.上記の説明によると、この関数は文字列を3つの符号化フォーマットで変換するだけなので、実際には機能も限られています.しかし、私たちがよく見ているシーンにも適用できます.
定数と値の対応関係は次のとおりです.
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"); 
         //      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":";
Action.c(y): payRespBody----{"responseMsg":" い ","success":false}