51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10291|回复: 3
打印 上一主题 下一主题

[原创] 如何解决openSTA 当场景中TC过多,导致创建socket无法创建的问题?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-4 16:10:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这段时间因考虑到公司产品业务能力的提升和业务功能的增加,所以把场景设计得比较复杂.修改好代码后,调试,没有问题之后.开始进行测试啦.可一跑,就报ERROR 10048: (Only one usage of each socket address (protocol/network address/port) is normally permitted.  ) for VU 20-1 while establishing connection 17/1.
错误.
开始以为是并发导致的错误产生.所以把该释放的都释放了,把并发代码再一修改,如下:
                                                set flag= 0
                                set rendezous= 1
                        clear TEST-WIDE semaphore "Upload_Doc"
                        Acquire TEST-WIDE Mutex Incr_totalAusers
                        Set UDLV_totalAusers = UDLV_totalAusers + 1
                        log "udlv_totalAusers:" ,UDLV_totalAusers
                        if (UDLV_totalAusers = rendezous) then       !设置集合数
                                Set TEST-WIDE semaphore "Upload_Doc"
                                set flag = 1
                                Release TEST-WIDE Mutex Incr_totalAusers
                        else
                                Release TEST-WIDE Mutex Incr_totalAusers
                                Wait 60000 for semaphore "Upload_Doc" , on timeout goto Label1 ! this code never gets executed
                        Endif
                        Log "Debug trace"
                       
                        Label1:
                                if (flag = 1) then
                                        Log "Finally !!!"
                                        else
                                        Log "timeout !!!"
                                Endif
再进行测试,还是报上面这个错误.于是查了一下官方的FAQ,发现了问题的所在.详见:
http://portal.opensta.org/module ... laybackAddressInUse
在上面的地址当中,有一个错误需要补充一下,HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TcpipParameters改成HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters  并且在新增注册表项时,新增三个项分别为:
MaxUserPort          10000
TcpNumConnections    fffffe
TcpTimedWaitDelay    1e
然后再修改一下 TestExecuter_web.ini 修改如下:
[FILES]
TraceLevel=500

[SOCKET]
MaxSocketDataBuffersCount=64000
SocketDataBuffersGrowingCount=2000
MaxSSLConcurrentReq=8000
SSLGrowingBuffCount=1000

[TEST]
BrowserParallelism=4
InitialVirtualUserCount=1000
VirtualUserGrowBy=20

[THREAD POOL]
ThreadPoolSize=0
ThreadPoolConcurrentThreads=0

[SOCKET]
Linger=0
ReuseAddr=1
Timeout=3600000
再一运行,成功了,再也没有报这个错误啦.

别高兴太早,当我进行第二轮测试的时候,增加用户数一倍之后,又出现错误啦.错误信息:A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.于是上网搜索了一些问题所在,根据SQAFORUM.COM的一位网友说,是由于Repository Host通信导致的问题,于是在另外一台机上又安装了一个openSTA,把HOST一连接过来,问题照旧。
根据错误信息,可以看得出是由于创建socket对象原因导致的。
所以在考虑是否是因为创建socket 对象超出了限制导致的呢?
希望研究这方面的朋友知道请联系我。谢谢了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-7-5 12:35:20 | 只看该作者
没有人来踩一踩 啊,
呵呵,不过问题已经解决了.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-7-6 10:03:36 | 只看该作者
解决了可以把方法贴出来和大家分享么?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-7-6 11:12:17 | 只看该作者
直接在playback的时候,如果碰到这个问题,首先调整注册表的value值,然后采用分步式部署场景的方式即可,如场景中TC越多,也就是连接数过多的话,那么需要考虑增加salve Repository Host.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 23:18 , Processed in 0.069772 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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