51Testing软件测试论坛

标题: 关于并发用户与集合点的问题 [打印本页]

作者: xingcyx    时间: 2007-1-22 12:35
标题: 关于并发用户与集合点的问题
本帖最后由 thirfing 于 2013-5-13 10:03 编辑

声明:以下的问答是我根据实际工作经验和通过各种途径得到的信息而整理的,其回答内容主要代表我个人观点,并非标准答案,读者如有不同意见,欢迎批评指教。

Q:并发用户数和集合点有必然联系吗?在性能测试中必须使用集合点来测试吗?

A:并发用户数,顾名思义,就是同时操作的用户,这里的“操作”可以指对系统真正的操作,也可以只是连接(此时通常叫作“并发连接数”),而集合点是一种特殊情况下的并发,多用于测试系统在瞬间加压的表现。因此,并发用户数和集合点有联系,但并非必然的联系,在测试并发用户的性能测试场景中,可以不必设置集合点,这将视测试目标和测试策略而定。


Q:不设置集合点的测试,能代表是“并发”操作吗?

A:有这样一种说法,设置集合点是为了确保“严格意义上”的并发,其实从本质上看,这主要是一个看问题的粒度大小的问题。集合点的作用是通过工具的控制,确保一个请求严格的“同时”从前台提交到后台。可是如果微观地看,是不存在严格意义上的并发的,即使在客户端通过设置集合点的方式将100个请求同时提交到后台,经过网络上的传输消耗,可能它们并不是同时到达的,而即便100个请求同时到达服务器端,受到中间件和应用系统、数据库的各种连接池、缓冲区,CPU处理队列等的限制,也可能在服务器端产生等待的。因此,严格意义上的“并发”可以说是不存在的,我们需要做的是在可以接受的粒度范围内取得一个最佳的平衡点,站在这个平衡点的层面上去看待“并发”这个问题。

性能测试无非有两个目的,一是评测,二是调优。
在以评测为目的的性能测试中,用户更关心的是业务上的并发,也就是真实业务场景的并发情况,这种情况下只要按照业务操作的模式去设置场景就可以了,并不需要设置集合点。
集合点是一种特殊情况下的并发,通常是在以调优为目的的性能测试中才会用得到,目的是有针对性地对某个可能存在性能问题的模块施压,以便找到性能瓶颈。


集合点在我实际的测试过程中用得并不多。

[ 本帖最后由 xingcyx 于 2007-1-22 12:46 编辑 ]
作者: Zee    时间: 2007-1-22 13:53
sdlkfj3 先占个位子。

[ 本帖最后由 Zee 于 2007-1-22 13:55 编辑 ]
作者: Zee    时间: 2007-1-22 14:13
关于集合点,我一直觉得没有什么可争议的,这两天看到几个帖子在说这个东西。有一点我想大家都是认同的:集合是相对的集合。
集合是在产生负载的机器上的集合。如果考虑网络,中间件等等的因素。到服务器肯定不会是同一时间点,那于是就有人希望能更接近在服务器端实现并发的操作。认为这才是真正的并发。
我觉得首先要做的是分析应用系统,到底你想做的是什么。
比如说,你想让某个URL能达到1000个同时请求的目的。这样的目标就比较明确了。
而在讨论集合点的时候,大家很少拿具体的东西来举个例子。这样有点说不清楚。要想达到并发。我觉得应该更具体的分析应用。再来定下目标来做。而不是一直在讨论LR如何能实现。
作者: xingcyx    时间: 2007-1-22 14:29
因为在实践中,我经常会碰到这样的情况:
测试需求说,该系统应支持200个并发用户。

那么我们就开始测,录制好脚本,下一步就是在场景中执行了,在控制台中设置某脚本并发用户数为200,测试结果为通过或未通过。此时争议就来了:这200个用户的脚本如果执行通过,测试结果可以接受,是否可以说这个系统支持了200个并发呢?
作者: Zee    时间: 2007-1-22 14:43
你说的是不是太过泛泛?如果用户说这系统要支持200个并发。那做性能测试的人知道这句话有很大的出入。
作者: 大漠飞鹰    时间: 2007-1-22 15:08
原帖由 xingcyx 于 2007-1-22 14:29 发表
因为在实践中,我经常会碰到这样的情况:
测试需求说,该系统应支持200个并发用户。

那么我们就开始测,录制好脚本,下一步就是在场景中执行了,在控制台中设置某脚本并发用户数为200,测试结果为通过或未通 ...


