LoadRunner录制Socket协议脚本乱码调研

发表于:2013-4-02 10:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:lovesoo    来源:51Testing软件测试网采编

  最近在测试过程中使用LoadRunner录制Socket协议脚本,在data.ws中,中文参数显示为乱码,直接影响到参数化等操作,导致压力测试无法继续下去。本文对录制脚本的乱码问题进行了相关调研。

  使用LoadRunner录制的脚本如下:

  通过在网上搜索资源,查询到几种解决方案如下:

  ■ 方法一:通过字符串编码转换的函数修改脚本中的乱码;

  通过一个字符串编码转换的函数lr_convert_string_encoding

  在LoadRunner中,为我们提供了一个字符串编码转换的函数lr_convert_string_encoding,它可以把字符编码转换为UTF-8格式。

  测试组人员通过对比发现,这个函数是在录制的脚本中出现乱码时使用的,例如:

web_custom_request("CALL-H001I",
"EncType=text/xml; charset=UTF-8",
"BodyBinary=CALLH001I1040浣忔埧01
鏆傛棤鍙风爜1
11000000
1000000.00A110102641122043#1闇嶈景榫"
"""x99"
"10001鍘﹂棬100

  但本次遇到的问题是在录制结束后,data.ws文件的中文参数显示为乱码。问题仍然得不到解决。

  ■ 方法二:录制选项中的Support charset选中UTF-8再重新录制

  这种方法是在录制前,将录制选项的Support charset选中UTF-8后进行录制,这种方法主要适用于WEB页面录制时的场景。在录制使用Socket协议时,录制选项中没有Support charset,导致问题也不能解决。

  ■ 方法三:更改服务器操作系统的语言

  将操作系统语言修改为英语,重启机器后,重新录制脚本,乱码问题即可解决。

  但实际情况是,将操作系统语言改为英语后,重启机器,重新录制脚本,乱码只是变换了一种形式而已(且文件名称或目录中有中文时会显示成“??”),问题仍然无法解决。

  ■ 最终解决方法

  网上也有资料说这个问题无法解决(汗!!!),因为录制Socket协议是LoadRunner直接监控TCP这一层的数据流,任何数据,虽然在最顶层应用层时是可见数据,但是一旦到了TCP层,均被封包成二进制。

  所以呢,看来要用LoadRunner来测试Socket,还是得通过手写脚本的方式来实现。方法呢,其实很简单。看下一篇吧!

  本文转载自:http://lovesoo.org/loadrunner-recording-socket-protocol-script-garbled-research.html

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号