LoadRunner 使用system函数进行log的自动分析
Xl)B-p(c"w#C0LoadRunner 使用system函数进行log的自动分析
&r-p7DQ$}o:T0q;@m$B:rVT:A4D0 51Testing软件测试网4\:lL\t,_
51Testing软件测试网{&D'b)itPS:本人在51testing和sina blog上的文章全部为原创,转载请注明出处!!51Testing软件测试网kj'UAB@]
8l$P*n,NFC9wq+yI0我在《明确LoadRunner可以输出的结果》中,讲到可以使用lr_out_message输出log,但是这个是lr自己的log,是按vuser分成一个个的小文件;也可以使用fprintf()等相关函数来进行自定义log的输出,使fprintf()函数进行的log输出,有很大的灵活性,语句也不复杂,实在是强化脚本一大利器。
D\'t5d2R)SW051Testing软件测试网M|F#B_Y3{但是如果运行1000vuser,测试过程中脚本平均每个vuser迭代执行50次,每个脚本共输出5条log,那么log文件有多少行?
:r?4XY` ~0 1000*50*5=250000
K t uG&Nf o0C7O]2@0如果用记事本打开+查找那也实在太麻烦了,我这人太懒,琢磨着还是自己写脚本实现吧。
其实在文本处理这块,用perl程序(脚本语言)或者shell(脚本语言)来处理是比较方便的,在windows下也可以用批处理文件+find来进行自动分析,不过偶既然在学lr,当然是用lr来实现是最好。
O6RL9Jcb!INZ F051Testing软件测试网Hr(?Zp主要实现方法介绍:
JB0wbo^8\ CY-q n01、使用fprintf()及相关函数输出log
AQ/AO&T^;{02、使用mkdir创建新文件夹51Testing软件测试网;y9X2i c:~%o/dp
3、使用system调用dos命令,对log文件进行条件分解51Testing软件测试网u+Q-l&yPj?
51Testing软件测试网6p
pF.}P
如下面的例子,共有5个fprintf()函数进行log输出:51Testing软件测试网'gf!h1Lp{+U&n
q'f&l
===================================================================51Testing软件测试网6N-a-j['K w9m4y(UQ
/*********************************51Testing软件测试网*k)b-gn4Nz2Bv
* Author:qiguojie
+x0j5s3y%t'o/K4c1C0 * object:software login
-id8p ^@(sD.W0 * date:2007-5-28
3f-b{e!C/MC0***********************************/51Testing软件测试网2h;z['ORg_
Action()
&o6N5_2A
\l-Fi R0{
W.]_$\']_0//变量定义区51Testing软件测试网1^'txx!V
typedef long time_t; //定义一个时间变量51Testing软件测试网No Wf-W1L*f'F
S
char *filename = "c:\\work\\log\\log.log"; //定义一个文件指针,指向log输入的地址
Y`P
Z-Xd+v2HJ0long file_stream; //定义一个长整型变量
'C9{DI Y}b0time_t t; //定义一个时间变量51Testing软件测试网t5EMNaPf9h!Q KU$q
if ((file_stream = fopen(filename,"a+")) == NULL) //打开文件
;Q'q5~E5c0{
2`P.e
p%`0 lr_error_message("Cannot open %s", filename);51Testing软件测试网2y3cw!{
k:U3k
return -1;51Testing软件测试网?Kh~KK0W#T o+L
}51Testing软件测试网W v0y
~O
web_reg_save_param("IsRight","LB=Cache-control: private\r\n\r\n","RB=|",LAST); //保存返回值51Testing软件测试网_-Qh)a]-R8R(X
time(&t); //获取当前时间
w%y1X7S$[!~2e @-M zu0web_url("abclogin.asp",51Testing软件测试网M/M@[ [)sG/}D9F(B
"URL=http://192.168.1.9/soft/abclogin.asp?U={user}&P={password}&L=0&H=3HS28QKH",51Testing软件测试网l\P\r.FM3P
"Resource=0",51Testing软件测试网bwx&j'L2Ik
"RecContentType=text/html",
4g5\2`{ B`*E)?$hY[6B0 "Referer=",
xJ+k5o w1g[2g?0 "Snapshot=t1.inf",
D k(c#HF X p @f0 "Mode=HTML",51Testing软件测试网6|B8_:MY
LAST);51Testing软件测试网oo'Jjx?)o8GF
fprintf(file_stream,"迭代过程开始…………,时间是%s",ctime(&t));
9SVY2SQ(D
c.i+N0fprintf(file_stream,"%s,随机数是%d,",ctime(&t),n);
1Zn N{` u9E0fprintf(file_stream,"用户是:%s,密码是:%s,",lr_eval_string("{user}"),lr_eval_string("{password}"));
$Q2`c,A:Vaqo+G1z0//判断返回值,输入对应日志
Wy'g1o3U)B0if (strcmp(lr_eval_string ("{IsRight}"),"A") == 0)//如果返回值是A
&D%r \@Y,k1^t0{
1Tvlw@'}:r3m D:}0 fprintf(file_stream,"success:用户登录成功,返回值是:%s\n",lr_eval_string("{IsRight}"));
X:?5c(r-j#B&\0K0}
%APHTz sy0else if (strcmp(lr_eval_string ("{IsRight}"),"X") == 0) //如果返回值是X51Testing软件测试网!t^Dnh;v1V}%E
{