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

便于Loadrunner测试的开发需求提议

上一篇 / 下一篇  2007-09-14 16:28:41 / 个人分类:Loadrunner

51Testing软件测试网h9]{fz

便于Loadrunner测试的开发需求提议

`^$k;x0B ^0

7Lz1XW.Yt0 51Testing软件测试网7d/uJ?'Y

#Ub Jjp$N!Bfdfd0PS:本人在51testing和sina blog上的文章全部为原创转载请注明出处!!51Testing软件测试网.P|#GX?

s)R+^+@ a#H0 

7Jt&o W h}(@it051Testing软件测试网 CKR0g,UX.Z%A

通常,我们进行性能测试都是安排在功能测试完毕或者线上环境搭建完毕之后,这个时候一般程序的编码工作已经基本结束,甚至版本都已经锁定不再修改,如果在这个时候用loadrunner等工具去录制脚本出现一些困难怎么办??如果系统足够复杂的话,我们的脚本准备时间也会消耗很长时间;同样,我们的测试结果分析也会非常耗时,往往形成测试进度的无奈拖延,造成成本的增加。

|~g ? hc051Testing软件测试网;dRBP E

有经验的性能测试工程师应该在项目开始设计时,就考虑添加一些测试的需求进入开发计划,用来保证项目的性能测试工作可以顺利的开展(有经验的系统的设计者也会考虑到这方面的内容)。51Testing软件测试网IO2Un%Np&F?7@

51Testing软件测试网$t-nL1X'J6Gp

当然,如果测试可以进行一些开发工作,那么开发组只需要提供一些接口资料,测试也可以独立完成这部分工作。

iL [7s!z0

h1r-qND2N)IoI0那么,我们用loadrunner做性能测试时,通常提什么开发需求可以更方便测试呢??

"w&t-SS0n/|q!k0

!s@6Ba6M"z3vo{01、方便脚本录制和脚本强化的一些接口程序51Testing软件测试网T r8Bo+u}K
   例如:要测试一个论坛的发帖功能的处理性能,不用测试浏览。但是发帖的页面中要包括用户登录功能、论坛列表、统一的网页头和尾,这些东西其实不是我们要测试的,但是51Testing软件测试网"`L'FJu!e

#VM5?w9tt'[` c0脚本录制完毕,我发现录制了如下东西:
a!T*?9SV0{C0   ◆保存cookie51Testing软件测试网j1m'p-Zm'o
   ◆打开发帖页面
)^"n q"EVE v0   ◆加载用户登录功能块
^#n#|UTfuN0   ◆读取本论坛帖子列表页
pt"@V_j_0   ◆读取论坛列表页51Testing软件测试网;Q s)VF7mgY0vC
   ◆读取网页头和尾
aF~"A'e2k[0   ◆提交发帖内容数据
cra\%E0   ◆发帖完毕后跳转到帖子内容页
z)k:o,Wqa q#p7g;?b0   东西好多啊,但是实际呢我只想每次登录一个用户迭代发帖100个就退出,我不希望执行脚本时还要去发送其他的请求,这不是浪费我有效负载的生成效率么?51Testing软件测试网TQl%`m/c
   后来我向开发提了一个建议,要求开发一个简化的功能页,页面元素4个编辑框:用户名、密码、标题和内容,一个按钮:提交;如果给我这个页,我录脚本非常简单;录制完的脚本也不会包含其他对压力目标无效的操作!!开发很快给了我开发了一个web页,搞定了,地址类似:
YZ2s6JN|*V7M\0http://bbs.xxx.com:8080/addtest.asp?bt=loadtest001&nr=loadtestloadtestloadtest&user=test01&pw=12345651Testing软件测试网uwN:G2e"HVT
我就录制了这个URL,把bt、nr、user和pw四个参数化后,就搞定了,真是很简单!!后来我问开发,怎么这么快就弄出来了,他说就是把他的一堆程序代码里的一小坨代码Copy出来就搞定了,2分钟的事~~我瀑布了~~51Testing软件测试网0~!Q1hF(Y)NuZ1GA

s*X-x/x/i s fJG0
_%`I)uA-g.Zd0   上面这个例子告诉我们,我们测试的是服务器端(web服务、应用程序、网络等)在压力下的工作情况,是为了找出服务器端这边有没有性能问题,不需要管是从应用程序发出的压力还是从其他的接口发出来的压力,只要产生正确的压力就OK了;合理的让开发提供一些接口,可以有效的简化我们的工作烦琐度,也可以产生更实用的脚本。

z3SS7i+{%T0

DY7VuRTfD d0   在上例的实际项目中,发帖成功本来程序应该自动跳转到帖子内容页,或者提交的参数有错误返回页面提示;但是我们在用开发给的新接口进行测试时,并没有这些返回,这样我们要让开发把请求处理的结果返回(例如发帖success\failed等字样),保存成参数然后进行判断或者记录,这样强化了脚本,也方便了我们对结果进行分析。  

/fpPR {#M*Wk051Testing软件测试网~ _mXW,Yn s

2、去掉妨碍测试的一些限制检查
&qk.s}2~0   在被测试程序中,有一些功能对我们的测试是有妨碍的,比如说很经典的"登录验证码问题",再比如说"发帖时间限制问题";这些问题阻碍了我们脚本的回放,因为这些功能对测试结果没有任何影响(有影响也是可以忽略的小),我们可以让开发给一个去掉这些功能的测试页,常见的限制有:
|Tft(bT,b3N0   ◆登录的验证码51Testing软件测试网a6@8Cc mE$d"[x
   ◆N秒内不可以发新帖51Testing软件测试网4S'y G6F0N
   ◆连续操作N次,禁止操作N时间
^:Z^P0d+{'g ST@r0   ◆不允许重复提交相近的数据(例如:1111111111111111110000和1111111111111111110001)51Testing软件测试网r ~rc{F!\
   ◆不允许连续刷新页面
Le*}6bc9qf#uA0   等等……

5VM G Gc3P.D.I:`0

