51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 14751|回复: 38
打印 上一主题 下一主题

[原创] Loadrunner8.1录制、回放乱码问题解决办法和快照问题解决办法.

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-10-23 17:55:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、录制的脚本乱码
LR录制的脚本中可能会有乱码,主要是当URL中有中文时。
通过如下问题可以解决此问题:
a)  Go to Vugen -> Tools -> Recording Options -> Advanced
b)  Check the option that reads "Support Charset" and select "UTF-8"

2、回访乱码
还有一类乱码问题是:IE访问页面一切正常,但是LR回放时在run viewer中显示的页面为乱码。
这一问题一般是由于页面保存时的编码格式和页面中的charset格式不一致引起的(html头中通常会有<meta http-equiv="Content-Type" c>)。遇到这类问题,只需要将页面做另存为,将保存的编码格式和页面中的charset格式统一起来就可以了。
引起问题的原因是:
IE浏览器解码时会优先考虑文件的保存编码格式,而后考虑页面中的charset格式,(正常情况下两者是一致的),而run viewer是直接使用页面中的charset格式打开的。
例如:charset=gb2312,但是文件的保存的编码格式是UTF-8,IE访问时会以UTF-8解码,而run viewer却是以GB2312格式解码,以GB2312解UTF-8自然是乱码。
出现乱码的原因和解决办法很可能不全面,请大家补充。
说到底,还是run viewer功能比较简单引起的。
run viewer中的乱码不影响测试结果。

3、没有快照
现在再来说一说LR的快照问题,LR脚本录制完成后回放,在回放概况中的快照都是红X,见附件。
这一问题应该是LR中文补丁引起的,要去比较高的朋友,请不要打中文补丁。
呵呵,LR对中文的支持还是不理想啊。

最后将有关字符集的资料帖上来,供大家参考。

字符集、字符编码
1.文件分为文本文件和二进制文件﹐不过本质都一样﹐都是些01。
2.计算机存储设备存储的0或1﹐称为计算机的一个二进制位(bit)。
3.二进制文件的0和1有专门的应用程序来读﹐所以它们没有什么乱不乱码的问题﹐只要该程序认得就行。(像doc,xls,exe,dll等)
4.文本文件就不一样了﹐notepad要认识它﹐vs.net要认识它,UE也要认识它…所以它们就要有一个标准。这个标准的原理其实很简单﹐就是把所有的字符都给它一个序号﹐然后根据这个序号来找字符就可以了。这个东东就是编码表,也叫字符集(charset)。
5.文本文件存的都是字符﹐如﹕A,?,@,x。很明显一个bit不能表示﹐刚好计算机的存储单位–字节(byte)就是多个字节(1个byte=8个bit),因此用byte来表示字符就理所当然了。
6. 第一个编码表–ASCII码很快产生﹐很简单﹐就是用一个byte来表示一个字符(最高位置0),总共能存储128(2^8)个字符。如A用65表示﹐ 存在计算机中就是01000001(65)﹐为了书写方便﹐我们一般记作0×41(16进制),97则表示小写的a,存在计算机中就是01100001 (97)﹐记作0×61。?用63表示,记作0×3F。
7.英语国家的大小写字母加起来才52个字符﹐再加上数字﹐符号和一些特殊字符﹐已经足够使用。所以ASCII刚开始非常流行(谁叫计算机不是咱中国发明的… )
8.随着计算机的普及﹐当非英语系的国家开始使用时﹐ASCII已经明显不能满足了(总不成天天使用xiao sheng来表示”小生”吧),所以这些国家(地区)就开始制订自己的标准。
9. 中国大陆制订了简体汉字的字符集(GB2312)。和英语国家不同﹐我们的汉字远远不止128个﹐所以一个byte肯定不能表示完﹐那就多加个byte, 16位(65536)总可以了吧。不过这样虽解决了位数不够的问题﹐但是原来的英文文件怎么办?总不成又全部拿出来改成双字节吧。幸好﹐居然发现原来的 ASCII的第一位居然是0﹐那我们把第1位改成1不就OK了吗?以后凡看到0开头的就读1个字节﹐1开头的就读2个字节。(而且128*128表示所有的简体字也足够了)
10.因此在GB2312标准中,”小”的序号是0xD0A1,表示成11010000 10100001,而A还是表示成01000001,这就是为什么简体操作系统读ASCII文件不会乱码﹐而反之则不然的原因。
11.目前来说﹐情况还比较好﹐中国大陆的计算机运行正常。
12.看到中国大陆制订了一个标准﹐其它国家和地区也不甘示弱﹐纷纷亮出自己的字符集,于是乎什么BIG5(中国台湾),shift_jis(日本),ks_c_5601-1987(韩国)都闪亮登场﹐一时间百鸟争鸣,百花齐放。
13.每个国家都想与ASCII保持兼容﹐理所当然﹐后面的字符就完全不一样了﹐因此﹐同样的0xD0A1,在GB2312中是”小”字﹐而在BIG5中却是”苤”字。你想想﹐这样不乱才怪。
14.到了这时候﹐总有人会想到﹐再这样继续下去是肯定不行的﹐于是它们就想到了﹐如果有一个标准﹐能包括所有字符那不就OK了吗?
15. 于是”大哥大”标准就出来了﹐这就是unicode,为了能够足够表示世界上的所有字符这样光荣而又伟大的任务﹐这家伙用了四个字节来表示(2的32次方到底是多少﹐我也懒得算了),这下好了﹐天下太平了﹐再也不会有麻烦了﹐耳根清静了…(打住﹐你小子这么这么罗嗦呀)
15.不过 unicode好是好﹐但是毕竟四个字节表示一个字符”浪费”太大了(我那破猫上网容易吗﹐电信黑呀﹐说好是2M﹐就给我200K…)﹐而且大家”惊奇”地发现﹐居然世界上一些”较强大”的国家的字符刚好集中在前65536位前﹐呵呵﹐结果unicode也分成了unicode-16和unicode -32了﹐自然﹐前者只用两个字节表示(所以只能表示前65536位喽,欧亚国家大部分字符都OK了﹐什么﹐你们那个@$Y$%字符没有﹐呵呵﹐不管我什么事,找标准协会﹐都是那帮家伙弄的…)
16.虽然标准出来了﹐可是好歹ASCII也用了这么久﹐那些英语国家也在那里嚷嚷﹐这倒好 ﹐搞个什么破标准﹐我们又没有得到什么好处﹐反而让我们原来的程序都运行不了了(为什么呀﹐你想想﹐原来我们的程序字符都是一个字节一个字节认﹐现在倒好 ﹐全改成2个一起认﹐这还怎么跑呀?)﹐况且我们凭白无故了用了这么多0﹐真别扭(unicode中的前128位还是ASCII标准﹐只不过在前面加了8 个0)﹐由于那些国家”势力”比较大﹐所以这个问题不容忽视
17.这个世界上的牛人总是这么多﹐这个问题很容易就被小意思地解决了。
18. 想想GB2312怎么解决与ASCII兼容的问题的(1开头的就读2个字节﹐0开头的就读1个字节)﹐同样﹐UTF也这样﹐0开头的读1个字节 (ASCII码)﹐110开头的读2个字节﹐1110开头的读3个字节﹐这就是伟大的UTF-8(当然还有UTF-16,原理一样﹐xx开头的读4个字节 ﹐xx开头的读5个字节﹐xx开头的读6个字节)
19.当然UTF-8没GB2312这么简单﹐读完之后不能直接查编码表﹐多加一个步骤﹐按照模板提取一下字符再查就OK了
以下就是UTF-8的模板
0×0000 - 0×007F用一个字节表示 0xxxxxxx
0×0080 - 0×07FF用两个字节表示 110xxxxx 10xxxxxx
0×0800 - 0xFFFF用三个字节表示 1110xxxx 10xxxxxx 10xxxxxx
举个例子吧,
如果你遇到了11100110 10110001 10001001 01000001 这样的字节流﹐首先你看第一个字节以1110开头﹐即读3个字节并按模板提取得到 0110 110001 001001(去除模板标志﹐再四字节四字节读即0×6c49),查unicode编码表就是”汉”字,而最后一个以0开头就一定是一个字节了﹐0×0041,也就是”A”。
20.好了﹐上面是原理﹐再来谈谈简繁体操作系统转换时的乱码问题吧
21.按照我的想法﹐windows操作系统应该有一个默认的系统字符集﹐如简体操作系统应该是GB码﹐繁体操作系统则是BIG5,英文操作系统是ASCII。系统内的软件(notepad)默认都是使用这个字符集。
22.所以我在繁体操作系统默认存储的文本文件就是BIG5了﹐当这个文件到了简体系统里﹐它的notepad程序则使用自己的默认编码(GB)来读取﹐这样就乱了。
23.因此如果在保存时就使用utf-8来保存﹐应该在两系统切换时就不会有问题了。
24.而要解决这个问题其实也很简单﹐只要知道这个文本文件原来的编码就可以了﹐使用它读出来﹐再转成unicode即可。
上述的资料载自网上,不知出处。


