博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Loudrunner编写WinSocket接口测试脚本
阅读量:6313 次
发布时间:2019-06-22

本文共 1328 字,大约阅读时间需要 4 分钟。

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

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

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

1、网络字节序和主机字节序http://blog.csdn.net/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

你可能感兴趣的文章
如何应对BYOD时代的安全风险
查看>>
倒计时
查看>>
在windows下部署包含C3P0的war包没问题,部署到linux下面的tomcat下C3P0报错
查看>>
nginx负载均衡配置
查看>>
Centos 7 添加epel源
查看>>
mac使用pip3报错
查看>>
XML和DataTable相互转换
查看>>
nodeJS介绍(一)
查看>>
asp.net Web.config 在不同版本的IIS配置的IHttpHandler的访问路径,以及经典模式和集成模式不同的配置...
查看>>
线段树
查看>>
EOS开发环境搭建
查看>>
SSL证书部署
查看>>
Asp.net中实现多语言的Page的扩展的基类
查看>>
[LintCode] 在O(1)时间复杂度删除链表节点
查看>>
ehcache2拾遗之write和load
查看>>
高性能 TCP & UDP 通信框架 HP-Socket v3.5.2
查看>>
从二进制数据流中构造GDAL可以读取的图像数据
查看>>
Android自定义组件系列【11】——实现3D立体旋转效果
查看>>
数组方法
查看>>
C# 视频监控系列 序 [完]
查看>>