永发信息网

lr录制脚本出现乱码,怎么解决

答案:1  悬赏:30  手机版
解决时间 2021-03-31 16:25
lr录制脚本出现乱码,怎么解决
最佳答案
一、录制回放中文乱码
我录制登陆的脚本,用户名中出现中文,回放的时候总是提示登陆失败。如下图:
5
图1 LR回放中文乱码
解决中文乱码可以在录制的时候在Virtual User Gen的 Tools->Recoding Options -> Advanced -> Support charset -> UTF-8。重新录制后中文乱码问题得到解决。
二、整合脚本中文乱码
录制增强(参数化,关联,检查点,事务)脚本后决定将几个脚本整合在一起。于是新建了一个空的脚本,将登陆退出公用操作分别放在vuser_init和vuser_end中,其他操作放在各自的Action中。整理完成回放后又出现中文乱码。为解决这个问题,最关键的是要把本地GBK编码的汉字转换成UTF-8编码格式的信息,为此我们引进loadrunner自带的编码函数lr_convert_string_encoding。
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);
该函数有4个参数,含义如下:
sourceString:被转换的源字符串。
fromEncoding:转换前的字符编码。
toEncoding:要转换成为的字符编码。
paramName:转换后的目标字符串。
实践一:

1

2

3

4

5

6

7

lr_convert_string_encoding("登陆账号",LR_ENC_SYSTEM_LOCALE,
LR_ENC_UTF8,
"Account");

web_submit_data("login.quick",

……

"Name=account",

"Value={Account}",
ENDITEM,

……

LAST);
回放脚本的时候依然报错。查看lr_convert_string_encoding的解释,它会在其转换的字符串末尾加上\x00。在C语言中\X00是一个字符串的结束,而正是这个\x00的存在导致了脚本回放失败。
实践二:

1

2

3

4

5

6

7

8

9

10

11

char
tmp[100];

lr_convert_string_encoding("登陆账号",LR_ENC_SYSTEM_LOCALE,
LR_ENC_UTF8,
"Account");

strcpy(tmp,lr_eval_string("{Account}"));

lr_save_string(tmp,"Account");

web_submit_data("login.quick",

……

"Name=account",

"Value={Account}",
ENDITEM,

……

LAST);
通过strcpy和lr_save_string的处理屏蔽\x00的影响,测试结果正常
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
s136的热处理?
索尼st26i和索尼lt26i区别
湘潭大学每个院的学费分别是多少?
微星GT和GE 有什么区别
三级三审和三审终审还有四级三审终审区别 纠
问一下普利司通的一款轮胎 195/65R15 EP150 9
n卡选择什么牌子比较好
保时捷蓝宝石手表价钱
哪位大神能给我几张歌手王蓉的性感写真照,必
wpe复制神将世界元宝或物品方法?
奔驰S600仪表显示的茶杯是什么意思,怎么关掉
液体空运|液体空运该如何打包装?
时间江南梅子成熟的时候,江南梅子是指杨梅吗
别人叫你土豪你应该怎样回答
单选题19世纪的爱国诗人丘逢甲在《往事》中写
推荐资讯
男人出轨和老婆漂不漂亮真没关系
求C#分段线性插值算法代码
奇货里面有什么智能手表 原价899的 卷后是99
诈骗分子知道手机号码能否可以破解身份证和银
"No worries"是什么意思啊?
找出下列句中的通假字并解释。1.距关,毋内
时间过的真快,过了28岁,很多岗位要求年龄18
有2021年考研的吗?
2003-5-12,16:46女孩算命
东风本田七座的图片及价格
建行中华福运轮信用卡和60周年纪念金卡那种好
潮州市的私人老板建的房子没房证可以买吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?