51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10115|回复: 35
打印 上一主题 下一主题

[原创] 压力测试时报Two Way Communication Error,请高手指点

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-8-30 15:09:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jameschen83 于 2011-8-31 09:27 编辑

小弟在用Loadrunner9.5对公司的服务器进行压力测试,目的是测试一台服务器最多能支持多少台客户端的访问。

测试环境如下:
C/S架构,服务器是Windows2003,oracle数据库;客户端是我的工作机,CPU:E5800  3.2Ghz + 3.2 Ghz   内存:3.25GB, WindowsXP系统

录制是协议选择的是 DotNetProtocol,因为被测软件是用.Net开发的,所以我就选这个,不知道对不对。

运行时的Loadrunner场景参数设置为:
1. 在tools->Options的timeout,全部设置为999,
2. 在run-time settings的When stopping Vusers选择Stop immediately
其他保持默认值。
3. 将虚拟用户设定为30,每15秒启动2个Vuser,全部启动后持续5分钟,然后每30秒停掉5个Vuser。

结果:
事实上,当虚拟用户增至20个在运行时,就有错误报告:Error: Two Way Communication Error: Function two_way_comm_post_message / two_way_comm_post_message_ex failed.
然后就不停的有error, 但是没有失败的Transaction, 而且成功的Transaction也跟error一样一直在增加,停止本轮运行(点击‘Stop’按钮),还是一直在增加。
查看本机任务管理器,发现CPU用了将近100%

