关注于测试自动化和测试管理,我是一个永远的测试新手。

Loadrunner最大承载用户数?

上一篇 / 下一篇  2007-09-11 11:23:00 / 个人分类:Loadrunner

51Testing软件测试网1PK)OJA1ML]7|wo

Loadrunner性能测试指标分析

[!PPuBT0

Hb l.eU^5?0(写完这篇总结,我自己都迷糊,希望有大大看到指点迷津一下,也希望各位看文的博友能提一些建议)

:pbx%V5W1k/Y0

rE&N$F xy0响应博友们的建议,修改一下标题~~~51Testing软件测试网'QKI7k)o;q&U;s

51Testing软件测试网B1TC VN5md

PS:本人在51testing和sina blog上的文章全部为原创转载请注明出处!!

&_(Jn PV S G,{B#g0

4V,T \%nvg d0昨晚在家无所事事上网时,有个熬夜加班的网友问了我一个问题,如果估算系统一天的最大承载用户数?其实最近在做项目的过程中,我也是很迷茫(估计还是我WEB相关知识的匮乏,很多都不知道的原因),在和他讨论的过程中,心里也在不断的质疑自己的理解是否正确,结果讨论到最后,心里也没底,郁闷..51Testing软件测试网9dp0em$}4D+N'Q

51Testing软件测试网xWx k!y;Wn P B

今天在论坛里看到一个老帖:http://bbs.51testing.com/thread-10681-1-1.html51Testing软件测试网P+g9X B+g/j)o-[
发现很多牛人(PCL以及sunshinelius)的回复,仔细的琢磨了一下,觉得自己的思路还是没有错,下面整理一下:51Testing软件测试网P&FM ^,Ya sR9z

aCZ@B3Rg H6F01、从其他项目经验库或者项目其他角色处获得的性能指标
t0P)Z5O!M;J0A、项目经验库51Testing软件测试网,rS^i+W.R
前些日子拜读了csdn的一个专家的文章,他描述了一个完整的性能测试流程(虽然简单了点儿~),但是我还是从其中找到了一些我想要的东西,包括建立项目经验库;51Testing软件测试网2@D&F3lG:Q+bS
每次测试结束51Testing软件测试网FnCh$jv
◇把项目的性能指标(平均响应时间、最大用户数、最大并发数等web服务器或数据库的性能指标)收集起来,建立性能指标库
!@r |xU/D8Qb0◇把脚本代码及相关文件(参数化数据文件)收集整理并存档(重点是可以重用的部分),建立脚本代码库
Qy~9BE I9L{#r0◇把测试方案场景设计(可能包含在测试计划里)收集整理,建立测试方案设计库51Testing软件测试网*J0~$\1n?3@1@]c N
◇把测试结果(Analysis结果以及你的性能测试报告)收集整理,建立测试结果备份库
hQj%J]&`0◇把项目性能调优过程(包括负载均衡配置、IIS或tomcat或apache的设置更改、应用程序调优更改、数据库配置调优方法等)记录下来,形成调优方法库51Testing软件测试网2Oc#B;j2k)l
如果仔细的建立上面的工作模式并积极积累,再经过5-10个左右的不同的项目,相信大家再做项目时,不能说是轻松,只能说是异常轻松了,呵呵51Testing软件测试网Zz7EBZ
至于怎么记录这些信息,使用什么工具比较好,各位自行挖掘!51Testing软件测试网1t7F"W0sU%X

L/X7ZH9eZ2v'B0B、项目需求51Testing软件测试网;B0bo]SV.I:V%E9K
有经验的系统分析师或者架构师,在设计项目需求的时候都会包含项目的性能指标,这些指标是我们性能测试方案以及场景设计的主要参考51Testing软件测试网7FuGj+A%SlsS

#z:mr)I+tM-iB0C、模糊的目标
%z.qo-e3G `V/b0
不能否认的是,现在很多开发人员甚至开发经理,项目经理这些人物,其实对性能测试以及项目的性能指标概念也是非常模糊,他们的经验可能大多都没有规范的性能测试这块儿51Testing软件测试网5vkT4o0a%f

D^ `8NV0的,而在不同的公司结构里,这些人也会提出一些非常模糊的性能指标让我们来测试;就像文章开始的那位网友遇到的,她的领导大口一张,出来一个指标,汗!!通常这类模糊的目标,我们在测试的报告中都要提供,否则领导们会翻脸、PK、爆踹各位云云,没准儿也会sm哦!!那怎么解决呢??看pcl2004_27大大的一句话:
&MP]~@ ]+jls0“性能测试是个收集分析数据的过程”;51Testing软件测试网g/ag%XW_
所以,我们把模糊的性能指标合理的分析解释为LR的一些标准元素,这样我们就可以理解并且进行测试了!

.| Z5yu U'h*M051Testing软件测试网Hz8j/b3L!aR.yg0^

2、尝试把性能指标分析51Testing软件测试网tD#z(^6Zo-K
还是拿“如果估算系统一天的最大承载用户数?”为例子吧!首先:
ub*T/o Dg \0◇这个所谓的用户数到底是啥东西?51Testing软件测试网\2Td c7C$| ]
领导们的意思可能是真实的用户,而真实的用户对于我们来说几乎无法统计,所以这里我用虚拟用户来进行统计;
SiPdu0要统计一天的用户数,我们必须分析虚拟用户的具体访问行为,我管这个指标叫“生命周期”:生命周期就是一个用户从登录到退出之间所做的操作,也就是迭代次数;
P:~gm b1\0aFP0比如:我们打开news.sina.com.cn,看了3个新闻后关闭,这就是一个用户的生命周期,在这个生命周期里虚拟用户做了3次迭代操作;比如说我们登录论坛后回帖5个后退出,这也是一个生命周期,在这个生命周期里虚拟用户做了5次迭代操作;这里恐怕有人就要问了,我登录论坛后,我可能发3个新帖,回5个帖,然后浏览20个别人的帖后才退出啊!这样,我们的分析就更必须复杂了,碰到这种情况,我通常把一个用户分成3个独立的用户行为,既第一个行为发了3个新帖,第二个行为回了5个帖,第三个行为浏览了20个别人的帖,用脚

']rv\Pw s`0

A"SI+C#{]:DW/j0本实现如下:
o"hl\p0Action()
oF)Y)B5B9b0{51Testing软件测试网P uLq8k;rk
   //发帖的脚本;51Testing软件测试网I)C!\6GGpfVM(T
}51Testing软件测试网f+a$[M$o{.e?*N
Action2()51Testing软件测试网I L!@o7e t.[9aF;j`
{51Testing软件测试网7r%k,G:N1Gb
   //回帖的脚本;51Testing软件测试网\"xQu$^i![o'R
}
"e[R}[F6y'\0Action3()
d&xMms[k3Q0S&i0{51Testing软件测试网 OlI@,e~/p,M
   //浏览的脚本;
9cf4x"r KU!rA0}
J&{s6Fo0然后在runtime-setting里设置action的迭代次数为3,action2的迭代次数为5,action3的迭代次数为20,就搞定了一个虚拟用户的生命周期;但是因为LR不好统计一个vuser生命周期的处理速度(通常我们只是统计事务的响应时间,而我定义的用户生命周期如果包含很多action或事务,而且只能统计每个Action或者事务的TPS,那么我将无法统计整个生命周期的处理速度),所以,应该把所有的事务都放在一个大的事务里去,实现方法如下:51Testing软件测试网e,f_:Q&C#r b
Action()
:PfCjc"R3E#k%O0{51Testing软件测试网!kp~C"mr D?.B7E
   int i,j,k;
#T~-zf n*N0   for(i=0;i<3;i++)
"{ZDE+cDd0   {51Testing软件测试网3GB7A,B Z5u
         //发帖的脚本;
!B ^ D#UFdzE.t0   }
k yF)Vh)ON0   for(j=0;j<5;j++)51Testing软件测试网U9s0~]mn4W u#Vh~
   {
o(RQ ?$]M0C0         //回帖的脚本;
(W*rF q)W&w0   }
5u w&y s$cMpk0   for(k=0;k<20;k++)
)ME u~2~"m fV:}0   {51Testing软件测试网-Cr3d)~ ^ S6o
         //浏览的脚本;
"ZIm,l {Ow0   }
B5X6[+PR/k*R1J4e0}
q8dp$f"vO f0这样,我就可以统计了。
y1P9V#V!t0通过与项目其他角色的探讨与分析,讨论出目标系统的典型用户生命周期(记得加入思考时间模拟用户的真实访问),然后设计好脚本。

-]E1U5s%|0

AU%G[U `u8Q6R@0◇何为最大承载?51Testing软件测试网la9jE{1eBW @
既然是最大,那么就一定是一个极值;因为通常在负载量不断加大的情况下,服务器会有性能下降,从而造成处理能力下降和速度慢,所以我认为这个极值是处理典型用户的生命周期的最快速度。
Eq`D.^B@K0获取这个速度,我认为有以下几个方法(写完下面的我也很郁闷,汗~):51Testing软件测试网A)lK:U"s3lE
可以用不断增加负载的加压场景测试出TPS最大值时的虚拟用户数,然后以这个虚拟用户数为目标,查看TPS是否趋于稳定并且可以达到那个最大值;51Testing软件测试网y+JD-t!U'vU
可以以TPS为目标,建立一个较高的目标,然后加载足够的虚拟用户,查看TPS实际最大可以达到多少(因为在以目标的场景中,可能只加载几十个用户也能达到TPS最大值,郁闷);51Testing软件测试网NI%S~"I@
◎也可以直接设计场景运行10分钟或者半小时,查看处理典型用户生命周期pass数(要在系统稳定的情况下,通常事务通过率应超过99%),然后除以时间算出典型用户生命周期的TPS.

H9J*t Yj } s0

5fG`q,z#lK0
,O$R]*E7g ^#[0◇算出一天的用户处理量51Testing软件测试网(PmA:l"Av"e H7@qg
假设那位网友测出这个速度为:N个典型用户的声明周期/秒(这里注意这个速度一定是趋于稳定的),这样我们就可以算出1天(24h)的时间内最快能处理完多少个典型用户生命周期的个数(N*60*60*24),从而得到系统一天的最大承载用户数。

IsZF3H051Testing软件测试网$]r:zi qR5P

51Testing软件测试网;NDOgbz9fQb,|
欢迎各位同行大拿批评指教,可直接在留言板留言,也可以加msn: qiguojie at hotmail dot com 或者 QQ 41022551Testing软件测试网$NLEn R/]r s`at


TAG: LoadRunner 性能测试 分析 Loadrunner

sun9731的个人空间 引用 删除 sun9731   /   2008-11-06 15:19:13
此篇没有讲出实际的内容出来。。看到时间比较早了,不知现在怎么样?
yaya_free的个人空间 引用 删除 yaya_free   /   2007-09-25 17:12:22
标题和内容不符合
比较狠的测试间 引用 删除 qiguojie   /   2007-09-14 10:32:29
哈,回看题目也有点大了~~

这样我就写一个系列好了~~一点点的补充

其实我就怕写出来的东西有理解上的误区,希望有人多帮忙看一下
∮随风而去~的个人空间 引用 删除 ∮随风而去~   /   2007-09-13 17:39:50
讲的都很有道理~
就是好象和题目不怎么很贴近`!
本人愚见,望兄不要计较~!
引用 删除 dd221   /   2007-09-13 10:09:06
hao
 

评分:0

我来说两句

qiguojie

qiguojie

北京测试一草根儿

日历

« 2024-04-09  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 120358
  • 日志数: 39
  • 图片数: 1
  • 建立时间: 2007-06-05
  • 更新时间: 2011-06-29

RSS订阅

Open Toolbar