大开测试:性能—如何解决脚本中的乱码问题(连载7)

7.7  如何解决脚本中的乱码问题

1.问题提出

平时在对Web应用程序性能测试的时候,可能会出现录制的脚本中汉字变为乱字符的现象。

2.问题解答

在所有字符集中,最知名的可能要数被称为ASCII的7位字符集了。它是美国信息交换标准委员会(AmericanStandards Committee for Information Interchange)的缩写,为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0~9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)。

但是,由于它是针对英文设计的,当处理带有音调标号(形如汉语的拼音)的欧洲文字时就会出现问题。因此,创建出了一些包括255个字符的由ASCII扩展的字符集。其中有一种通常被称为IBM字符集,它把值为128~255的字符用于画图和画线,还有一些特殊的欧洲字符。另一种8位字符集是ISO8859-1 Latin 1,也简称为ISOLatin-1。它把位于128~255的字符用于拉丁字母表中特殊语言字符的编码,也因此而得名。

亚洲和非洲语言也不能被8位字符集所支持。但是把汉语、日语和越南语的一些相似的字符结合起来,在不同的语言里,使不同的字符代表不同的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此,创建了UNICODE编码。它通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。UNICODE支持欧洲、非洲、中东、亚洲(包括统一标准的东亚象形汉字和韩国象形文字)。但是,UNICODE并没有提供对诸如Braille、Cherokee、Ethiopic、Khmer、Mongolian、Hmong、TaiLu、Tai Mau文字的支持。同时它也不支持如Ahom、Akkadian、Aramaic、Babylonian Cuneiform、Balti、Brahmi、Etruscan、Hittite、Javanese、Numidian、OldPersian Cuneiform、Syrian之类的古老的文字。

所以,对可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODE比ASCII占用大一倍的空间,而对ASCII来说高字节的0对它毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,它们被称为通用转换格式,即UTF(UniversalTransformation Format)。目前存在的UTF格式有UTF-7、UTF-7.5、UTF-8、UTF-16,以及UTF-32。本文讨论UTF-8字符集。

UTF-8是UNICODE的一种变长字符编码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1~6个字节编码UNICODE字符。如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节,而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE字符。

上面介绍了一些关于字符集的内容,可能也明白了为什么在脚本中会产生乱字符,主要原因就是因为默认情况下应用的是ASCII字符集,所以脚本中的汉字就显示为乱字符了。解决方式是通过选择【Tools】>【Recording Options...】>【HTTP Properties】>【Advanced】>【Support charset】项,选中“UTF-8”选项就可以解决这个问题,如图7-18所示,如果您还想调整脚本的字体,也可以通过选择【Tools】>【General Options】>【Environment】项,单击【Select Font...】按钮,选择适合的字体及字体的大小,如图7-19所示。

         

图7-18  录制选项对话框                                图7-19  常规选项对话框

图7-18中Supportcharset(支持字符集)说明如下。

l  UTF-8。通过该选项可支持UTF-8编码。该选项指示VuGen将非ASCII的UTF-8字符转换为本地计算机上的编码,以便在VuGen编辑器中正确显示它们。如果启用UTF-8支持选项,则无法录制非UTF-8字符集的站点。

EUC-JP。对于日文版Windows的用户,请选择该选项以支持使用EUC-JP字符编码的网站。该选项指示VuGen将EUC-JP字符转换为本地计算机上的编码,以便在VuGen编辑器中正确显示它们。VuGen会将所有EUC-JP(日文版UNIX)字符串转换为本地计算机上的SJIS(日文版Windows)编码,并在脚本中添加web_sjis_to_euc_param函数。



更多信息请关注大开科技公众号或官方网站

www.dakaikeji.com.cn

时间: 2024-10-14 04:28:54

大开测试:性能—如何解决脚本中的乱码问题(连载7)的相关文章

大开测试:性能- 如何在脚本中加入DOS命令(连载17)

7.17  如何在脚本中加入DOS命令 1.问题提出 在没有Windows操作系统之前,人们应用的是DOS操作系统,那么也可以在LoadRunner的VuGen脚本中加入DOS命令,方便脚本对业务的灵活处理. 2.问题解答 DOS是磁盘操作系统(Disk Operation System)的简称.在大量的应用领域中,DOS仍有相当的市场.尤其值得初学者重视的是,DOS中关于文件的目录路径.文件的处理.系统的配置等许多概念,仍然在Windows中沿袭使用,甚至在Windows出现故障时,还会用到基

大开测试:性能-如何解决由于设置引起的运行失败问题(连载22)