请高手帮忙分析下是什么问题,应该怎么解决,小弟感激不尽。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-8-30 15:15:14 | 只看该作者
自己先顶一个,高手们需要多一些信息的话,敬请留言啊,多谢啦
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-8-30 18:08:16 | 只看该作者
需要给你付钱才能浏览问题,谁会给你解决啊!楼主不厚道
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2011-8-31 09:25:33 | 只看该作者
晕,搞错了,非常抱歉,我以为是帮忙解决了这个问题会把这分给解答者的。
新手,请多多包涵。我马上改下
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-8-31 10:46:34 | 只看该作者
回复 3# wenwensw


    搞错了,我以为是解答后会把分给解答者。
   现在已经把那扣分的去掉了
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2011-8-31 10:47:19 | 只看该作者
需要给你付钱才能浏览问题,谁会给你解决啊!楼主不厚道
wenwensw 发表于 2011-8-30 18:08



    已经去掉,多谢提醒
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2014-10-16 09:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2011-8-31 11:37:23 | 只看该作者
    用winsockets协议呢?
    LZ自己录制的脚本回放成功吗?
    脚本贴出来看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2011-8-31 11:53:40 | 只看该作者
    之前用winsockets协议回放时卡死,所以改用.Net协议,能回放成功。
    脚本我没有编辑过,也看不懂,所以把每个脚本都贴上来,还请高手耐心指教,谢谢
    vuser_init:


    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    :
    '---------------------------------------------

    Namespace Script
        Partial Public Class VuserClass
            Public Function vuser_init() As Integer
                Return 0
            End Function
        End Class
    End Namespace


    Action:

    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    : 3010
    '---------------------------------------------

    Option Strict Off
    Option Explicit On

    Imports LoadRunner
    Imports Mercury.LoadRunner.DotNetProtocol.Replay
    Imports System

    Namespace Script
       
        Partial Public Class VuserClass
            
            Public Overridable Function Action() As Integer

                Return 0
            End Function
        End Class
    End Namespace


    vuserend:

    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    :
    '---------------------------------------------

    Namespace Script
        Partial Public Class VuserClass
            Public Function vuser_end() As Integer
                Return 0
            End Function
        End Class
    End Namespace


    globalsFixed.vb

    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    :
    '---------------------------------------------

    Namespace Script
        Partial Public Class VuserClass
            Dim lr As New LoadRunner.LrApi() 'Initialize LR-API Interface
            Sub DATASET_XML(ByVal I As Integer)
            End Sub
        End Class
    End Namespace


    AssemblyInfo.vb

    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    :
    '---------------------------------------------

    Imports System.Reflection
    Imports System.Runtime.InteropServices

    ' General Information about an assembly is controlled through the following
    ' attributes. Change the attribute values to modify the information
    ' associated with an assembly.

    <Assembly: AssemblyTitle("")>
    <Assembly: AssemblyDescription("")>
    <Assembly: AssemblyCompany("")>
    <Assembly: AssemblyProduct("")>
    <Assembly: AssemblyCopyright("")>
    <Assembly: AssemblyTrademark("")>

    ' Version information for an assembly consists of the following four arguments:
    '
    '      Major Version, Minor Version , Build Number,  Revision
    '
    ' You can specify all the values or you can accept the default the build and revision numbers
    ' by using the '*' as shown below:
    <Assembly: AssemblyVersion("1.0.*")>


    globals.vb

    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    : 3010
    '---------------------------------------------

    Option Strict Off
    Option Explicit On

    Imports LoadRunner
    Imports Mercury.LoadRunner.DotNetProtocol.Replay
    Imports System

    Namespace Script
       
        Partial Public Class VuserClass
        End Class
    End Namespace
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2011-8-31 11:56:23 | 只看该作者
    回复 7# mymagic


        之前用winsockets协议回放时卡死,所以改用.Net协议,能回放成功。
    脚本我没有编辑过,也看不懂,所以把每个脚本都贴上来,还请高手耐心指教,谢谢
    vuser_init:

    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    :
    '---------------------------------------------

    Namespace Script
        Partial Public Class VuserClass
            Public Function vuser_init() As Integer
                Return 0
            End Function
        End Class
    End Namespace


    Action:
    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    : 3010
    '---------------------------------------------

    Option Strict Off
    Option Explicit On

    Imports LoadRunner
    Imports Mercury.LoadRunner.DotNetProtocol.Replay
    Imports System

    Namespace Script
       
        Partial Public Class VuserClass
            
            Public Overridable Function Action() As Integer

                Return 0
            End Function
        End Class
    End Namespace


    vuserend:
    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    :
    '---------------------------------------------

    Namespace Script
        Partial Public Class VuserClass
            Public Function vuser_end() As Integer
                Return 0
            End Function
        End Class
    End Namespace


    globalsFixed.vb
    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    :
    '---------------------------------------------

    Namespace Script
        Partial Public Class VuserClass
            Dim lr As New LoadRunner.LrApi() 'Initialize LR-API Interface
            Sub DATASET_XML(ByVal I As Integer)
            End Sub
        End Class
    End Namespace


    AssemblyInfo.vb
    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    :
    '---------------------------------------------

    Imports System.Reflection
    Imports System.Runtime.InteropServices

    ' General Information about an assembly is controlled through the following
    ' attributes. Change the attribute values to modify the information
    ' associated with an assembly.

    <Assembly: AssemblyTitle("")>
    <Assembly: AssemblyDescription("")>
    <Assembly: AssemblyCompany("")>
    <Assembly: AssemblyProduct("")>
    <Assembly: AssemblyCopyright("")>
    <Assembly: AssemblyTrademark("")>

    ' Version information for an assembly consists of the following four arguments:
    '
    '      Major Version, Minor Version , Build Number,  Revision
    '
    ' You can specify all the values or you can accept the default the build and revision numbers
    ' by using the '*' as shown below:
    <Assembly: AssemblyVersion("1.0.*")>


    globals.vb
    '---------------------------------------------
    'Script Title        :
    'Script Description  :
    '
    '
    'Recorder Version    : 3010
    '---------------------------------------------

    Option Strict Off
    Option Explicit On

    Imports LoadRunner
    Imports Mercury.LoadRunner.DotNetProtocol.Replay
    Imports System

    Namespace Script
       
        Partial Public Class VuserClass
        End Class
    End Namespace
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2011-8-31 15:00:24 | 只看该作者
    还没解决,自己给顶上去
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-10-16 09:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2011-8-31 15:12:23 | 只看该作者
    通讯错误。也可能压力太大?
    看看服务器连接情况。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2011-8-31 15:46:35 | 只看该作者
    多谢指点,我马上设少些用户,就16个,跑跑看。
    不过一台服务器才支撑十几个客户端的访问,会不会太少了?
    一般是能支撑多少个客户端的呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2011-8-31 16:18:47 | 只看该作者

    运行16个虚拟用户还是报这样的问题
    60990  Error: Two Way Communication Error: Function two_way_comm_post_message / two_way_comm_post_message_ex failed.
    29739  Error: Service client with id=804 failed to post a message ,reason - communication error.
    29346  Error: Post UnsubscribeService for publish-subscribe service DrvSoftKillService failed.

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-10-16 09:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    14#
    发表于 2011-8-31 16:21:47 | 只看该作者
    两个用户呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2011-8-31 16:29:27 | 只看该作者
    非常感谢,试了下,两个没报错。

    这么说我就测试看是到几个才开始报错了,对吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-10-16 09:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
    发表于 2011-8-31 16:40:24 | 只看该作者
    恩,这是一种很笨的方法,不过还是没从根本上解决报错问题。
    跟开发沟通沟通,是不是在连接上有什么限制或者机制。
    或者服务器本身的问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2011-8-31 16:58:16 | 只看该作者
    楼主,第一次报错的时候,你本机CPU占用率100%,你试一下多几台负载机,再测试30个用户。期待你结果
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2011-8-31 17:33:43 | 只看该作者
    多谢各位高手指导,我再试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2011-9-1 10:27:43 | 只看该作者
    现在是到15个用户还没有报错。
    但我才发现原来录制的时候没有录到事件,难怪贴上来的脚本里似乎没什么东西。
    我这是C/S架构,服务器是Windows2003,数据库用oracle,软件是.Net开发的。
    请问应该是用那种协议录制才合适呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
     楼主| 发表于 2011-9-1 11:48:24 | 只看该作者
    补充下,服务器跟客户端是通过http协议通信的,我用Web(http/html)协议能录制到脚本,但是回放时,Loadrunner就卡死了。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 04:38 , Processed in 0.085265 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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