Loudrunner编写WinSocket接口测试脚本

本文介绍了Winsocket脚本的编写方法,包括网络字节序和主机字节序的转换、16进制数据的组织及抓包工具Wireshark的使用等。还详细讲解了如何创建socket、发送接收数据、编写data数据文件以及关闭socket。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道Winsocket脚本与Web(HTML)脚本不一样,WEB(HTML)脚本主要采用HTML协议进行模拟,根据开发人员提供的接口编写脚本,而Winsocket协议主要根据服务器与客户端采用的内部通讯协议(内部通讯协议,我们在这里讲的是自定义的通讯协议)编写脚本,所以我们需要用到的工具有网络抓包工具Wireshark以及了解内部通讯协议的内容与作用,我们还可以通过服务器与客户端通讯的日志查看(linux下我们可以通过tail -f /var/log/tomcat...查看日志)。好了,我们开始行动吧!

第一步当然是新建winsocket协议:

在编写脚本之前我要补充几个知识点:

1、网络字节序和主机字节序http://blog.youkuaiyun.com/houwei544/article/details/8592996

转换方式:

2、8个字节的16进制(以x头):消息类型4个字节+消息体内容长度4个字节,进制类型和长度一般由开发人员定义

3、C语言中的转义字符“\”用来输入特殊字符,如\“

第二步编写脚本,参考文献http://www.ltesting.net/ceshi/ceshijishu/rjcsgj/mercury/loadrunner/2013/0106/205871.html

四部曲:

首先我们要创建socket,如lrs_create_socket("socket1", "TCP", "LocalHost=172.16.0.2:1202","RemoteHost=172.16.255.254:6002",LrsLastArg);

然后我们可以发送数据和接受数据,如 lrs_send("socket1", "buf1001", LrsLastArg); lrs_receive("socket1", "buf2001", LrsLastArg);

其次我们根据抓包的数据或者服务器与客户端通讯日志(可由开发人员提供内部通讯协议说明书)编写data数据文件:

;WSRData 2 1


 send buf1001 79
"\xe9\x03\x00\x00\x47\x00\x00\x00"//8个字节的16进制:消息类型1001+消息体内容长度71个字节
"B0-51-8E-08-74-93;172.16.0.2;empty;0;0;A5F5BE704C7447E68E7F8D5F810C0C31"//消息体内容,长度为71个字节
 recv buf2001 17
"\xd1\x07\x00\x00\x09\x00\x00\x00"
"SUCCESS;1"

-1

抓包结果:

 我们知道十进制1001协议类型转换为16进制等于3e9,消息体内容长度为71转换为16进制等于47

然后我们把3e9转换为网络字节序是e9030000,把47转换为网络字节序是47000000(补0),所以通过抓包可以看到上面的结果。

 服务器与客户端通讯日志:

 

最后我们关闭socket,如lrs_close_socket("socket1");

转载于:https://www.cnblogs.com/szmcn/p/5672995.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值