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

Loadrunner最大承载用户数?

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

51Testing软件测试网?Ic x8z

Loadrunner性能测试指标分析51Testing软件测试网"o_9j$K0C:oV]h l

hUkP%I m0WZ%x DHy%d0(写完这篇总结,我自己都迷糊,希望有大大看到指点迷津一下,也希望各位看文的博友能提一些建议)51Testing软件测试网?:qQKpE

51Testing软件测试网Y:D0~~7Z"M5O

响应博友们的建议,修改一下标题~~~

9xC8mz8k.C W$I H0

%xR(x.^&f;g0PS:本人在51testing和sina blog上的文章全部为原创转载请注明出处!!

'h$}9R1W"F&|uk051Testing软件测试网7Jg.O$x0m

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

"g1R9C;mn?0

bm"XJ sz2W%jXQY(S0今天在论坛里看到一个老帖:http://bbs.51testing.com/thread-10681-1-1.html51Testing软件测试网 cIihg1W*cA+P4o
发现很多牛人(PCL以及sunshinelius)的回复,仔细的琢磨了一下,觉得自己的思路还是没有错,下面整理一下:

!cAVLh2h5pG051Testing软件测试网 piDu#K

1、从其他项目经验库或者项目其他角色处获得的性能指标51Testing软件测试网w Mj"^?+Zu(c
A、项目经验库51Testing软件测试网2gF%s1y~zy R @l
前些日子拜读了csdn的一个专家的文章,他描述了一个完整的性能测试流程(虽然简单了点儿~),但是我还是从其中找到了一些我想要的东西,包括建立项目经验库;51Testing软件测试网!D*yQ Jx `4t?
每次测试结束
;u#Ih2ciD0◇把项目的性能指标(平均响应时间、最大用户数、最大并发数等web服务器或数据库的性能指标)收集起来,建立性能指标库
!h$B3],SfikR0◇把脚本代码及相关文件(参数化数据文件)收集整理并存档(重点是可以重用的部分),建立脚本代码库51Testing软件测试网fJ)g1m+h)\ \[
◇把测试方案场景设计(可能包含在测试计划里)收集整理,建立测试方案设计库
6fa5Ridg._/wm6e0◇把测试结果(Analysis结果以及你的性能测试报告)收集整理,建立测试结果备份库51Testing软件测试网*l U2P,sF'gZ0P6I
◇把项目性能调优过程(包括负载均衡配置、IIS或tomcat或apache的设置更改、应用程序调优更改、数据库配置调优方法等)记录下来,形成调优方法库51Testing软件测试网 u-tPc"`
如果仔细的建立上面的工作模式并积极积累,再经过5-10个左右的不同的项目,相信大家再做项目时,不能说是轻松,只能说是异常轻松了,呵呵51Testing软件测试网1C$J:\TLSB
至于怎么记录这些信息,使用什么工具比较好,各位自行挖掘!51Testing软件测试网^!V5H%W#~ }@"b

51Testing软件测试网~Ulw,CD"Ll

B、项目需求51Testing软件测试网8K1QM T(ixN,z
有经验的系统分析师或者架构师,在设计项目需求的时候都会包含项目的性能指标,这些指标是我们性能测试方案以及场景设计的主要参考51Testing软件测试网 o MW%t`Z)j;r

q!v8eo*Cx0C、模糊的目标51Testing软件测试网)_'^`vIg B
不能否认的是,现在很多开发人员甚至开发经理,项目经理这些人物,其实对性能测试以及项目的性能指标概念也是非常模糊,他们的经验可能大多都没有规范的性能测试这块儿

!bk)Yy8\D!p\;n&y(I051Testing软件测试网O(]^ X[5_UhO

的,而在不同的公司结构里,这些人也会提出一些非常模糊的性能指标让我们来测试;就像文章开始的那位网友遇到的,她的领导大口一张,出来一个指标,汗!!通常这类模糊的目标,我们在测试的报告中都要提供,否则领导们会翻脸、PK、爆踹各位云云,没准儿也会sm哦!!那怎么解决呢??看pcl2004_27大大的一句话:51Testing软件测试网"eeP8c:E
“性能测试是个收集分析数据的过程”;
M'Nu;X.w|}yRa0所以,我们把模糊的性能指标合理的分析解释为LR的一些标准元素,这样我们就可以理解并且进行测试了!51Testing软件测试网*Zz+^,TX5\ Hy'mcR }

51Testing软件测试网wupT`Z2w-}

2、尝试把性能指标分析
%Y5B E"Z-e.sl0还是拿“如果估算系统一天的最大承载用户数?”为例子吧!首先:51Testing软件测试网.]'T(j ~|X w
◇这个所谓的用户数到底是啥东西?
BL*e/g7Tn$V+O0领导们的意思可能是真实的用户,而真实的用户对于我们来说几乎无法统计,所以这里我用虚拟用户来进行统计;
)d#\9]S R#f0要统计一天的用户数,我们必须分析虚拟用户的具体访问行为,我管这个指标叫“生命周期”:生命周期就是一个用户从登录到退出之间所做的操作,也就是迭代次数;51Testing软件测试网2c/h"Z6OJb5x
比如:我们打开news.sina.com.cn,看了3个新闻后关闭,这就是一个用户的生命周期,在这个生命周期里虚拟用户做了3次迭代操作;比如说我们登录论坛后回帖5个后退出,这也是一个生命周期,在这个生命周期里虚拟用户做了5次迭代操作;这里恐怕有人就要问了,我登录论坛后,我可能发3个新帖,回5个帖,然后浏览20个别人的帖后才退出啊!这样,我们的分析就更必须复杂了,碰到这种情况,我通常把一个用户分成3个独立的用户行为,既第一个行为发了3个新帖,第二个行为回了5个帖,第三个行为浏览了20个别人的帖,用脚51Testing软件测试网9k%MY6dm6L

51Testing软件测试网4A%N*hm2IFJ8u

本实现如下:
J"j@9fS0Action()
BS7B/x C7p9` f0{
I&xt]T0   //发帖的脚本;51Testing软件测试网Xc J4ij'L]`
}
8H(RN @VA|0| vM*Y.B0Action2()51Testing软件测试网c;B,K6GWD0}0RDb k
{
T/D#s*O$p9@Y||0   //回帖的脚本;51Testing软件测试网%}2[ plF1f.nG%\0j U
}51Testing软件测试网C1o I [Rm_5yz|*^;{
Action3()
*SHz t{)~0{
C*BF'H~x~L`0   //浏览的脚本;51Testing软件测试网0J/v$UH8M
}
m6zW3iB e.lzWD0然后在runtime-setting里设置action的迭代次数为3,action2的迭代次数为5,action3的迭代次数为20,就搞定了一个虚拟用户的生命周期;但是因为LR不好统计一个vuser生命周期的处理速度(通常我们只是统计事务的响应时间,而我定义的用户生命周期如果包含很多action或事务,而且只能统计每个Action或者事务的TPS,那么我将无法统计整个生命周期的处理速度),所以,应该把所有的事务都放在一个大的事务里去,实现方法如下:51Testing软件测试网5d2V4w&q O `5S6q;d-J
Action()
#J6E:P&H*Wc0{
^f,q8@Lk0   int i,j,k;51Testing软件测试网,Un6{-v?[ Q'G:c
   for(i=0;i<3;i++)51Testing软件测试网:zl8w6S$K/I~G
   {
M7y3V,f-smvo4jx0         //发帖的脚本;51Testing软件测试网C2M|0UhsJ
   }51Testing软件测试网(g}D'|W-z]Rx
   for(j=0;j<5;j++)
5La lE'lBN0   {51Testing软件测试网)p1`EC3y3H*R6I
         //回帖的脚本;51Testing软件测试网 aWY_,rm:c]ba:J
   }
UaOl0m"C0   for(k=0;k<20;k++)51Testing软件测试网1B6] lE$p!^2y@K
   {51Testing软件测试网zi.On'oMS
         //浏览的脚本;51Testing软件测试网%Zn?_ N#B ~
   }
+Xb+v)kqL0}
.fEa6] G6VAY0这样,我就可以统计了。
?tG4x;o Ds%U0k0通过与项目其他角色的探讨与分析,讨论出目标系统的典型用户生命周期(记得加入思考时间模拟用户的真实访问),然后设计好脚本。51Testing软件测试网 ~ ?&@5LNz7xSj

)]%n.H.K8p u0◇何为最大承载?
6?5P&PmrYz0既然是最大,那么就一定是一个极值;因为通常在负载量不断加大的情况下,服务器会有性能下降,从而造成处理能力下降和速度慢,所以我认为这个极值是处理典型用户的生命周期的最快速度。
xy3W9^"Kz~e0获取这个速度,我认为有以下几个方法(写完下面的我也很郁闷,汗~):
E.]tC ],K;r0可以用不断增加负载的加压场景测试出TPS最大值时的虚拟用户数,然后以这个虚拟用户数为目标,查看TPS是否趋于稳定并且可以达到那个最大值;
$Jomv^/`9I0可以以TPS为目标,建立一个较高的目标,然后加载足够的虚拟用户,查看TPS实际最大可以达到多少(因为在以目标的场景中,可能只加载几十个用户也能达到TPS最大值,郁闷);
]N6f:lciB0◎也可以直接设计场景运行10分钟或者半小时,查看处理典型用户生命周期pass数(要在系统稳定的情况下,通常事务通过率应超过99%),然后除以时间算出典型用户生命周期的TPS.51Testing软件测试网ZB_'DrM

4M:|s,m#}7z051Testing软件测试网t*?7Wo*Qs4\
◇算出一天的用户处理量51Testing软件测试网&o7xd^n D/m dfV
假设那位网友测出这个速度为:N个典型用户的声明周期/秒(这里注意这个速度一定是趋于稳定的),这样我们就可以算出1天(24h)的时间内最快能处理完多少个典型用户生命周期的个数(N*60*60*24),从而得到系统一天的最大承载用户数。

;d4FZ,I-?cBNT051Testing软件测试网o2A,BU!?WS#S


s9]P ^t6R:xF0欢迎各位同行大拿批评指教,可直接在留言板留言,也可以加msn: qiguojie at hotmail dot com 或者 QQ 41022551Testing软件测试网 OJ H B9P


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-05-02  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

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

RSS订阅

Open Toolbar