热爱测试,主要研究性能测试和自动化测试方面的技术,希望与同样对测试有热情的你一同进步成长

LoadRunner编程之文件的操作

上一篇 / 下一篇  2008-02-26 18:33:57 / 个人分类:性能测试

本文出自zibeike的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?3486651Testing软件测试网Fi*w9F Y,M

51Testing软件测试网,NR2y o;V8l
51Testing软件测试网"] {3\q4_ q

这篇文章主要写下LoadRunner下如何进行文件的操作。

8~8i+kZ&j"B+K0

1,文件的声明

3D N} ?Ky)S B3U0

    LoadRunner不支持FILE数据类型,所以在LoadRunner中用int来声明一个文件:51Testing软件测试网 tnO1[eh[z9S

     int MyFile;

,zUOtU8@-~"{0

2,文件的打开51Testing软件测试网kRg9pzC4Y

     fopen():返回一个FILE数据类型的指针.因为LoadRunner不支持FILE数据类型,所以返回值需要转化成int.

c#qsKb0

      int MyFile;

5Y?l{0`u.sh0

      MyFile=(int)fopen("C:\\temp\\loans.txt","w");

k~s&O^!?(V"~7s0

      fopen()函数的第一个参数是创建文件的路径.第二个参数指定了创建文件的模式.下面是常用的几种模式51Testing软件测试网(xd,c'q:k@

“w” - ,当需要往文件中写的时候.如果文件存在,就覆盖该文件,如果文件不存在,根据第一个参数来创建新文件. 

C"tV-X+\-Pcn(a0

“r” –,需要从文件中读的时候.这个文件必须已经存在.

9[\e4gtMn k0

“a” –附加,当往文件末尾添加数据时用到.51Testing软件测试网 J$Nl.j_E U}&JT

“rw” –读和写.51Testing软件测试网"S+~dck_Iy

第一个参数中注意文件路径为"\\",因为"\"C语言中为转义字符.另外,如果文件和脚本在同一个目录中,文件的完整路径可以省略.

;P9iS tF(J)KO0

3,读文件

Xtn5sjk ?g0

       fscanf():用来读文件。函数语法如下:

_$R9NXS1_E-e0

      int MyFile;

+PW(YSD _*x:w;f0

           int LoanNumber;51Testing软件测试网4DE7YQv5M-s n2i x

           MyFile = fopen(“C:\\temp\\loans.txt”,”r”);51Testing软件测试网J,E:v/|v

           fscanf(MyFile,”%d”, &LoanNumber);

J6~P'Z:BW0

    需要注意的是:MyFile是个文件指针(在LoadRunner中并不是真正的指针),被用来代替实际的文件。所有文件的操作都是使用文件指针而不是文件名称。

8OVM"[q5r0

    练习151Testing软件测试网J rD0y2Boi6y9lH

    先创建一个文件c:\temp\loans.txt,文件包含的内容为:51Testing软件测试网L4u7x8c1{ ]3{7YYY

    11111

P-X\k%[a*^0

    22222

)Ib%Lo8W[0

    33333

}\AR$_XV e0

    44444

JCh%_-c3|9W"x0

    5555551Testing软件测试网 ~f \5Tx*C&{2N [

 循环读取并显示该文件中的每行数据,脚本如下:

y`,u*ZSd g%U0


_7}#EB\J051Testing软件测试网0}T5jP$V0^ L

Actions()51Testing软件测试网P!i^{5KBv/W V^&Q

{

|0zfAT~hI,l7j0

       int MyFile;

#ddk-ObV-Cj [0o0

       int LoanNumber,i;51Testing软件测试网)x%h&B(Gz!i

       // Assigning the file path to a string

9I7_&c@q0H@0

       char FileName[80] = "C:\\temp\\loans.txt";

(Y'i'l N+WT*SI0

 51Testing软件测试网)F gA6gn#Qo9@/G*Lw

 

"Z}v?c0

       // Opening the file51Testing软件测试网N [5E `&ni

       // Note the use of variable to replace the file path51Testing软件测试网w.X)F[$g!S$R#~p/c+P:@

       //

.W/BA$Q_0

       MyFile = (int)fopen(FileName,"r");51Testing软件测试网aIme*V#j3W'N

 51Testing软件测试网jRjb^

 51Testing软件测试网X*I:u7dzQ9hZ]

       //Readingand printing one loan number at a time

%v,B6Z}w$r1R0

       for(i=1;i<=5;i++)51Testing软件测试网XKTS$_2AKs7Ac

              {

P6U$E`;o0

              fscanf(MyFile,"%d", &LoanNumber);51Testing软件测试网}3`O4FQ@8t+[%zQ

              lr_output_message("Loan Number %d: %d",i,LoanNumber);

&gw3x'{w0

              }

d9~?wl#g0

 

;e%CWN/g Z0

       fclose(MyFile);51Testing软件测试网-Ju9z lD(D2y"H

 51Testing软件测试网`'B Uk u7Jf|g^A

       return 0;51Testing软件测试网(qp)}po Qw,|#Mw

}

(ax{3[P0

当文件打开之后,文件指针在文件的最开始。每读一次,指针就移动到下一行,这就是为什么程序能自动读取下面元素的原因。51Testing软件测试网$d xmRH }+A1M5iF

51Testing软件测试网s/c3m*pTu\"|,]

:oS)Vl |U0

a) 如果把循环改为fori=1i<=7;i++),会出现什么样的结果呢?51Testing软件测试网:R~p1zzJ,l

会出现三个都是打印55555的结果,原因是文件指针移动到最后就不再移动了,但是有7次循环,那多出来的2次循环打印的数据仍然是最后一行的数据。

;Q)h q-Z$H0

b)如果不知道该文件下包含数据的行数,就无法用for循环。需要使用while循环。可以使用feof函数。feofMyFile)在文件指针没有到达返回文件末尾的时候返回0,如果到末尾返回非0值。这样可以修改程序的循环为:

}y,F%D6k _ h$V}I0

      whilefeofMyFile== 0);

5V,H4^Me*a0Z(I5]7Z3jN3F0

注意:如果文件末尾有空行,feof也会把它最为文件的一部分。51Testing软件测试网,~'u(G8ooX

51Testing软件测试网'y!TC#A$Im

Z%} d'i3xMyL0

本文出自zibeike的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?34866

-Lnv#x]I0d l0


|RS4qG:K9M051Testing软件测试网's^,Zhp.y6lz5v

4,写文件51Testing软件测试网5N3b c Y%gN"z.P

  fprintf():用来往文件写。语法如下:51Testing软件测试网&o:| Fc'gEG(Q

          int MyFile;51Testing软件测试网@ mJ(P e4NN

        char Name[] = “John Doe”;51Testing软件测试网ki(z!M t+p

        MyFile = fopen(“C:\\temp\\loan.txt”,”w”);51Testing软件测试网Ip7g)K5sHdR

              fscanf(MyFile,”%s”,Name);51Testing软件测试网Ll/r%V#S(G4R

 第一个参数是文件指针,第二个参数是格式,第三个参数是指定格式对应的变量。51Testing软件测试网D-Jb1Y!S7V+]

Actions()51Testing软件测试网+p"C&` K1Qe

{51Testing软件测试网9WsriG

       int MyFile;51Testing软件测试网 xMt Mt| gS}k;u

       char Name[] = "John Doe";51Testing软件测试网X'w2{ x:a

 

Rc*W:l8o'JGA0

 51Testing软件测试网+n,` y}#Ex)R/lj%_;h)n

       MyFile = fopen("C:\\temp\\names.txt","w");

!v d)E^0j0

// note that "w" is used to write51Testing软件测试网I&zVCm1G"J.r

       

I4X3S4c P-K[-I1hrc0

fprintf(MyFile,"%s", Name);51Testing软件测试网(sN$R&H#w^+V.Y

// note that we are printing a string here51Testing软件测试网&G3Mpsku.Kq

51Testing软件测试网 bgE `6?4Jk


g p+T1Q\"hP)x;Qv-io051Testing软件测试网"tf)j oHvxB.A
本文出自zibeike的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?34866

TAG: 性能测试

xiaoshi_2011的个人空间 引用 删除 xiaoshi_2011   /   2013-08-26 15:27:26
5
ls_721521的个人空间 引用 删除 ls_721521   /   2009-12-16 16:47:50
5
菲的历程 引用 删除 pupu840323   /   2009-02-18 10:52:45
5
菲的历程 引用 删除 pupu840323   /   2009-02-18 10:52:30
不错,拓展知识了,请问姐姐有相应的API吗
hero001的个人空间 引用 删除 hero001   /   2008-10-17 09:40:18
挺不错的,我也加了博主为好友了,以后多多交流。
黄进青的个人空间 引用 删除 junqinghuang   /   2008-02-27 13:46:26
3
很不错
huior的测试烩 引用 删除 huior   /   2008-02-27 11:03:18
收藏,以后或许用得着!
已加博主为好友。
 

评分:0

我来说两句

Open Toolbar