(G)|T@v r-EA b-`6j03、去掉无关性能测试的页面项51Testing软件测试网 i-{5fH sa_)e+K
   现在的web页越来越复杂,有些加载了第三方的组件,有些引用了其他站点的资源,在测试这些页面的浏览时,负载生成的效率通常很低,而且多余的引用通常对测试环境带来

r9Xr#F m%k051Testing软件测试网;g7L/H*N$[ x5@*O,Y

一些影响,比如消耗了网络带宽;而且测试结果分析非常复杂,有的时候我们看平均响应时间波动非常夸张,实际上一细分都是这些引用的模块造成的。那么通常有什么东西是垃圾呢?51Testing软件测试网]'IvrK.P'^BN
   ◆被测页上的其他站点的图片
b;mI/?8K`b0   ◆统一登录模块(类似JS那样的引用)51Testing软件测试网 d3?W*OP-G
   ◆统一的页头和页尾(例如网站导航、网站声明那些类似JS的引用)
t7DzcW)j8y2T0   等等……51Testing软件测试网^?4}*V2z(W%?$O#{
  其实,就是找出那些资源不是从被测试服务器上请求的就OK了。51Testing软件测试网.j5h[^5h'N RW

51Testing软件测试网WV"a*G!T(p:^v:}

4、提供一些必要测试输出
g6ib [.dG#]:g"IyxjM0   在测试一些复杂的架构时,有时使用工具可以获得的信息有限,无法获得必要的数据来进行测试分析,这样我们就必须要开发提供一些测试输出!还是看一个例子吧:51Testing软件测试网$z.m'A-C6Js&_wr

51Testing软件测试网+}@UEK+A#[

51Testing软件测试网iCP+OQ(dW7S)U
   例子:还是上面的论坛发帖测试,发帖之后,信息被均匀的提交给2个不同的应用服务器(前端的负载均衡和web服务就不说了),这2个应用服务器不进行数据处理,随后把数据再次发送给一个分发服务器,分发服务器把数据做文本保存并且发送给数据库服务器进行备份存储,随后再把文本文件分发返回给2个应用服务器,应用服务器读取这些数据给浏览的请求。

1V.V%I%u-FTBY051Testing软件测试网Q Guk:g,C


(Ai Ud{/U0\ d&d&o WC0   这个测试使用了负载均衡,我在测试的时候使用IP直接访问一个应用服务器(跳过了DNS和负载均衡),同时使用场景监视器监视被访问的应用服务器资源,但是我无法考虑到负载的增加对于分发服务器的文本生成功能和分发效率的监控,因此我让开发修改程序,在几个关键点上把log打印出来,然后返回给我分析。
zrF$YK0   (这个做法很笨,应该把这几个服务器的测试分段进行,这里为了说明测试输出的必要性!)51Testing软件测试网-A @/]"U)_|

aKc%o~GV;k05、……(可能还有其他的地方,或者更深的地方,暂时还么想到,希望各位多多指教!)

"_Q3T%vTlk0

j^S/G?#U#F0PS:可以在blog的留言板直接留言,我肯定会回复;另外,推荐使用msn进行讨论 qiguojie at hotmail dot com;QQ 41022551Testing软件测试网n\#wKsN


TAG: Loadrunner 性能测试

不要安于现状=奋斗=永不停息 引用 删除 wangyong3552128   /   2009-03-20 15:26:49
原帖由qiguojie于2007-10-16 10:51:34发表
回复you力:
请联系前后文再来理解,另外我是测试测试发帖这个程序模块的性能而已;要考虑完整的服务器.

qiguojie   如果你这么说就对啦。但是你在文章中没有说“我们的发帖是一个固定的服务器”,很让人疑惑的。
在测试时请尽量模拟真实环境!
比较狠的测试间 引用 删除 qiguojie   /   2007-10-16 10:51:34
回复you力:
请联系前后文再来理解,另外我是测试测试发帖这个程序模块的性能而已;要考虑完整的服务器架构,我们的发帖是一个固定的服务器,只负责发帖请求的处理以及和数据库的联系,所有的图片啊,网页头尾啊,列表啊,这些都不在这个服务器上。汗。。

不过欢迎你来讨论这个问题,还是那句话,产生正确的压力,前提当然是你要分析好你的架构,不然简化测试也会造成测试结果失真。。

:)
引用 删除 you力   /   2007-10-15 14:22:34
你脚本录下的,全部是当用户点击时,发给服务器的性能,这是压力产生之源.
引用 删除 you力   /   2007-10-15 14:21:34
关于“西好多啊,但是实际呢我只想每次登录一个用户迭代发帖100个就退出,我不希望执行脚本时还要去发送其他的请求,这不是浪费我有效负载的生成效率么?”
如果你让开发重新开发了一个页面,虽然架构没变,但是发送给服务器的数据的大小,完全变了啊,空的架构,能对服务器造成压力么?我觉的性能要真切的模拟出用户操作,毕竟,你是拿那个页面向用户开发的.
引用 删除 v252v   /   2007-10-08 13:38:36
呵呵 学习ing
hy0720的个人空间 引用 删除 hy0720   /   2007-09-20 17:14:58
比较狠高手啊,向你学习!
ebuluo的个人空间 引用 删除 ebuluo   /   2007-09-14 17:53:47
5
很有启发!想在以后的项目中试一下
 

评分:0

我来说两句

qiguojie

qiguojie

北京测试一草根儿

日历

« 2024-05-16  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

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

RSS订阅

Open Toolbar