[ 本帖最后由 大漠飞鹰 于 2007-10-24 06:29 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-10-23 22:45:38 | 只看该作者
经典的帖子当然要顶啦
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-10-24 06:41:20 | 只看该作者
这里的一位同学还发现 Execution Log是乱麻,大家也可以考虑一下解决办法。
地址如下:
http://bbs.51testing.com/viewthr ... =page%3D1#pid764245
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-10-24 08:33:19 | 只看该作者
不错
写的好仔细
谢谢大漠兄
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-10-24 13:21:45 | 只看该作者
  很好的学习帖子,很多人都有这样的问题
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-10-24 13:31:52 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-1-7 06:06:04 | 只看该作者

回复 6# 的帖子

Good
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-1-7 17:16:33 | 只看该作者
很有参考价值,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-1-7 17:49:30 | 只看该作者

您好,,,,有点问题想问您,是有关于回放的.

我录制可以生成订单并且可以支付订单,但在回放的时候不能生成订单也不能支付订单,不知道这是为什么,是不是要去哪里修改一下,请问怎么修改,是不是脚本那里要修改参数吗?搞了好几天啦,都没有搞定,希望大哥能帮忙一下,,谢谢...
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-1-8 09:49:07 | 只看该作者
另外一种乱码解决方式用LR 函数
lr_convert_string_encoding 即可 详细解释 帮助文档写得很清楚
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-1-9 10:05:43 | 只看该作者
这个没汉化也有这个问题,不知道为什么,但还是谢谢LZ
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-1-9 16:41:44 | 只看该作者
很好的贴
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-6-25 16:30:12 | 只看该作者
想问下楼上的白蚁,那个函数具体怎么用啊,放在什么地方
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-6-26 09:37:19 | 只看该作者
学习啦
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-6-26 11:18:04 | 只看该作者
楼主写的很详细,学习了
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2008-6-26 12:43:48 | 只看该作者
看了就必須回帖
建議制定置頂
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2008-6-26 16:33:33 | 只看该作者
这样的帖子,高低得顶!!!
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2008-6-30 16:21:35 | 只看该作者
崇拜之极,不得不顶
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2008-6-30 17:05:42 | 只看该作者
楼主真的帮到我们不少啊。。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2008-6-30 17:47:52 | 只看该作者
好贴,一定得顶!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 18:57 , Processed in 0.183078 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表