LoadRunner编程之文件的操作
上一篇 / 下一篇 2008-02-26 18:33:57 / 个人分类:性能测试
本文出自zibeike的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?3486651Testing软件测试网Fi*w9FY,M
51Testing软件测试网,N R2yo;V8l
51Testing软件测试网"]{3\q4_q
这篇文章主要写下LoadRunner下如何进行文件的操作。
1,文件的声明
LoadRunner不支持FILE数据类型,所以在LoadRunner中用int来声明一个文件:
int MyFile;
2,文件的打开
fopen():返回一个FILE数据类型的指针.因为LoadRunner不支持FILE数据类型,所以返回值需要转化成int型.
int MyFile;
MyFile=(int)fopen("C:\\temp\\loans.txt","w");
fopen()函数的第一个参数是创建文件的路径.第二个参数指定了创建文件的模式.下面是常用的几种模式:
“w” - 写,当需要往文件中写的时候.如果文件存在,就覆盖该文件,如果文件不存在,根据第一个参数来创建新文件.
“r” –读,需要从文件中读的时候.这个文件必须已经存在.
“a” –附加,当往文件末尾添加数据时用到.
“rw” –读和写.
第一个参数中注意文件路径为"\\",因为"\"在C语言中为转义字符.另外,如果文件和脚本在同一个目录中,文件的完整路径可以省略.
3,读文件
fscanf():用来读文件。函数语法如下:
int MyFile;
int LoanNumber;
MyFile = fopen(“C:\\temp\\loans.txt”,”r”);
fscanf(MyFile,”%d”, &LoanNumber);
需要注意的是:MyFile是个文件指针(在LoadRunner中并不是真正的指针),被用来代替实际的文件。所有文件的操作都是使用文件指针而不是文件名称。
练习1:
先创建一个文件c:\temp\loans.txt,文件包含的内容为:
11111
22222
33333
44444
55555
循环读取并显示该文件中的每行数据,脚本如下:
y`,u*ZSd g%U0
_7}#E B\J0
Actions()
51Testing软件测试网P!i^{5KBv/W
V^&Q
{
int MyFile;
int LoanNumber,i;
51Testing软件测试网)x%h&B(Gz!i
// Assigning the file path to a string
char FileName[80] = "C:\\temp\\loans.txt";
51Testing软件测试网)F gA6gn#Qo9@/G*Lw
// Opening the file
51Testing软件测试网N[5E `&ni
// Note the use of variable to replace the file path
51Testing软件测试网w.X)F[$g!S$R#~p/c+P:@
//
MyFile = (int)fopen(FileName,"r");
51Testing软件测试网aIm e*V#j3W'N
51Testing软件测试网jRjb^
51Testing软件测试网X*I:u7dzQ9hZ]
//
for(i=1;i<=5;i++)
51Testing软件测试网XKTS$_2AKs7Ac
{
fscanf(MyFile,"%d", &LoanNumber);
51Testing软件测试网}3`O4FQ@8t+[%zQ
lr_output_message("Loan Number %d: %d",i,LoanNumber);
}
fclose(MyFile);
51Testing软件测试网-Ju9zlD(D2y"H
51Testing软件测试网`'B
Uk
u7Jf|g^A
return 0;
51Testing软件测试网(qp)}p o Qw,|#Mw
}
当文件打开之后,文件指针在文件的最开始。每读一次,指针就移动到下一行,这就是为什么程序能自动读取下面元素的原因。51Testing软件测试网$d xmRH }+A1M5iF
51Testing软件测试网s/c3m*pTu\"|,]
a) 如果把循环改为for(i=1;i<=7;i++),会出现什么样的结果呢?
会出现三个都是打印55555的结果,原因是文件指针移动到最后就不再移动了,但是有7次循环,那多出来的2次循环打印的数据仍然是最后一行的数据。
b)如果不知道该文件下包含数据的行数,就无法用for循环。需要使用while循环。可以使用feof函数。feof(MyFile)在文件指针没有到达返回文件末尾的时候返回0,如果到末尾返回非0值。这样可以修改程序的循环为:
while(feof(MyFile)== 0);
注意:如果文件末尾有空行,feof也会把它最为文件的一部分。51Testing软件测试网,~'u(G8ooX
51Testing软件测试网'y!TC#A$Im
本文出自zibeike的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?34866
-Lnv#x]I0dl0
|R S4qG:K9M0
4,写文件
fprintf():用来往文件写。语法如下:
int MyFile;
char Name[] = “John Doe”;
MyFile = fopen(“C:\\temp\\loan.txt”,”w”);
fscanf(MyFile,”%s”,Name);
第一个参数是文件指针,第二个参数是格式,第三个参数是指定格式对应的变量。
Actions()
51Testing软件测试网+p"C&`
K1Qe
{
51Testing软件测试网9WsriG
int MyFile;
51Testing软件测试网
xMtMt|
gS}k;u
char Name[] = "John Doe";
51Testing软件测试网X'w2{ x:a
51Testing软件测试网+n,` y}#Ex)R/lj%_;h)n
MyFile = fopen("C:\\temp\\names.txt","w");
// note that "w" is used to write
51Testing软件测试网I&zVCm1G"J.r
fprintf(MyFile,"%s", Name);
51Testing软件测试网(sN$R&H#w^+V.Y
// note that we are printing a string here
51Testing软件测试网&G3M