51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3912|回复: 5
打印 上一主题 下一主题

[求助] socket协议下数据包乱码处理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-9-21 16:13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
【说明:】今天用socket协议录制脚本后,发现数据包中都是乱码,论坛上也有好多人反馈这个问题。经过自己的琢磨,最终把所有乱码都给格式化成十六进制。感触最深的就是只要懂的字符类型长度就能真正的理解清楚loadrunner中发送的数据包内容是啥。然后就可以完全自己灵活控制数据包的值和数据包的操作。

1、基础知识:
(1)需要知道所测试软件中的包结构。
(2)知道二进制流;
(3)知道Big Endian 与 Little Endian
(4)知道字符类型的长度
(5)知道:当两台采用不同字节序的主机通信时,在传输数据之前双方都必须 对其进行字节序转换,转为网络字节序后才能进行传输.

2、实例说明:

如某包体中有两个值,定义如下:

struct msgHead
{
int id,
char name
}

假设我们要发送的包体就包括这两个字段。并且id=81001 ,name=A

那么在loadrunner的data.ws文件中或者自己自定义的数据包中的值分别如下:

/*********************************
send buf0   5

"\x69\x3C\x01\x00"//说明:十进制:81001  十六进制:13C69 按照高低位存储:69 3c 01 00

"\x41"   //说明: ascii码A 对应十进制是65 ,65转化成十六进制是41  
*********************************/


三、注意

通过上面的例子,真正的理解后,不管你录制后的数据包显示什么样的乱码。都可以用以上方法,根据

包结构中定义的长度,一个个给解析出来。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2015-12-2 10:12
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2012-9-22 10:22:17 | 只看该作者
    不错的分享··希望楼主能继续!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2012-12-4 13:44:37 | 只看该作者
    支持
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2013-7-8 17:52:09 | 只看该作者
    那这样的乱码如何解析呢?在设置参数化的时候,如何操作?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2013-7-13 14:19:29 | 只看该作者
    扯淡,说了半天,乱码也没有说。计算机的这个都懂。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-10-27 14:21
  • 签到天数: 306 天

    连续签到: 1 天

    [LV.8]测试军长

    6#
    发表于 2013-8-1 14:42:43 | 只看该作者
    d\\x15鏷\\x0F=Y\\x926q'<嗘壾\\x13郝V弹‰vSc\\x80撥*艶v 磔蒇\\xC74E壣鞩`U^鉞T\\xFF\\xCA\\x10O-楹u緅    这种乱码怎么处理?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 03:11 , Processed in 0.070730 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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