所有文章均来自网络(除测试总结部分),如果涉及到版权问题请与我联系,我会及时删除~~~~

LoadRunner的一个解决方案 (转贴)

上一篇 / 下一篇  2007-01-18 08:57:12 / 个人分类:性能测试

 

    某web项目需求信息:要求在用户的登录时间小于5秒(包含登录中下载所有资源的时间)情况下的最大用户并发数。51Testing软件测试网1C%Q s:k:^5LA_/R+x5b

场景描述:以小规模的用户数每格一定的时间递增用户,递增的用户随正在运行的用户一起并发登录。每个用户的响应时间超过5秒就认为是错误。51Testing软件测试网;rp @}'j1{HijR

LoadRunner实现方式:

w0fR.TJRu0

1、录制脚本并把登录过程定义为一个事务,在事务前加一集合点;

2xuf}s"e_ K0

2、使用手动方案,设置用户数为较大的用户数;51Testing软件测试网N*J([ x X#o

3、设置集合策略,选择“释放:当达到100%运行用户时”;

8d3g$?@j?0

4、设置加载方式为“每x秒加载y个用户”,数字根据具体情况设置;

`'f-Ji&I.Y(N0

5、设置持续时间为“无限期运行”;

Q1G_4}9a}1M!`0

6、在Controller的运行时设置中设置“浏览器仿真”,选中“下载非HTML资源”和“每次迭代模拟一个新用户”;51Testing软件测试网 W)J:d3ckS X/]7E

7、在“Internet协议首选项”的高级设置中,选中“在本地保存快照资源”和“出现错误时激活快照”;51Testing软件测试网2E5}2T*j Z[!p

8、接上步,单击“设置高级选项”右侧的“选项”按钮,在弹出的窗口中设置“HTTP请求连接超时”“HTTP请求接收超时”“步骤下载超时”均为5秒,并选择“由资源引起的步骤超时是一条警告信息”为否。51Testing软件测试网$_!A:WG/uuS4c4L

9、开始运行脚本。51Testing软件测试网l0rA&}+u1`g-K5f;N

辅助信息:

;k6@B^{!f0

1、可以参考“从Controller中监视VU执行脚本的情况”了解Virtual User的执行情况。51Testing软件测试网-LK9}5P$Y+J1\9]

2、可在脚本中适当增加检查点。51Testing软件测试网'L"?TGG\H_

3、以上第8步可能不太合理,你看出来了吗,一定还有更好的方式吧^_^

~X;B?4Z/w0

从Controller窗口中查看当前脚本中的参数和vu的迭代次数的脚本实例:

Vj k`F.L2L4F0

#include "as_web.h"

r3l&@(~u'@?0

static int iteration;51Testing软件测试网aT1x{\#MuA

Action()

N/s LkP_,F0j0]T3J0

{

c;V#o(NE;T;{0

char *pp;51Testing软件测试网!W A%YpZ\[i*v_o

//请自定义参数文件NewParam51Testing软件测试网0TUZ0y(_"j#U+n8W+M

pp="value={NewParam}";

fzS,K#QH(d1S j0

//在vugen调试窗口中显示当前参数值,在Controller窗口中不会显示出来

~!W8s {ewB H q0

lr_output_message("Para is:%s",lr_eval_string("{NewParam}"));

,cq6V ?~:Z0

//在Controller监视窗口中显示当前参数值和当前vu迭代次数,在vugen调试窗口中不会显示出来51Testing软件测试网Q2}uOA

lr_vuser_status_message("Para is:%s,%dTimes51Testing软件测试网!v!v7r:N:K9S` v

Iteration",lr_eval_string("{NewParam}"),++iteration);

3L&nMLd;]0

return 0;

.Hs Lkx0

}51Testing软件测试网,M6X}f4y#m

运行场景时在Controller运行窗口中单击Vusers按钮(开始方案按钮的下面),弹出窗口中可看到信息。51Testing软件测试网$t O Z-X8w|+gZ m&e t m

web_url(); 步骤包含了思考时间,即使是在没有指定的情况下。51Testing软件测试网@5J&Bk"C:{'szu0S

解决方式:

WU j)bsMb0

即使没有指定思考时间,系统也会自动为web_url("default.asp")步骤指定思考时间。

],[@m4R0

在重播思考时间启用时该步骤会有10秒钟的暂停。忽略思考时间可以使它立即直接访问。

!K G!m*X3~h0

在Analysis中如果选中筛选器中的包含思考时间选项就可以在结果中看到思考时间。

|6T-E}Z5f&dgG0

以下是有关服务请求的细节知识:51Testing软件测试网&A+i3H@q.?&nV

 51Testing软件测试网(?L+FPEg}9bDb

“在某些情况下运行脚本时,LoadRunner会加入它自己的思考时间。其中一种情况是当收到一个401错误时。当请求的cookie设置不正确时,有时应用服务器会返回401错误。LoadRuner一旦收到这个错误信息它就会等待10秒钟并且重新请求资源。这次LoadRunner将会向服务器发送正确的cookie,从而进行访问。”

~SL&P2E*J VMC1_n^0

 51Testing软件测试网C*{!i}!eE!G:_

“401错误的存在要求站点运行正常。它的工作方式是这样的,第一次请求某个URL或着以一个新的会话返回了URL,服务器需要为此URL认证或指定一个session

@}7\P8S0~0

id,这样就会在错误的请求钟设置一个cookie信息。然后就会重新请求该URL,这次是使用的是一个有效的cookie,然后服务器发送你所请求的信息。”

\c6mDbv'Xb:v0

 51Testing软件测试网X&U6gkq:j(a+r

“如果没有返回401错误的话就不能生成一个新的cookie。没有新的cookie的话就不能访问服务器。”

\Wy6Z{'mK0

 51Testing软件测试网)\`B][jf?*t

“在这里我们想要做的是让LoadRunner立即重新发送请求而不等待10秒。为了达到这个目的,请在脚本文件夹下default.cfg文件中的[Web]下面加入下面语句:”

r#s$lU yFv0

Retry401ThinkTime=0

fKD*p$PV%I2P0

 

;S6[3s(z%_2x9J)h j0[0

“这样设置以后,从Vugen中再次运行脚本或把它加到新的场景中或在已有的场景中删除并重新加入后运行,就不会在重新请求资源时等待10秒钟了。”

W0Y,[$[};N0

使用自定义的VuGen脚本模板51Testing软件测试网-a6d$g%N-E6l'a/y%F?kR

步骤:51Testing软件测试网9`_ yn+R

1、创建一个新的脚本;51Testing软件测试网5jY?&|vW

2、对此脚本进行所需的设置(自定义);

@Km'Z x{0

3、保存脚本;

cd%z8C4{J!I&r0

4、现在,拷贝该脚本目录下的default.cfg文件到Program Files\Mercury

]J*rx9A ?Z7d0

Interactive\LoadRunner\template\{dir}目录下。{dir}表示你将要创建脚本的出处。例如,Web/HTML虚拟用户的目录是\qtweb\目录。你也可以自定义init.c、end.c和action.c,这样以后新建的脚本都会使用这些模板了。

)rm-@!R%bL OYc0

TAG: 性能测试

引用 删除 yd5475   /   2011-04-20 10:06:48
 

评分:0

我来说两句

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 43629
  • 日志数: 61
  • 建立时间: 2007-01-15
  • 更新时间: 2007-07-23

RSS订阅

Open Toolbar