51Testing软件测试论坛

标题: 100用户并发,事务失败怎样理解呢? [打印本页]

作者: superfang    时间: 2008-4-15 10:51
标题: 100用户并发,事务失败怎样理解呢?
比如:
  100个并发用户, 同时发给服务器,
问题1: 服务器是一下子都处理完后,再返回给客户端的吗?
问题2:事务失败什么意思呢? 是这个100个并发都失败了,还是只是其中一个用户失败了?
     如果一个用户失败了,那就说明了服务器,是处理一个用户后,就返回给客户端对吗?

作者: superfang    时间: 2008-4-15 13:39
Zee 帮给解释下?  
  谢谢了。。 这个问题,比较难啊?一般人不了解的。。
作者: superliuli1    时间: 2008-4-15 14:57
我也遇到了一样的问题
作者: shen1936    时间: 2008-4-15 15:13
从书上开来的
如果你的脚本跑100个都出错的话,那就是你的脚本有问题

我找下相关的资料在传上来,现在我也被问题撂着了。。
作者: hxxhhl    时间: 2008-4-15 15:32
系统处理的时候,都是一个一个处理的,其实不存在什么真是的并发处理
所以,你的脚本也是一个用户完事儿接着进行下一个的
作者: shen1936    时间: 2008-4-15 15:42
4楼说的对
除非在脚本中添加了集合点,这样的话,才可以实现真正意义的完全一样的并发
作者: superliuli1    时间: 2008-4-16 13:24
我选择单协议录制脚本时,用IE,在controller里,事物都是失败的。选择多协议时,用IE,无法录制脚本,后来选择了theworld浏览器,可以录制脚本了,在执行场景时,事物能通过了。也不知道是什么原因!
作者: aks5201314    时间: 2008-4-16 14:44
服务器收到100个并发请求后,都是一个一个的处理的.并不是一起处理的.只不过现在应用服务器端都是采用多线程的处理方式,所以可以处同时理用户的多个请求.严格意义上的并发并不存在,因为所有的用户请求在队列中是有先后顺序的.多个线程也得挨个从队列中取出请求并处理,最后返回结果给客户端.
事务失败是指某个VUSER运行脚本失败了,失败原因和很多因素有关,是针对某一VUSER而言的,不是针对100个用户
作者: superfang    时间: 2008-4-16 14:51
标题: 回复 5# 的帖子
是的.我是加了集合点的..
作者: superfang    时间: 2008-4-16 14:53
标题: 回复 8# 的帖子
那我想问下. . 对于这个并发事务来讲,  服务器处理过完数据后,也是一个用户一个用户返回他们请求的数据吗?
还是都处理完事了, 再给他们一下子都返回来呢?
作者: cclover    时间: 2008-4-16 15:06
并发有业务并发和服务器并发区别的
而我们要做性能测试要关注的是业务并发,也就是进入系统做业务的用户有多少。
而设置集合点是属于对服务器的并发,这一般是在并发测试的时候用。

对于业务并发,我觉得要和具体的场景联系起来,比如100个并发,如果1小时才进入系统1个,那也就谈不上业务的并发的。我觉得应该是自己跑的一个场景中,有100个用户进入到系统做操作。比如一个A业务,100个用户在进行(都进入系统前,没有完成退出的用户),如果能通过了就可以说XXX业务支持100并发,而不管是不是同时100人提交最后的入帐请求。

如果全部失败那应该是脚本有问题,如过是1,2个失败就要找原因。

以上个人一点看法,刚学习1个月,也不知说的是不是对的
作者: superfang    时间: 2008-4-16 17:21
标题: 回复 11# 的帖子
你前面讲的很好了.
  并发分两种: 业务并发与业务内的并发
但是我想知道,服务器处理100并发用户业务A, 是处理完一个用户后就返回给数据呢?还是处理完了100个用户后,再返回给客户端呢? 
作者: liangjz    时间: 2008-4-16 20:27
处理完一个 就返回给客户端。

并发有粒度的纬度在里面。可以事务、也可以语句级别甚至指令级别的。

一般都是事务级别并发
作者: superfang    时间: 2008-4-16 20:49
标题: 回复 13# 的帖子
恩..谢谢了..
  顶一个...
作者: aks5201314    时间: 2008-4-16 22:28
只要服务器端成功处理完一个请求就返回结果给客户端.不是等待100个都处理完才返回给客户端.
作者: adong1982    时间: 2008-4-17 10:06
我认为无论何种的失败,都应该去检查每个Vuser的Llog。
检查方法如下:
1。启动Controllor
  2。在设计界面, 选中你的Vuser脚本,
3。在右键菜单中选择运行时设置, 选择“始终发送消息”, 保存设置
4。运行场景
5。当脚本失败时,结束场景,回到设计界面
6。点Vuser,选中某个失败的VUSER,右键选择“显示Vuser日志”
就可以查找失败的原因了。我觉得找到原因,才是解决问题的办法。

如果日志不详细,就在脚本中多打几个log
作者: superfang    时间: 2008-4-20 18:29
标题: 回复 17# 的帖子
这样也是个好的方法,感觉系统与LR开销是不是很大啊。
作者: superfang    时间: 2008-4-20 18:32
标题: 回复 11# 的帖子
其实,个人感觉业务间的并发还是比较重要的, 其实业务内的并发,个人感觉还是不多的。。   少量的用户就可以的。  个人意见。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2