loadrunner 脚本开发-文件读写操作

简介: loadrunner 脚本开发-文件读写操作

脚本开发-文件读写操作


函数原型:

size_t fwrite( const void *buffer, size_t size, size_t count, FILE *file_pointer );

参数说明:

buffer:包含数据的缓冲区

size:缓冲区buffer的大小(字节为单位)

count:缓冲区中写入多少个size大小数据(The number of bytes to store in the buffer)

file_pointer:指向存放数据文件的文件指针

 

 

size_t:际写入的数据块数目(每个数据块大小为size)

 

函数原型:

size_t fread( void *buffer, size_t size, size_t count, FILE *file_pointer);

参数说明:

fwrite

 

函数原型:

int ferror( FILE *file_pointer );

功能:检查文件i/o错误

参数说明:

file_pointer:指向文件的文件指针

 

函数原型

int feof( FILE *file_pointer );

功能:检测流上的文件结束符

参数说明:

file_pointer:指向文件的文件指针

 

以下通过例子说明如何进行数据存取操作

例子1

d盘的readme.txt中读取文件内容并显示读取字节数

代码:

Action()

{

   int count, total = 0;

   char buffer[1000];

   long file_stream;

   char * filename = "d:\\readme.txt";

 

   if ((file_stream = fopen(filename, "r")) == NULL )

   {

       lr_error_message ("Cannot open %s", filename);

       return -1;

   }

 

   // Read until end of file

   while (!feof(file_stream))

   {

       // Read 1000 bytes while maintaining a running count

       count = fread(buffer, sizeof(char), 1000, file_stream);

       lr_output_message ("= bytes read", count);

 

       if (ferror(file_stream)) {

           lr_output_message ("Error reading file %s", filename);

           break;

       }

 

       total += count; // Add up actual bytes read

   }

 

   // Display final total

   lr_output_message ("Total number of bytes read = %d", total );

   // Close the file stream

   if (fclose(file_stream))

   {      

       lr_error_message ("Error closing file %s", filename);

   }

 

   return 0;

}

结果:

 

例子2

将每个学生的数据(学号和成绩)保存到某个文件,然后从该文件读取存放的学生数据记录并展示

 

代码:

Action()

{

   //定义保存学生数据的文件名

   #ifdef unix

       char * filename = "/tmp/marks.txt";

   #else

       char * filename = "d:\\marks.txt";

   #endif

 

 

   //保存学生数据(学号和成绩)

   struct student_data

   {

       int student_id;

       unsigned char marks[10];

   };

 

   struct student_data sd1;  //定义结构体,用于定义学生数据

   struct student_data sd2;  //用于存放从文件中读取的学生数据

 

   long file_handle = NULL;   //文件句柄

 

   int i = 0;  

   int count = 0; //统计每次读取学生记录个数

   int total = 0; //用于统计总的学生记录个数

 

   //打开、创建数据文件

   if ((file_handle = fopen(filename, "w+")) == NULL)

   {

       lr_output_message ("Unable to create %s", filename);

       return -1;

   }

 

 

   //设置学号

   sd1.student_id = 1001;

   //设置成绩(假设10门课程)

   for (i = 0; i < 10; i++)

   {

       sd1.marks[i] = (unsigned char)(85 + i);

   }

 


   //把学生记录写入数据文件

   i = fwrite(&sd1, sizeof(struct student_data), 1, file_handle);

 

   if (i > 0)  // fwrite调用不成功则返回0

   {

       lr_output_message ("Successfully wrote %d record", i);

   }

 

 

   fclose(file_handle); //关闭文件

 

   if ((file_handle = fopen(filename, "r")) == NULL )  //如果打开文件失败

   {

       lr_error_message ("Cannot open %s", filename);

       return -1;

   }

 

 

   //读取全部文件内容

   while (!feof(file_handle))

   {

       count = fread(&sd2, sizeof(struct student_data), 1, file_handle);

       lr_output_message ("%d个学生数据记录", count);

 

       //检查文件I/O错误

       if (ferror(file_handle))

       {

           lr_output_message ("Error reading file %s", filename);

           break;

       }

 

       total += count; //计算实际读取的总字节数

 

   }

 

 

   //展示最后的数据

   lr_output_message("学生的学号为:%d,成绩如下:", sd2.student_id);

   for(i=0; i<10; i++)

   {

      lr_output_message("%u", sd2.marks[i]);

   }

 

   lr_output_message ("Total number of student record = %d", total);

 

 

   //关键文件流

   if (fclose(file_handle))

   {

      lr_error_message ("Error closing file %s", filename);

   }

 

   return 0;

}

运行结果:

 

 

 

 

目录
相关文章
|
存储 测试技术
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
115 0
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
|
JSON 测试技术 数据安全/隐私保护
Loadrunner 脚本开发-利用web_submit_data函数实现POST请求
Loadrunner 脚本开发-利用web_submit_data函数实现POST请求
158 0
|
网络协议 测试技术 Windows
Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
175 0
|
测试技术
Loadrunner 脚本开发-从文件读取数据并参数化
Loadrunner 脚本开发-从文件读取数据并参数化
105 0
|
Java 测试技术 Android开发
Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试
Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试
133 0
|
XML 存储 测试技术
Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试
Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试
143 0
|
JSON 测试技术 数据格式
Loadrunner 脚本开发-利用web_custom_request函数进行接口测试
Loadrunner 脚本开发-利用web_custom_request函数进行接口测试
91 0
|
JavaScript 前端开发 安全
loadrunner 脚本开发- web_url函数详解
loadrunner 脚本开发- web_url函数详解
123 0
|
测试技术
loadrunner 脚本开发-url解码
loadrunner 脚本开发-url解码
85 0
|
测试技术
loadrunner 脚本开发-定义全局变量
loadrunner 脚本开发-定义全局变量
233 0
下一篇
无影云桌面