ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LoadRunner字符编码转换

2020-12-17 17:01:35  阅读:401  来源: 互联网

标签:编码 ENC 转换 string 字符 LoadRunner LR lr


LoadRunner进行脚本开发时,经常会出现请求中包含中文或特殊符号(+、=等)导致请求失败,或者响应报文中包含中文,输出响应报文乱码的情况,出现类似情况,可通过LR字符串编码转换函数lr_convert_string_encoding,将字符串转换为需要的编码方式;下面介绍LR字符转编码转换函数和长江的编码转换处理;

1、LR编码转换函数lr_convert_string_encoding

lr_convert_string_encoding( const char *sourceString, const char *fromEncoding,const char *toEncoding, const char *paramName);
#sourceString:被转换的源字符串。
#fromEncoding:转换前的字符编码。
#toEncoding:要转换成为的字符编码。
#paramName:转换后的目标字符串。

字符编码方式:

编码方式编码值
LR_ENC_SYSTEM_LOCALE NULL
LR_ENC_UTF8 "utf-8"
UR_ENC_UNICODE "ucs-2"

2、url编码

在url请求消息中,请求参数包含中文或特殊符号,不能被正确识别,需要进行url编码;

url编码前,请求url内容:http://203.3.227.214:9080/request/auth/getUserToken?auth=01234128&mobile=yzk7kd+fsjj==

url编码后,请求url内容:http://203.3.227.214:9080/request/auth/getUserToken?auth=01234128&mobile=yzk7kd%2Bfsjj%3D%3D

将特殊符号+号和=号进行了编码处理;

url编码操作包含3步:

1)调用lr_convert_string_encoding函数,将mobile参数内容由LR本身的无编码格式转换为UTF-8编码格式;该参数包含的字符串有字符串结束标识符NULL;

2)调用lr_save_string函数,将转换后字符串的NULL标识符去掉;

3)调用web_convert_param函数,将参数编码类型由PLAIN类型转换为URL类型;

代码如下:

//将包含中文或特殊字符的字符串保存到参数mobile中,然后将mobile参数编码转换为UTF8,保存到name1参数中
lr_convert_string_encoding(lr_eval_string("{mobile}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"name1");

//将name1参数字符串结尾标识符去掉,保存到变量param1中
lr_save_string(lr_eval_string("{name1}"),"param1");

//将param1编码类型由PLAIN转换为URL类型
web_convert_param("param1","SourceEncoding=PLAIN","TargetEncoding=URL",LAST);

//通过{param1}调用编码后的参数
web_customer_request("request",
                "URL=http://203.3.227.214:9080/request/auth/getUserToken?auth=01234128&mobile={param1}",
                "Method=POST",
                "Body=",
                LAST);

3、响应报文乱码转码

http请求报错,响应报文中中文显示乱码,为了方便定位问题,需要将响应报文中文进行转码,使其能够正常显示;

响应报文乱码转码分为2步:

1)调用web_reg_save_param函数,将响应报文保存到参数中;

2)调用lr_convert_string_encoding函数,将参数由UTF-8编码转换为LR编码(LR_ENC_SYSTEM_LOCALE);

代码如下:

//获取响应报文
web_reg_save_param("response",
                    "LB=",
                    "RB=",
                    LAST);
                    
//调用http请求
web_customer_request("request",
                "URL=http://203.3.227.214:9080/request/auth/getUserToken?auth=01234128&mobile={param1}",
                "Method=POST",
                "Body=",
                LAST);
                
//响应报文中文转码(UTF8转换为LR本地编码LR_ENC_SYSTEM_LOCAL)
lr_convert_string_encoding(lr_eval_string("{response}"),
                            "LR_ENC_UTF8",
                            "LR_ENC_SYSTEM_LOCALE",
                            "str");
                            
//输出转换后的响应内容
lr_error_message("response:%s",lr_eval_string("{str}"));

 

标签:编码,ENC,转换,string,字符,LoadRunner,LR,lr
来源: https://www.cnblogs.com/wzl0916/p/14150570.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有