51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3131|回复: 8
打印 上一主题 下一主题

求助:改变Vuser个数运行方案时出现的问题!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-11-5 11:02:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
在方案中使用同一脚本,运行时只改变Vuser的数量(所有的Vuser都运行在Controller机器上),其它各项设置不变,
1、勾选“Intialize all Vusers before Run”,选择同时加压减压(但实际运行时所
    有的Vuser并不是同时运行和退出的),
    1个Vuser:通过;
    10个Vuser:全部通过,但有2个Vuser是在第一次初始化失败后又重新初始化
                     才通过的;
    20个Vuser:全部通过,但有3个Vuser是在第一次初始化失败后又重新初始化
                     才通过的;
    再继续改变Vuser的个数为30、35、40、50,总会有部分Vuser失败,且在通
    过的Vuser中也总有一部分是初始化两次才最终通过的。

2、不勾选“Intialize all Vusers before Run”,
    1个和10个Vuser时都可以全部一次运行通过;
    20个Vuser:8个一次通过,12个失败;
    继续增加Vuser个数,就会出现部分Vuser运行失败,且每次方案运行时运行
    通过的Vuser个数、需要再次初始化才能通过的Vuser个数跟勾选了“Intialize  
    all Vusers before Run”时不一定相同。

疑问:
1、为什么勾不勾选“Intialize all Vusers before Run”会对Vuser是否运行通过及通
     过的个数有很大影响?
2、选择了同时加载和退出Vuser,所有的Vuser也会因为并不都是同时运行而无
     法同时退出,这样是正常现象吗?
3、有些监视性能的图因为无法收集到信息而无法使用,但“Vuser with Errors”图
     为什么也会无法使用?这个图应该不会收集不到信息啊。

希望版主或知道的朋友帮助解释一下,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

9#
 楼主| 发表于 2004-11-8 09:45:54 | 只看该作者
多谢 rosy 的建议!
我又把脚本和方案反复试了多次,发现不管用不用集合点同一方案总会有成功或失败的时候,而且问题都出在初始化即登录应用程序的时候,我怀疑是应用程序本身启动时多人同时连接服务器的问题,原因还在寻找中。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2004-11-5 17:25:20 | 只看该作者
如果是“禁用了集合点方案运行会失败”这可能跟你的前几次的负载测试有关,你重启一下服务试一下.。若是再有问题,就是你的脚本设置不正确,或者脚本本身就存在问题。
重新录制一下,多试几次看看
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2004-11-5 17:24:03 | 只看该作者
如果是“禁用了集合点方案运行会失败”这可能跟你的前几次的负载测试有关,你重启一下服务试一下.。若是再有问题,就是你的脚本设置不正确,或者脚本本身就存在问题。
重新录制一下,多试几次看看
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2004-11-5 17:19:42 | 只看该作者
你在回方脚本时,发现有什么异常现象么?
如果脚本正确,集合点肯定没问题
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2004-11-5 15:52:00 | 只看该作者
减少Vuser的个数,仍然禁用集合点,重新运行方案,发现仍有出现部分Vuser初始化失败的问题的可能,对于同样数量的Vuser,多次运行同一方案,有时全部Vuser都通过,有时部分Vuser初始化失败无法通过;
这样看来,应该就不是同时对数据库的连接数过多造成的吧?难道是所测程序所用组件的问题?因为我之前运行的脚本是用COM/DCOM和FTP协议录制的,而使用ODBC协议录制的脚本运行方案时就不会出错。如果是组件的问题,又应该如何解决呢?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2004-11-5 14:57:10 | 只看该作者
脚本中Vuser_init_Transaction部分有多次连接访问数据库的操作,在Action_Transaction部分有一个事务被定义成集合点;

我按 loadtest 的建议对方案做了一些修改,选择每15秒加载2个Vuser,一共加载50个Vuser,同时不勾选“intialize all vusers before run”,则所有Vuser顺利运行通过,但发现所有Vuser都初始化完成后才开始一起运行Action_Transaction,而我只是把Action_Transaction中的一个事务定义成了集合点;

为了验证是否是集合点的问题,我把集合点禁用后又运行了一遍方案,这样先加载的Vuser确实不再等待未初始化的Vuser,而是初始化完后马上开始运行Action_Transaction,但方案结束后发现有50个Vuser中有5个因初始化失败而最终没有运行通过;

这两次方案运行又出现了以下问题:
      前一次所有Vuser一起运行Action_Transaction,是因为其中有集合点吗?但集合点不是应该只限制定义成集合点的事务吗?
      后一次禁用了集合点方案运行为什么会失败呢?是因为同时有init和action在运行,同一时间连接数据库的个数太多吗?但这种情况在所测程序的实际应用中是不可避免的,这样能否更改数据库允许的最大连接数?

麻烦大家帮忙解决一下,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2004-11-5 13:47:09 | 只看该作者
谢谢 loadtest 的解释!
后两个问题麻烦大家也帮忙解决一下,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2004-11-5 13:28:10 | 只看该作者
intialize all vusers before run这个选项目的是为了让所有的虚拟用户全部初始化完毕,再同时做action的动作。
这样如果你的初始化需要connect 服务器,虚拟用户数越多,失败的也越多,可能是超时等原因,这就是为什么你第一次初始化失败后能够再次初始化成功的原因。
一般来讲,如果勾选此选项,是有一些应用程序的限制,而且为了保证大家能够同时做交易,需要勾选。
没有勾选的情况下,初始化和action里面的动作是同时进行的。这样初始化的压力就小一些。
可以使用ramp up功能限制同时初始化的虚拟用户的数目,这样就不会出现有的用户不能正确初始化的问题。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-24 19:46 , Processed in 0.080210 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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