测试前肯定要了解需求,或者说是测试目的。
就说明“该系统应支持200个并发用户。”, 这种需求严格意义上来说是不合格的需求,因为描述不够清晰,过于模糊等。
当然,在实际中,这类需求到了我们测试人的手里也是常有的,一般就当普遍的情况来出来。
比如,web系统,就按2/5/8,或者2/5/10来处理,如果能通过就pass,否则就让开发人员调优。
作者: xingcyx    时间: 2007-1-22 15:45
那么楼上的两位就请说说,你们实际的工作中,需求是怎么提出来的,或者你们是怎么去确定出来的,到了最后确定了的测试需求是个什么样子?给出来大家参考一下。
作者: Zee    时间: 2007-1-22 16:06
从集合点到并发数的确定。我觉得这其中的转换最主要的地方在于分析业务。

比如用户说了:要求200个用户并发。
那要问清楚的就是,200个用户是个什么样的比例,有多少人在干这个,有多人在干那个,按百分比,用不同的脚本来跑。
那再来想一下客户。他关心的是200个用户在服务器上同时点同一个URL或者某一个相同的资源?这个客户我想大多不会关心。而他想要的就是我有200个用户在线的时候。响应时间不至于让人不可接受。至于多少才不可接受。按平常人的心理承受能力来衡量就可以了。再或者有其他的说法,就是200人同时点同一URL或者请求同一资源,我想可以通过计算来增加vuser的数量或者集合呀,或者其他的方法来努力的向这个目标靠近。

如果说非要在服务器上这个时间并发这么多的用户。我觉得只能尽量把它缩小到一个时间段内。而这样做我觉得并不是从分析业务出发的,
作者: xingcyx    时间: 2007-1-22 16:47
楼上说的是最常见的一种情况,在这种测试需求下,我会设置一个混合场景来测试,也就是按照做不同事情的用户的百分比去设置。
但会有另外一些时候,并不是一个实际的应用系统,可能是一个开发平台,或者工作引擎等,它涉及的性能的概念会更偏向底层一些,这个时候可能就不是像一般的应用系统那样,设置一个混合场景来测试那么简单了。
作者: Zee    时间: 2007-1-22 16:55
所以偶认为先分析应用。
作者: 大漠飞鹰    时间: 2007-1-22 17:22
一般说的并发数指的是业务并发,而不是服务器端得并发数。
作者: Zee    时间: 2007-1-22 17:58
同意楼上。
作者: cc_lion    时间: 2007-1-22 18:25
一个业务并发,一个服务端最大并发数,针对测试目标不一样选择其中

测最大并发数可能有意外收获哦!!资源争用,DEADLOCK,等
作者: RuisTar    时间: 2007-4-17 16:40
上面的分析的不错,受教了~
谢谢各位分享.
作者: ireneyao    时间: 2007-4-17 16:49
如果要测服务器并发该怎么做呢?
如果要做压力测试那就应该加集合点对吗?比如网站这种没有固定需求的东西。如果我找使用最多的业务做并发,应该做服务器端的还是客户端的呢?
作者: liuwendy    时间: 2007-4-17 16:56
学习ing!  sdlkfj3
作者: rickyzhu    时间: 2007-4-17 21:55
分析得非常精彩和透彻,整理一下,转载在我的博客上了。
:)
作者: guxingyun    时间: 2007-4-18 09:28
mark 学习中...
作者: freshman0216    时间: 2007-5-25 17:03
多学习
积累知识,争取早日能和前辈们一起讨论
作者: ggogw    时间: 2007-5-28 11:34
学习了~~~感觉大家都说得有点道理!
作者: hehemeimei    时间: 2007-6-8 16:39
原帖由 xingcyx 于 2007-1-22 16:47 发表
楼上说的是最常见的一种情况,在这种测试需求下,我会设置一个混合场景来测试,也就是按照做不同事情的用户的百分比去设置。
但会有另外一些时候,并不是一个实际的应用系统,可能是一个开发平台,或者工作引擎 ...

