LoadRunner编程之文件的操作

简介:

这篇文章主要写下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

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


Actions()

{

       int MyFile;

       int LoanNumber,i;

       // Assigning the file path to a string

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

 

 

       // Opening the file

       // Note the use of variable to replace the file path

       //

       MyFile = (int)fopen(FileName,"r");

 

 

       //Readingand printing one loan number at a time

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

              {

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

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

              }

 

       fclose(MyFile);

 

       return 0;

}

当文件打开之后,文件指针在文件的最开始。每读一次,指针就移动到下一行,这就是为什么程序能自动读取下面元素的原因。


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

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

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

      whilefeofMyFile== 0);

注意:如果文件末尾有空行,feof也会把它最为文件的一部分。


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


4,写文件

  fprintf():用来往文件写。语法如下:

          int MyFile;

        char Name[] = “John Doe”;

        MyFile = fopen(“C:\\temp\\loan.txt”,”w”);

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

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

Actions()

{

       int MyFile;

       char Name[] = "John Doe";

 

 

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

// note that "w" is used to write

       

fprintf(MyFile,"%s", Name);

// note that we are printing a string here




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














本文转自cqtesting51CTO博客,原文链接:http://blog.51cto.com/cqtesting/1584767 ,如需转载请自行联系原作者






相关文章
|
Oracle Java 关系型数据库
loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
240 0
|
测试技术 分布式数据库 数据库
性能测试工具操作数据库(十二)-Loadrunner与Hbase
Hbase的测试关键是要引用正确的Hbase jar包(还要保证版本的兼容,Hbase1.0开始就要求JDK1.7及以上,而Loadrunner11不支持JDK1.7,所以本文举例用的是Loadrunner12,另外要保证引用的Hbase Jar包也是与服务端的Hbase版本一致,否则也会出现兼容性...
1118 0
|
分布式计算 Java 测试技术
通过Loadrunner连接操作Hadoop HDFS
本文以Loadrunner的Java_Vuser脚本为例,来做一次HDFS的文件操作测试,由于LoadRunner 11只支持JDK1.6,所以Hadoop选择的Jar包也只能用Hadoop2.6.0,但是这不影响连接高版本的hadoop-HDFS(本次测试就实现了连接操作hadoop2.7下HDFS)。
943 0
|
NoSQL Java 测试技术
性能测试工具操作数据库(十)-Loadrunner与Redis
Loadrunner使用JavaVuser操作Redis需要jedis-2.1.0.jar
1218 0
|
NoSQL Java 测试技术
性能测试工具操作数据库(九)-Loadrunner与MongoDB
Loadrunner使用JavaVuser连接mongoDB需要mongo-java-driver-2.13.3.jar
1245 0
|
SQL 测试技术 数据库
性能测试工具操作数据库(七)-Loadrunner与SQL Server
Loadrunner与SQL Server的操作可以通过录制的方式来实现,但本文还是通过直接调用loadrunner本身的function来实现sql语句的操作,主要用到的是lr_db_connect和lr_db_executeSQLStatement两个函数,具体的用法这里不做解释,请自行查看loadrunner的帮助说明。
1029 0
|
SQL 关系型数据库 MySQL
性能测试工具操作数据库(一)-Loadrunner与Mysql
Loadrunner以C的方式连接Msql,需要相关库文件,下载地址:http://files.cnblogs.com/files/xiaoxitest/MySQL_LoadRunner_libraries.zip,分别将库文件和代码添加到Loadrunner bin目录和include目录下
1424 0
|
Oracle 关系型数据库 测试技术
性能测试工具操作数据库(二)-Loadrunner与oracle
Loadrunner支持oracle协议,可以选择协议录制方式,或手写脚本方式,本文讲的手写脚本方式,简洁方便。
1129 0
|
测试技术 Windows 数据安全/隐私保护
Loadrunner脚本编程
1.  错误预防和恢复 参数默认是用{}括起来的,但也可以指定用 NTLM或用户登录验证 web_set_user("X//Y", "Z", "A.com:80"); 在域与X上的用户名为Y的用户,使用密码Z来登录到A.com:80。
884 0