51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3171|回复: 9
打印 上一主题 下一主题

[求助] 在场景中运行时的一些奇怪现象

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-4-17 17:31:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、关于超时的问题
1、100个用户时,最大在线用户数也是98,报错:
Action.c(212): Error : save param parameter is invalid. Error code : 9005.

2、300个用户时,最大在线用户数是163,报错:
Action.c(212): Error : save param parameter is invalid. Error code : 9005.
vuser_init.c(13): Error : Timeout expired while trying to connect. Error code : 9017.

3、500个用户时,最大在线用户数也是163,报错:

Action.c(212): Error : save param parameter is invalid. Error code : 9005.
vuser_init.c(13): Error : Timeout expired while trying to connect. Error code : 9017.
Action.c(8): Error : socket0 - Connection reset by peer. Error code : 10054.

其中,300和500个用户时,有个现象,场景才开始运行时,就一直报 超时的(9017)的错,没有PASS的事物,根本就没有RUN起来,直接从就绪状态到FAILED,但是FAILED一定数目的用户后,接下来的运行比较正常,为什么不是在运行了一部分用户后再出现后面的用户连接超时?而是出现在一开始就超时(都没有用户占用资源还超时,有用户运行起来了占用了资源反而后来的用户登录不超时了),另外说明一下
100个用户时没有这种现象。

二、关于持续运行时间的问题
明明设置了运行时间是30分钟,但是,实际相差太大,实际运行的时间只有几分钟,这可能是什么原因导致没有持续运行设定的时间长度?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-4-17 18:10:33 | 只看该作者
看上去的感觉是连接超时导致关联失败,代码是什么?什么协议,什么平台?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-4-18 08:32:10 | 只看该作者
本帖最后由 ytcaicai 于 2012-4-19 16:54 编辑

代码:
vuser_init()
{
        int c=0;
        //c=lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=172.31.254.240:9890", LrsLastArg);
        c=lrs_create_socket("socket0", "TCP", "RemoteHost=172.31.254.240:9890", LrsLastArg);
        if (c==0)
                lr_output_message("Socket was sucessfully created");
        else
                lr_output_message("An error occureed while creatting the socket,error code:%d",c);
        return 0;
}
Action()
{

    lr_think_time(7);
        lrs_send("socket0", "buf0", LrsLastArg);
        lrs_receive("socket0", "buf1", LrsLastArg);
              ....
        lrs_send("socket0", "buf94", LrsLastArg);
        lrs_receive("socket0", "buf95", LrsLastArg);
        lr_think_time(12);
lr_start_transaction("search");
        lrs_send("socket0", "buf96", LrsLastArg);
        lrs_receive("socket0", "buf97","Flags= MSG_PEEK", LrsLastArg);
lrs_save_param("socket0",NULL,"s_count",0,4);
if (strcmp(lr_eval_string("<s_count>"),"60№")==0)
        lr_end_transaction("search", LR_PASS);
else
        lr_end_transaction("search", LR_FAIL);
        lrs_send("socket0", "buf98", LrsLastArg);
        lrs_receive("socket0", "buf99", LrsLastArg);

       .....
return 0;
}

协议:windows sockets and  oracle(2-tier)

PB开发的c/s/s结构的程序

对应的测试报告:http://bbs.51testing.com/thread-547806-1-3.html
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2012-4-18 08:57:29 | 只看该作者
按常规推理,应该是一部分用户连接上了,占用了系统资源,后面的用户再连接时连接超时才是;
可现在是相反了,一开始就先倒下一批用户(连接超时),后来的用户都能正常连接上;
为了确认这不是偶然现象,我测试了6,7次,

但同样的代码和设置,100个用户是没有上面说的这种现象,但是300或500个用户时就出现这种现象。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2012-4-18 12:49:16 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2012-4-18 16:04:17 | 只看该作者
不要沉了。。。
此帖与 http://bbs.51testing.com/thread-547806-1-3.html 是相关联的
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2012-4-19 08:25:53 | 只看该作者
然后Error : socket0 - Connection reset by peer. Error code : 10054
和负载机器的TCP设置有关的。

是不是说负载机的TCP设置好了就不会有这个ERROR?请问楼上的元老能否讲的具体些?
另外,这个测试的报告在  http://bbs.51testing.com/thread-547806-1-3.html  中,可以综合来分析
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2012-7-5 14:34:48 | 只看该作者
刚也碰到这个问题了,也找到了原因分享一下。
====================
我用的关联函数lrs_save_param("socket9", NULL,"flag",3190,40),报出了楼主的错,原因是,正在测试的系统进行了其他操作,导致当前交易不成功,我原来保存在socket9中的字节应该为7000+,在当前情况下,只收到了2000+,而我的偏移量设置为3190,很显然会报错。
====================================
我觉得楼主的应该也类似,lrs_save_param("socket0",NULL,"s_count",0,4);,socket0中肯定没有收到4字节的数据,所以报lrs_save_param的参数有误。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2012-8-8 16:44:33 | 只看该作者
回复 9# Katero


    请问Katero:

遇上这个问题,你是怎么解决的呢?难不成还得引入类似线程控制的机制,保证操作的独立性?还有,如果设置了50个用户在线程机制下跑脚本,那么会不会是50个线程对这一份脚本进行执行,必然会导致读和写操作的冲突呢?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2012-8-8 16:44:42 | 只看该作者
回复 9# Katero


    请问Katero:

遇上这个问题,你是怎么解决的呢?难不成还得引入类似线程控制的机制,保证操作的独立性?还有,如果设置了50个用户在线程机制下跑脚本,那么会不会是50个线程对这一份脚本进行执行,必然会导致读和写操作的冲突呢?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-25 07:26 , Processed in 0.087533 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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