那如果遇到遇到一个开发平台,或者工作引擎,又该如何去做啊?
作者: 423799223    时间: 2007-6-8 17:09
不错
大漠兄和Zee版主言之有理
作者: laura1116    时间: 2007-6-8 18:12
嗯 懂一些了
作者: corrine-li    时间: 2007-6-19 11:53
感觉大家都说得有道理,最近学习LR ing,和使用LR ing
作者: bbww1002    时间: 2007-6-20 12:56
see
作者: vdgame    时间: 2007-7-4 13:59
受教了,学习中
作者: pei5    时间: 2007-8-4 11:42
为了楼主,为了积分,为了附件,我狂顶啊!!!!
作者: drlong    时间: 2007-8-5 14:05
标题: test
狂顶啊!!!!
作者: bearding    时间: 2007-8-7 16:30
收缴了,我一般都是在需要并发的地方设定集合点,客户说不清什么比例,我就按严格的并发测试,如果同一点上可以并发200用户,那么按比例的场景应该也可以
作者: zhuhai2891    时间: 2007-8-12 23:41
感觉还是没有完全区分集合点和并发这两个概念??
我是初手,还请多多指教,谢谢
作者: oeardi    时间: 2007-8-23 20:50
学习学习
作者: zhicl    时间: 2007-9-5 09:08
原来之前我一直搞错了,狂晕....
作者: harryhu    时间: 2007-9-10 14:26
写的一般,感觉这个帖子没有学到东西,继续看其他的
作者: david2878    时间: 2007-10-10 10:36
测试中间代理时的并发又该如何做比较好呢?
作者: shoulamon    时间: 2007-10-10 11:59
什么叫不存在严格意义上的并发,并发的定义还不够严格吗?这个可是操作系统的基本概念啊,并发不是同时!
作者: shoulamon    时间: 2007-10-10 12:15
完全看了几位的帖子,我还是发现这个问题没啥好讨论的,集合点只不过使VU等待并同时提交一个事务,但作为性能测试这个前提之下,设置了那么多的并发用户,你有什么理由认为所有的操作不是并发的,你明白了并发的定义了吗?集合点只不过是想模拟宏观并行的一种操作。
作者: hankliu520    时间: 2007-10-11 14:53
还是没懂什么时候要设集合点,
作者: shoulamon    时间: 2007-10-11 16:51
集合点的设置需要考虑测试的需求,到底在哪个点上要设定集合,模拟瞬间的压力,这个是业务需要。这个问题是需要与客户沟通,并由他们所确定的
作者: wzdancer    时间: 2007-10-18 09:33
感谢前辈们,你们越多的争议,就给我们越多的知识!
作者: guo0874    时间: 2007-10-18 12:19
有心得
作者: xingcyx    时间: 2007-10-18 15:48
原帖由 shoulamon 于 2007-10-10 11:59 发表
什么叫不存在严格意义上的并发,并发的定义还不够严格吗?这个可是操作系统的基本概念啊,并发不是同时!


操作系统中并发和并行的概念:
并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。

不过我觉得我们做性能测试中的并发概念并不能完全套用操作系统的概念吧?
还是像楼上有位同仁说的:大多数情况下,我们说的并发指的是客户端的并发(或叫业务上的并发)的并发,不是服务器端的并发。
作者: lovelysand    时间: 2007-10-18 16:05
.有些了解了
作者: huipingzhai    时间: 2007-10-18 17:39
难得的好帖子,大家一定要支持啊!
作者: LandyCHeng    时间: 2007-10-19 10:12
还需要好好学习
作者: oneinhslcn    时间: 2007-10-23 10:46
自学中,受教..
作者: wade_terminator    时间: 2007-10-23 18:47
我们在测的时候是客户端的并发, 但目的是想知道服务器端并发时的性能.
作者: 51zsk    时间: 2007-11-14 15:41
标题: 看懂了一部分,继续奋斗测试
看懂了一部分,继续奋斗测试
作者: 51zsk    时间: 2007-11-14 15:44
标题: 赞这句
我们在测的时候是客户端的并发, 但目的是想知道服务器端并发时的性能.
作者: bluemoon1999    时间: 2007-11-15 11:29
从业务角度来说,压力到服务器上面,并发操作也变成了 按队列进行处理的操作.
集结点 也只是尽量模拟这种并发操作.


主要大体上 能承受LR提交的压力,感觉服务器就可以承受制定的并发人数了..


