51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5429|回复: 15
打印 上一主题 下一主题

[原创] LoadRunner Socket协议回放中的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-7-22 14:44:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们系统是基于java开发的应用系统,在测试的时候没有找到合适java应用的协议,只好使用winsocket协议进行测试。
在测试过程中遇到了下面几个问题:

1、录制的脚本在回放的过程中不是很稳定,有时侯能够顺利执行,有时侯则全部出错。
     错误信息为:
     Error socket3: -software caused connection abort Errorcode:10053

2、对于该问题我查看日志发现是创建的socket太小,比如说创建的socket是600字节,但是要给该socket中写入1200字节的数据,后面有从该socket中取出1200字节的数据,期间或者信息丢失,要不就不全,这时候在取数据的时候就会出错了。我找了半天也没有找到如何设置该socket的大小,有谁知道如何设置其大小?

有哪位大侠知道告诉一声,急需解决!非常感谢!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2005-7-22 22:12:18 | 只看该作者
如果是web程序,你可以采用http协议!如果是C/S程序,你可以用winsock,但是LR中的winsocket做的不是很好!你那个错误,你要看看socket的连接是否有问题!关于字节数,会根据你的请求不断的变化的!这不必在意!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-7-25 08:57:05 | 只看该作者
谢谢版主:这两天我试了试,但是还是有些问题,我还有个问题不清楚:
我如何才能够知道我的socket连接有问题?我如何在loadrunner中对于我的socket连接进行查看?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-7-25 09:46:01 | 只看该作者

我的建议

我以前也做过一点这方面的测试,我的感觉是要清除的知道每一个socket及每一个buf的具体含义,对于一个buf中包含了两个别的请求的数据的情况,要把他们分开,不过看这些buf的内容是比较痛苦的事情,但是这样做的结果是脚本执行会比较顺畅
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2005-7-25 10:00:19 | 只看该作者
我没有很清楚的理解你所说的请求区分的含义,我目前测试的系统中每一个socket连接中包含很多的buf,我统计了一下,我录制的测试脚本中总共创建了三个socket连接但是有400多个buf。我们用的是java web start来进行应用程序的加载,我很难从buf中清楚的将每个请求数据进行区分。我不清楚如何对其进行区分?而且这样的话,工作量将会变的非常的大。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-7-25 11:07:34 | 只看该作者
用winsocket就必须搞清楚buf 的内容,不过可以用些小技巧,前提是你明白你的系统,你要知道哪些操作服务器会返回数据(比如返回流水号)和你哪些操作需要参数化的。你在录制的时候用transaction,这样你需要读懂的Buf就限制在transaction中几个有限的buf了。其他的buf(如加载界面)可以不用理会了。

[ Last edited by wss123 on 2005-7-25 at 11:14 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-7-25 13:35:39 | 只看该作者

这个是一定要做的

理解你系统的buf最好有开发人员跟你一起,他们应该是最熟悉的,而且,这种整理的过程可以让你更好的理解系统。过程是艰苦的,但是是有益的。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2005-7-25 16:52:36 | 只看该作者
我刚才仔细看了看buf中的内容,大概可以理解(对于该系统还是比较熟悉)。但是工作量的确很大,我创建一个业务对象的buf就有29个。在测试的时候还是没有解决以下两个问题:
1、我们应用服务器用的是weblogic,在登陆系统的时候会分配一个sessionid,但是在controller中回放的时候该参数如何才能够保持是最新的id?
我试着将其参数化,但是系统还是会报超时的错误(也就是该会话已经失效,id已经过期)不知如何解决?
2、当服务没有重新启动,sessionid有效的时候,在conroller中模拟50个用户去执行创建业务对象的脚本,但是只创建了30个对象。此时服务器和loadrunner中都没有任何异常信息,不只是什么原因?我通过打印输出信息,查看loadrunner日志文件,发现没有创建的20个用户并没有执行完所有的事物。还是抛出了异常:Error socket3: -software caused connection abort Errorcode:10053

但是我查看对应的buf没有什么问题,而且为什么有的能够创建成功有的却创建不成功?不知道是什么原因?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-7-25 17:59:26 | 只看该作者
对于第一个问题,其实就是关联了,论坛上有很多这方面的资料.第二个问题,连接被服务器中断,原因就很多了,像我公司的软件有crc效验,参数一变就连接断开。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2005-7-26 10:37:42 | 只看该作者
对于sessionid的问题,我通过loadrunner的函数time()可以获得一个十位的数字串代表当前的时间(精确到秒)。但是还有两个问题:
1、通过time()方法获得的id是十位,但是weblogic产生的是十三位的数字,不知道是不是由于时间的精确度不同引起的?
2、如何将time()方法获得的值作为一个新的参数来替换sessionid。

对于连接被服务器中断的问题,现在还在寻找原因,目前还不知道是为什么?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-2-10 09:59:40 | 只看该作者
我的问题同楼上的,具体怎么解决啊??哪位大侠可以说清楚些!什么原因?怎么解决??????????
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2011-3-11 14:23:52 | 只看该作者
用什么协议与开发语言关系好像不是很大吧?
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2011-3-18 16:29:15 | 只看该作者
以下是我遇到10053错误时的经验:
1、软件本身问题,并发访问大了,连接问题,是代码层次的问题。
2、脚本运行设置不合理
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2012-1-20 14:08:50 | 只看该作者
用java开发的系统,也要先看 使用的什么类型的协议
如果使用的 HTTP 可以考虑使用 JavaOverHTTP协议(LR11中支持较好)
如果实在不好用 ,可考虑 使用 JavaVuser手动编写脚本
也可以采用 JavaVuser 配合Socket协议 做,并且支持多线程
可参考
http://blog.csdn.net/captain_gbt/article/details/7209570
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2012-1-20 14:09:26 | 只看该作者
用java开发的系统,也要先看 使用的什么类型的协议
如果使用的 HTTP 可以考虑使用 JavaOverHTTP协议(LR11 ...
gubotao2008 发表于 2012-1-20 14:08


基于Loadrunner平台Socket协议的JavaVuser(多线程)
http://blog.csdn.net/captain_gbt/article/details/7209570
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2012-1-20 14:12:15 | 只看该作者
回复 8# jacktian


    关于sessionID 的问题 可以使用LR中的关联 问题 解决
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 07:37 , Processed in 0.079594 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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