坚持到底!测试到底!

LoadRunner如何获得参数化中每个关键字的搜索响应时间

上一篇 / 下一篇  2007-12-13 10:01:05

 
看到一篇觉得很好的有关loadrunner的文章,为了方便找,在这里先放一下:
 
        在测试搜索引擎时我们一般采用大量的搜索关键字,有时有必要了解在并发访问的情况下每个关键字的响应时间,一般如果不对脚本进行处理的话你可以获得每个关键字的响应时间但是这些时间没有跟相应的关键字对应,所以对程序的调优没有什么大的帮助,这里介绍一种方法,可以让你知道在并发访问下每个关键字的响应时间。51Testing软件测试网:~%z3t'r0} h4x+S
        解决办法是可以把搜索搜索的操作定义为一个事务,事务名也用参数值代替,这样就可以从测试结果中知道该关键字的响应时间了。举例如下:51Testing软件测试网 zL,E0z+] d.h-M(N
#include "web_api.h"
s e G&Y h"p)]0Action()
|"lxC8Y!z8s0{
2}]$]8izAArssF0 lr_start_transaction(lr_eval_string("{SearchParam}"));51Testing软件测试网C~(R gC-ud c
 web_url("s",51Testing软件测试网S,\7GPS:G.tW
   "URL=http://www.baidu.com/s?wd={SearchParam}",51Testing软件测试网:eR;v#tc5cO(uO
   "Resource=0",51Testing软件测试网0C L7l&pPf~
   "RecContentType=text/html",
3\a8W6?:aP0   "Referer=",
}5]Y-eM#w0   "Snapshot=t1.inf",
.BD`&P1a1vjY*v0   "Mode=HTTP",51Testing软件测试网F}T%MML B
   LAST);
7r6`"q.B9H!is0 lr_end_transaction(lr_eval_string("{SearchParam}"), LR_AUTO);
~-[5L5f1P f W+e*V|0 return 0;51Testing软件测试网.{$k4v%_3JZ y
}
/`-mVox0        这样就可以在场景运行时通过事务监视图中就可以看到每个关键字的所用的时间了。
6})y)K_-Lb0        这种方法的缺点是当关键字比较多时,监视器中行数会增多,可能导致Controller显示不下。
])` aJy:Z%|0        还有一种方法,示例如下:51Testing软件测试网i6^;o9wy:w
#include "web_api.h"
1J6u/z#TuN!_{0Action(){
D u$R0m?5c!g0 float trans_time;51Testing软件测试网n+q+x!B H7q0M"l m
 lr_start_transaction("sousuo");51Testing软件测试网#cND {,? _V D"S.qr
 web_url("s",51Testing软件测试网xw*P6f0\"ENU
  "URL=http://www.baidu.com/s?wd={SearchParam}",
j8z ? QQ"g7gW @XK [0  "Resource=0",51Testing软件测试网q1f&s0s`-w},\+j-i
  "RecContentType=text/html",
K Q?q,}z jN0  "Referer=",
U u%f1L/^(y{9h%O0  "Snapshot=t1.inf",51Testing软件测试网%UH8jM jWSmO
  "Mode=HTTP",
n0\ t a/mX0  LAST);
V.z6zo}0 trans_time =  lr_get_transaction_duration("sousuo") * 1000;
? uf;](A|0     lr_output_message("SearchParam:%s,duration:%fms",lr_eval_string("{SearchParam}"),trans_time);51Testing软件测试网.^4EZ _rDa
 lr_end_transaction("sousuo", LR_AUTO);
[uau5S$Q9~M0 return 0;
[i@Z'v+O6K"l0}51Testing软件测试网(YG$h+u2\3M3pR,s
        一般使用这种方法比较好,可以把lr_output_message函数换为自定义的函数,把结果写到一个结果文件中去,注意写入的文件最好以vuser id来命名,这样可以保证同时只有一个进程在读写这个文件(这样一来不同的用户读写不同的文件,否则如果所有用户写入同一文件在用户数多的情况下并发可能造成对同一文件的访问共享违例,获得vuser id的函数为lr_whoami)。另外需要说明的是这里获得的事务时间可能比通过lr_start_transaction和lr_end_transaction获得的事务的时间要小一些,这是由于测试工具自身的原因造成的,可以不必理会。51Testing软件测试网Jdt ^Hx
        同时,如果想知道查询过程中哪个关键字搜索结果错误,也可以加上验证点,同时可以再加一些代码,把搜索超过一定时间的关键字过滤出来。51Testing软件测试网4cT)Nsq z`C$_]

TAG: LoadRunner loadrunner

 

评分:0

我来说两句

Open Toolbar