路过,学习了.
作者: bengen    时间: 2007-12-10 09:55
学习中,请教一个问题,如果说是一个WEB产品上架,我要测试服务器端的压力,比如APACHE /JOBSS.和数据库三者的压力情况,那应该怎么在LR设置场景呢?可能问题问的有点大.我想知道的是服务端的压力测试应该如何设置场景?
作者: wuyu702    时间: 2007-12-13 18:00
还有点迷糊
作者: amandapyp    时间: 2007-12-13 22:59
长知识`~努力啊,谢谢楼主
作者: ZH_0211    时间: 2007-12-21 10:54
原帖由 大漠飞鹰 于 2007-1-22 15:08 发表


测试前肯定要了解需求,或者说是测试目的。
就说明“该系统应支持200个并发用户。”, 这种需求严格意义上来说是不合格的需求,因为描述不够清晰,过于模糊等。
当然,在实际中,这类需求到了我们测试人的手里 ...



我想知道这个对于WEB页面的2/5/8和2/5/10指的是什么?是指对这两个200个并发用户的比例值吗?
作者: least    时间: 2007-12-21 12:31
标题: 回复 13# 的帖子
同意,有時候在測試多用戶同時在綫沒有發現問題,在測試多用戶並發執行操作,就會有意外問題
作者: yoyo7777    时间: 2007-12-28 10:02
激烈的讨论,精彩的对白,受益匪浅啊
作者: dujun    时间: 2007-12-28 10:29
原帖由 ZH_0211 于 2007-12-21 10:54 发表



我想知道这个对于WEB页面的2/5/8和2/5/10指的是什么?是指对这两个200个并发用户的比例值吗?


是指 WEB页面的响应时间 2秒5秒8秒
作者: gev8561    时间: 2007-12-28 16:23
那到底怎么测并发用户啊?我都看糊涂了!这刚开始学习性能测试呢!
作者: jhui008    时间: 2008-1-7 16:03
值得顶起来的讨论点

看了Zee的博客,好多收获啊,谢谢了
作者: sfup_ycd    时间: 2008-1-7 18:25
个人理解,欢迎拍砖:

    假设在lr中设置100个并发用户,平均响应时间为2s(曲线平稳),则此时的lr并发数为100,服务器端并发数为50。
设置一个集合点,在集合点的这个瞬间,lr并发数为100,服务器端并发数也为100。(在服务器能同时接受这100个并发的情况下,否则将在服务器端产生瓶颈。)
作者: redforce    时间: 2008-1-10 18:15
标题: 回复 1# 的帖子
说说我对集合点的理解
举例说明吧:比如赛跑,都有一个起跑线,所有参赛选手都是站在同一起跑线开始跑,那么这个起跑线就相当于是集合点。
例如 :登录, 设置集合点后,所有的用户几乎可以认为是同时点击登录的,这个是严格意义上的并发
不设置集合点,就有用户先登录,有用户后登录,但是对服务器来说这种情况也是并发,只不过压力分散了
作者: llj    时间: 2008-1-14 12:00
标题: 看两遍之后,终于明白了
谢谢,受益匪浅!
作者: log_1    时间: 2008-1-14 13:15
继续关注
作者: lf0026    时间: 2008-1-14 15:39
并发。。。模糊
集合点。。。。设置200个用户在登陆这个事务点 等待-集合 然后同时点 登陆 这样就达到了所谓的并发。。
一般只有在需要对性能调优和压力测试的时候才会做这些。。。

以上纯属个人观点
作者: smilehe    时间: 2008-2-2 16:23
个人感觉在进行数据库调优时候,可以用集合点看看有没有死锁等。
作者: cq0417    时间: 2008-2-20 22:42
受教了。。学习中ing 。
作者: wangmjdp    时间: 2008-2-27 12:13
标题: 新手,学习中
谢谢!了解了一些。继续学习中
作者: peakcjf    时间: 2008-2-28 01:51
高手啊,分析的很精彩
作者: 307446281    时间: 2008-2-28 10:14
学习了,感觉都有一点道理
作者: 兰兰    时间: 2008-6-11 23:05
现在好像在做性能需求时,需求本身就很含糊,所以我们在做并发测试时,一般不设置集合点。
作者: donking    时间: 2008-6-13 15:05
  受教了!!
作者: 10885    时间: 2008-10-10 11:45
了解了一些基本概念和实现原理,重要的是实践中自己摸索
作者: oicq997    时间: 2008-10-15 12:41
标题: 好帖
受用,受用~~~
多谢,多谢~~~
作者: dyc611    时间: 2008-10-16 11:42
多讨论讨论感觉不错。。。。。。
作者: xwlong    时间: 2008-10-20 22:42
多学习,积累知识
作者: cursor    时间: 2008-12-2 17:03
各位分析得很好,差不多理解了并发数的概念与集合点的区别了。
作者: hubin9906    时间: 2008-12-8 14:05

作者: hellohw112    时间: 2008-12-15 11:01
好贴,顶上去
作者: lvicer    时间: 2009-3-1 12:52

作者: loveguoguo    时间: 2009-3-2 12:08
有个问题,如果设置了集合点,那么在集合点达到之前,服务器上有压力吗?
作者: hdtest001    时间: 2009-6-11 14:21
学习中
作者: coolgirlrui    时间: 2009-6-11 15:58
3Q
作者: shengwenxun    时间: 2009-6-11 23:39

作者: witcher2002    时间: 2009-6-12 15:37
受益了!
作者: hdtest001    时间: 2009-6-16 14:24
luguo
作者: 狗狗gogo    时间: 2009-12-17 11:55
感觉都有道理。。。看的有点儿云里雾里。。。
作者: renquande    时间: 2009-12-17 16:27
标题: 关于并发用户与集合点的问题
无论是并发还是集合点都是对于客户端而言,通过网络,各服务器的消耗,到达服务器还不是严格意义的并发,加上集合点一般情况下响应时间会变长,导致在验收的时候对开发方不利,如果是调优,最好增加集合点

[ 本帖最后由 renquande 于 2009-12-17 16:29 编辑 ]
作者: illlh    时间: 2009-12-17 19:15
本来我以为我明白了,看了帖子我糊涂了,现在怀疑我前几天的测试都做错了,已经彻底不明白了。
楼上的几位大大讨论的偏重理论,少有实践例子,我就把前几天做的一个脚本拿出来,大家帮我分析一下吧。
脚本描述:
action(
login({user},{passwd});
logout([user},{passwd});
)          //action部分未设置迭代,参数化数据量假设无穷大,不考虑参数化失败的可能。

场景一描述:
运行50个用户,场景开始执行时,每5秒增加2个VU,达到50个用户后,继续运行3分钟,3分钟后,每2秒停止5个VU,直至所有VU停止。
场景二描述:
对脚本进行修改,在login()前增加集合点,集合点设置数为50,当所有(50个)VU到达后释放。
运行50个用户,场景开始便初始化所有VU,运行3分钟,3分钟后,每2秒停止5个VU。



问题1:
在场景一中,所有50用户都运行起来的3分钟时间里,LR对服务器造成的压力,可否相当于场景二中同步点释放时造成的压力??
问题2:
场景一中VU递增的过程中,假设当前运行的VU为30个,是否可认为当前服务器承受着30用户并发的压力????


我的问题问完了,还有其他不明白的,我就不在这问了。今天这帖子搞得我觉得自己都有点蒙了。希望楼上的大大们给予解答。
作者: renquande    时间: 2009-12-18 09:47
个人观点,仅供参考:
问题1:
不一定,因为我们增加集合点的目的是让这个事务,也就是要操作的这个点的瞬间压力,肯定比不加集合点时对服务器的压力大,而且在50VU运行3分钟里,由于网络延迟、中间件、服务器等等,不可能都在同一个事务点并发,充其量就是对这个应用系统在并发,所以这种是否相等、谁大谁小无法判定

问题2:
我觉着不是严格意义的30VU并发,因为并发操作的定义是在同一时间内做同样的事,所以这种并发量应该在30VU同时在线和30VU并发之间

欢迎各位发表见解,批评指正
作者: 无_花_果    时间: 2010-1-12 18:06

作者: liulangchina    时间: 2010-2-4 10:18
插入集合点的并发,比如50个用户,当49个用户到达集合点时,肯定不会并发,必须等到50个到了后一起并发,所以,楼上有人说受诸多因素影响,说法不准确,既然设置了集合,肯定到集合点这块进行触发!!

补充下,设置事务的目的目的是为了加集合点,类似oracle设置事务的目的是为了加锁道理一样。。
谢谢!!

[ 本帖最后由 liulangchina 于 2010-2-4 10:20 编辑 ]
作者: chengning    时间: 2010-4-29 14:17
学习了
作者: jzr1986    时间: 2010-7-28 13:46
还是有点不太明白啊~再看看~
作者: gongx2008    时间: 2010-8-17 16:24
标题: 没看懂你到底要表达啥子

作者: xiongshao1986    时间: 2010-11-15 10:33
学习学习
作者: llh1003@    时间: 2011-3-21 14:59
受教了。。学习中ing 。
作者: jj1625    时间: 2011-3-21 15:21
恩。希望能有具体实例!谢谢
作者: shwesh    时间: 2011-4-13 21:08
收获蛮大,谢谢。
作者: 本来就很乖    时间: 2011-4-23 09:42
学到不少东西,谢谢前辈们
作者: 石头85    时间: 2011-5-5 11:29
新手,正在学习如何分析
作者: wuwoyiran    时间: 2011-5-9 14:30
听前辈们讨论,受益匪浅呀




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