7.22  如何解决由于设置引起的运行失败问题 1.问题提出 有时候,在场景执行完成以后,会出现很多由于设置不当而引起的一些问题,那么如何辨析是由于设置而引起的问题,并解决这些问题呢? 2.问题解答 我们在进行性能测试的时候,有些情况下是因为设置的问题而引起场景运行结果包含一些失败的信息内容.比较常见的失败信息有"Closing connection to <server>because it has been inactive for XXX s which is longer t

大开测试:性能—如何解决数据库查询结果过大导致录制失败(连载3)

7.3  如何解决数据库查询结果过大导致录制失败 1.问题提出 在进行一个进销存管理应用系统测试过程中,发现在进行查询后,由于查询结果数据记录条数过多,而引起后续脚本无法继续录制. 2.问题解答 我们在测试过程中发现,很多设置和数据库应用相关.这个问题的解决方法可以通过设置Vugen.ini的CmdSize项完成. Vugen.ini文件存放于Windows系统目录下,首先查找是否在该文件中存在"[SQLOracleInspector]"项,并且查看是否已经存在"CmdSiz

大开测试:性能- 如何解决负载均衡将压力作用到一台机器(连载15)

7.15  如何解决负载均衡将压力作用到一台机器 1.问题提出 如由IP地址为192.168.1.30.192.168.1.31.192.168.1.32的3台机器组成的Apache.Tomcat集群和负载均衡系统,发现客户端发出请求后,都将请求发送到了IP为192.168.1.30的机器上,请问这是为什么呢? 2.问题解答 随着互联网络技术的飞速发展,越来越多的应用已经从最早的单机操作变成基于互联网的操作.由于网络用户数量激增,网络访问路径过长,用户的访问质量容易受到严重影响,尤其是当用户与网

大开测试:性能—如何将Connect()中的密文改为明文(连载5)

7.5  如何将Connect()中的密文改为明文 1.问题提出 在VuGen以ODBC协议录制样例应用程序"Flights-ODBC_Access"业务流程后,发现生成脚本lrd_open_connection包含密文(如图7-10所示),能否将这些密文变成明文显示呢? 图7-10  包含密文的脚本 2.问题解答 在解答这个问题之前,有必要先介绍一下关于样例应用程序的运行方式和协议选择,关于样例程序的安装问题,前面已经讲过,在这里就不再赘述.样例程序安装好以后,可以通过查看[开始]&

大开测试:性能-如何实现脚本分步录制(连载10)

7.10  如何实现脚本分步录制 1.问题提出 在进行一个B/S结构进销存管理系统脚本录制过程中,登录系统后,进行销售业务的处理,最后退出系统.因为登录和退出系统为一次性的操作,而销售业务可以执行多次,那有没有办法在录制脚本的时候,将系统登录.系统退出和业务处理3个部分分步录制呢? 2.问题解答 在进行Web应用系统测试时,通常包含登录系统.业务操作.退出系统3部分,登录系统部分主要是登录系统建立一个有效的连接,业务操作部分主要是进行相关业务的处理,退出系统部分主要是释放连接.而VuGen脚本主

大开测试:性能- VuGen中支持哪些步骤类型(连载12)

7.12  VuGen中支持哪些步骤类型 1.问题提出 VuGen中支持哪些步骤类型? 2.问题解答 VuGen中支持下列步骤类型,如表7-3所示. 表7-3                                                  VuGen支持步骤类型列表 步 骤 类 型 描    述 服务 服务步骤是一个函数,它不会在Web应用程序上下文中进行任何更改.更确切地说,服务步骤执行自定义任务(如设置代理服务器).提供授权信息以及发出自定义的标头 URL 在键入URL或者

大开测试:性能—如何调整经常用到的相关协议脚本模板(连载4)

7.4  如何调整经常用到的相关协议脚本模板 1.问题提出 在应用LoadRunner VuGen过程中,可能经常会用到一些非系统函数,同时想加入一些注解信息和日志输出信息,将输出日志信息条理化,方便调试和分析,那么有什么方法将我们经常用到的协议脚本模板调整变成符合要求的脚本模板呢? 2.问题解答 可以针对自己经常用到的协议,加入必要注解,引用经常会用到的函数库文件,条理化日志输出信息等.下面仅以调整Web(HTTP/HTML)协议脚本模板为例. 首先,找到LoadRunner安装目录下的Tem

大开测试:性能-如何在Analysis图表中添加分析注释(连载26)

7.26  如何在Analysis图表中添加分析注释 1.问题提出 Analysis提供了十分丰富的图表,我们可以借助这些图表分析系统的性能,为了使图表更加直观,方便专业及其非专业人事的阅读,提供分析注释是十分必要的,那么LoadRunner的Analysis提供这种功能了吗? 2.问题解答 LoadRunner提供了丰富的图表,通过这些图表可以供性能分析人员分析系统瓶颈,为了使自己和他人方便阅读分析结果,LoadRunner提供了在图表上添加注释信息的功能,下面以"Throughput - R