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

LoadRunner编程之文件的操作

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

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

{|,~&cJKz-al0

51Testing软件测试网_AKsFZ.P

.e"xl1S5mbV:{0

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

#wsv5r2B-sY:]0

1,文件的声明51Testing软件测试网ZFp+vQ

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

     int MyFile;51Testing软件测试网g:O;h}$X$z/N

2,文件的打开

3WI3?J6aj0i"q0

     fopen():返回一个FILE数据类型的指针.因为LoadRunner不支持FILE数据类型,所以返回值需要转化成int.51Testing软件测试网!t,EtH ~ j)Vz

      int MyFile;

.y7I*U1HUt!_0

      MyFile=(int)fopen("C:\\temp\\loans.txt","w");51Testing软件测试网8@i_$x$Q

      fopen()函数的第一个参数是创建文件的路径.第二个参数指定了创建文件的模式.下面是常用的几种模式51Testing软件测试网5LGB)`L/xD5J

“w” - ,当需要往文件中写的时候.如果文件存在,就覆盖该文件,如果文件不存在,根据第一个参数来创建新文件. 51Testing软件测试网D#D2Nd'M X d

“r” –,需要从文件中读的时候.这个文件必须已经存在.51Testing软件测试网 o~LW4j9B8q

“a” –附加,当往文件末尾添加数据时用到.

;B'U g l7xI5j0

“rw” –读和写.

O)Z'_4R,a'u Hn5w)Ii0

第一个参数中注意文件路径为"\\",因为"\"C语言中为转义字符.另外,如果文件和脚本在同一个目录中,文件的完整路径可以省略.51Testing软件测试网:V&{uY"J2P|

3,读文件51Testing软件测试网&krZ}&S0`K(]/N

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

6E:a Ji2J6N1}B0

      int MyFile;51Testing软件测试网)~h |6Z.F[)E

           int LoanNumber;51Testing软件测试网!K5Y5I(Ja [MQ*go,GOr

           MyFile = fopen(“C:\\temp\\loans.txt”,”r”);

zGC u T KQ5~0

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

&T[&g-l%L!J?N4`_0

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

"wHI'|lR.VZ}0

    练习151Testing软件测试网/H-Y;P+i*h&WlVW/P`

    先创建一个文件c:\temp\loans.txt,文件包含的内容为:51Testing软件测试网%Zj5Dho&l4R$K6g

    11111

f)FK@ CO^0

    2222251Testing软件测试网1g7g'G#M L e,D5m"Y

    3333351Testing软件测试网!u{3@(xcO Q

    44444

9p,K#j]8d+l+GwHt0

    5555551Testing软件测试网 IM3Bl$~sr O7C

 循环读取并显示该文件中的每行数据,脚本如下:51Testing软件测试网'KJFG DU)H8hZ


3F+Jo8D)P9X051Testing软件测试网P!Rb_y?

Actions()51Testing软件测试网OJ$wV J Me0y!G

{

(@|$E4\G;lsv0

       int MyFile;

9Pk*_K)l?jY5`0

       int LoanNumber,i;51Testing软件测试网6?.~i`"mrR$Gl

       // Assigning the file path to a string51Testing软件测试网})` aj\/p

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

7N%S r;J(XO0

 51Testing软件测试网~7Y%m/^ li*W |9~

 

&S6VF;r/ZB$U7s0

       // Opening the file51Testing软件测试网wF#yE-LsJ5P)NSj

       // Note the use of variable to replace the file path51Testing软件测试网'u!j)}-cG J$He

       //51Testing软件测试网'GwF7e(sC

       MyFile = (int)fopen(FileName,"r");51Testing软件测试网9h$I,T-n:fa

 

:]6yc#T \0

 

[$sR/I1^ pV8J H0

       //Readingand printing one loan number at a time51Testing软件测试网 [W1G!l N

       for(i=1;i<=5;i++)

L&du-T.@0

              {

N;q0a.dwjV.n0

              fscanf(MyFile,"%d", &LoanNumber);51Testing软件测试网9C0K8X.q)t+z2h

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

ZC8^?&C'e!xb0

              }

2S{"j{%\)z'eP0

 51Testing软件测试网Xz?w|3A

       fclose(MyFile);

^v4nb6i%l0

 51Testing软件测试网u HH$nS/U1kit

       return 0;51Testing软件测试网|y;k(C$f'z(qit

}

s;|;K7Qrug'rK0

当文件打开之后,文件指针在文件的最开始。每读一次,指针就移动到下一行,这就是为什么程序能自动读取下面元素的原因。51Testing软件测试网w%?0G%vd R3[h

51Testing软件测试网6xo7H6{y;Ph(n!F

5M#l1dH:OY%}i2i0

a) 如果把循环改为fori=1i<=7;i++),会出现什么样的结果呢?

0?k pgv0

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

+z'Y8r%o ?P0

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

      whilefeofMyFile== 0);

$|PP^w1p?X8Mh~0

注意:如果文件末尾有空行,feof也会把它最为文件的一部分。51Testing软件测试网 TX1_+V6W#Tgi

51Testing软件测试网u,p|-G8O{$H2t h(Ll

w;eY8_)UP0

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

p"y,Ir,z g0

51Testing软件测试网Dlqh%N5GDOw
51Testing软件测试网2H`3IVE$cu4I(~N,[,d5\#x

4,写文件

n)C ^&Z s%??,h0

  fprintf():用来往文件写。语法如下:51Testing软件测试网5R]9HH8r6X,yg&b$Q

          int MyFile;

+_8oG8zH*F0

        char Name[] = “John Doe”;

5i yY5w$HF0

        MyFile = fopen(“C:\\temp\\loan.txt”,”w”);51Testing软件测试网7LX~EQ8FIv&X

              fscanf(MyFile,”%s”,Name);

r7?.KD(x-I%J0

 第一个参数是文件指针,第二个参数是格式,第三个参数是指定格式对应的变量。

`2y~R~"R.bp$V0

Actions()

9BU7?E a x2~0

{

;viS~*hs(l0

       int MyFile;

+l5Q&N)Corl]0

       char Name[] = "John Doe";

f2xLT!J#["v0

 

F dN'A H~ P-E3N0

 

X3oappzL2_0

       MyFile = fopen("C:\\temp\\names.txt","w");51Testing软件测试网Q;a/W tc

// note that "w" is used to write51Testing软件测试网)A)fM1j!z6Z;{ M0xi

       51Testing软件测试网.k-zz*~]j

fprintf(MyFile,"%s", Name);51Testing软件测试网po,O p4N

// note that we are printing a string here51Testing软件测试网|q!yh/dH+mh;O

51Testing软件测试网9e3D+@B+h w}e

51Testing软件测试网Y3E,? bJAP

;x5VIF8~P l0本文出自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