自行控制LoadRunner的socket协议性能测试

发表于:2012-5-04 13:45

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

 作者:黄晓波 旋次    来源:51Testing软件测试网原创

  摘要:通过实例讲解LoadRunner中的socket协议性能测试的一种测试方法,如何不依赖LoadRunner既定规则,自行控制收发数据包

  关键词:LoadRunner;socket;自行控制;收发数据包

  一、前言

  用过LoadRunner的socket协议进行性能测试的同学都知道,只需要录制短短的几句命令,就可以实现socket的链接、收发数据包和关闭链接,一时大爽,不过紧跟着的就是没完没了的折磨。刚开始参数化数据包发送接收都行,慢慢的发现,很多情况下,收发数据包的长度和内容都是不可确定的,加上十六进制和ASCII,甚至协议和加密等等因素混合在一起,简直就是灾难。于是自行控制数据包收发成了可选项,虽然LoadRunner提供了相关的函数,但是真的面对进制转换,面对没完没了的<memory violation : Exception ACCESS_VIOLATION received>,很多人只能另外寻找办法完成任务。

  本来想全面剖析LoadRunner的socket协议性能测试,发现需要厘清的细节太多了,只能尽力讲清楚下面这个例子中遇到的各个知识点了。

  二、任务的提出

  这个性能测试是很常见的一种情况,前置机链接了各类不同的硬件设备客户端,各个硬件设备客户端使用了不同的协议,协议承载了大量的不同业务,不过数据包的基本结构相同,由首部、包体和校验码组成,既有TCP链接也有UDP链接,数据发送方式上都是使用的短链接,也就是链接上服务器,发送完数据就立刻关闭了链接。现在需要LoadRunner模拟不同的硬件设备,测试前置机的并发能力。

  数据包结构:

  系统架构:

  三、实现方案讨论

  这个场景很常见,不过也比较复杂。

  如果采用传统的录制回放,需要先选择几种有代表性的硬件类型和重点业务,录制出脚本,可以想象需要录制的脚本有很多,如果进行参数化,必须要搞清楚各种协议,重新组包,这个工作量太大了。

  或者开发提供两个动态链接库,一个用来对各种协议实现编解码,另外一个包括了需要模拟的硬件类型的重点业务,第二个动态链接库调用第一个,在LoadRunner中加载了动态链接库以后,直接调用相关的业务操作函数就可以了。这个够通用,不过开发谁有空搭理你呀。况且如果说这个,这篇文章就不用写了。

  那还有第三种方法,现在收发的数据包在前置机上有日志文件保存,可以将各种硬件类型发送的数据包日志文件分类搜集到,然后做两个脚本,一个TCP的,一个UDP的,逻辑都是同样的,打开数据表日志文件,读出数据包发送,将发送和接收到的数据包写入本地日志文件,这样就只需要编写两个脚本,拷贝出多份,每个脚本下放入不同的数据包文件模拟出不同的硬件类型。

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/56/n-811856.html

  四、技术要点讲解

  1、如何开始录制一个最简单的收发数据包脚本

  开始录制脚本的时候,使用了一个绿色软件SocketTool.exe,在本机启动了一个TCP服务器端:

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

精彩评论

  • mehll1213
    2015-7-10 11:28:44

    没有这个运行的脚本啊,里面的代码有些遗漏,而且有些地方好像是错的,求可以正常运行的脚本代码,谢谢

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号