loadrunner学习记录及问题.doc

上一篇 / 下一篇  2011-06-22 11:15:09

2011-05-27

1、《loadrunner虚拟用户开发指南》

2Vuser中常用的C语言函数:

  1.strchrstrrchr

    Strchr函数用于查找指定字符在一个字符串中第一次出现的位置,然后返回指向该位置的指针。Char *strchr (const char *string,int c);

    Strrchrstrchr类同只是查询的是指定字符在字符串中最后出现的位置,然后返回指向该位置的指针char *strrchr(const char *string ,int c);

    Example:

     char *string="I'm a young soul in this very strange world.";

     char *first_a,*last_a;

 

     first_a=(char *)strchr(string,'a');

     lr_output_message("first occurrence of a:%s",first_a);

      //first occurrence of a:a young soul in this very strange world.

     last_a=(char *)strrchr(string,'a');

     lr_output_message("The last occurrence of a:%s",last_a);

     //The last occurrence of a:ange world.

2.strcpystrncpy

 Strcpy把一个字符串复制到另一个字符串中;strncpy是把一个字符串的指定长度字符复制到另一个字符串中。

 Char *strcpy(char *dest,const char *source);

 Char *strncpy(char *dest,const char *source,size_t n);

 Example:

   char test[50];

   char ntest[50];

   strcpy(test,"Copies one string to another.");

   lr_output_message("test=%s",test);

   //test=Copies one string to another.

   strncpy(ntest,"Copies the first n characters of one string to another?",30);

   lr_output_message("ntest=%s",ntest);

   //ntest=Copies the first n characters

3.strcmpstricmp

 用与按照字母表顺序比较2个字符串的大小;前者比较时区分字符串大小写;后者比较时不区分字符串大小写

 Int strcmp(const char *string1,const char *string2);

 Int stricmp(const char *string1,const char *string2)

 Example:

   char *string1="This ABCDEFG";

   char *string2="This abcdefg";

   int result;

   result=strcmp(string1,string2);

   lr_output_message("strcmp result=%d",result);

   //strcmp result=-1

 

   result=stricmp(string1,string2);

   lr_output_message("stricmp result=%d",result);

   //stricmp result=0

4.strcatstrncat

  Strcat是把一个字符串复制到另一个字符串的后面,strncat是把一个字符串的指定长度字符串复制到另一个字符串的后面。

5.sprintf

 Sprintf是把一个字符串格式化后输入到另一个字符串中,然后返回写入的字符数量。

 Int sprintf(char *string,const char *format_string[,args]);

 String是要写入的目标字符串,format_string是格式化的字符串,args是一系列变量表达式

 Example:

    char test[30];

    int a=2,b=3;

    int i=0;

    i=sprintf(test,"Add Test:a=%d,b=%d,a+b=%d",a,b,a+b);

    lr_output_message(test);

     //Add Test:a=2,b=3,a+b=5

    lr_output_message("i=%d",i);

     //i=22写入test的字符数量

5.strlwrstrupr

 Strlwr把字符串全部变成小写,strupr把字符串全部变成大写。

 Char *strlwr(char *string); char *strupr(char *string);

 Example:

  char str[]="This is A tEst";

   lr_output_message("lowstr=%s",(char *)strlwr(str));

   //lowstr=this is a test

      lr_output_message("uprstr=%s",(char *)strupr(str));

   //uprstr=THIS IS A TEST

6.atoiitoa

 Atoi是把一个字符串转为整数:int atoi(const char *string);

 string字符串转换成整数:i=atoi(“123fkdjas”);

 Itoa是把整数转化成字符串:int itoa(int value,char *string,int redix);

 把数字value转换成字符串放在string里,redix是转换时的进制。

 Itoa(131231,string,10);

7.strlen

 用于返回指定字符串的字符个数。Size_t strlen(const char *string);

 len=strlen("This is a test");

8.memcpy:

 用于在内存缓存区复制数据,可以复制二进制的数据,而前面的strcpy只能复制字符串,不能复制中间存在\0的数据。

 语法结构:

 void   memcpy(void *dest,const void *src,size_t n);

 dest是目标缓存区,src是将要复制的源缓存区,n是要复制的长度

  example:

  char src[]="AAAAA \0 This is test.\0";

  char memcpy_str[60];

  char strncpy_str[60];

 

  memcpy(memcpy_str,src,60);

  strncpy(strncpy_str,src,60);

 

  lr_output_message("memcpy_str=%s",memcpy_str);

  //memcpy_str=AAAAA因为\0是字符串结束符,所以只输出了\0前面的字符

  lr_output_message("strncpy_str=%s",strncpy_str);

  //memcpy_str=AAAAA

  lr_output_message("memcpy_str:%s",memcpy_str+8);

  //memcpy_str:This is test.首位偏移8位后输出This is test

  lr_output_message("strncpy_str:%s",strncpy_str+8);

  //首位偏移后不输出任何东西

9.memset

 函数通常用来对数据对象做初始化工作void *memset(void *buffer,int c,size_t n);

 调用memset函数后,会把buffer指向的某一块内存中的每个字节的内容全部设置为参数c所指定的ASCII值或指定字符对应的ASCII值,块的大小由第三个参数n来指定。

10.sizeof:

 用来返回指定表达式、变量或者指定数据类型在内存中所占用的字节数:

  sizeof(类型说明符、表达式或者数组)或者sizeof变量

  char test[10];

 struct str_test{

       char str[10];

       int i;

 };

 struct str_test mystr;

 lr_output_message("\"abcde\"size=%d",sizeof "abcde" ); //"abcde"size=6

 lr_output_message("12345 size=%d",sizeof(12345));//12345 size=4

 lr_output_message("test size=%d",sizeof test);//test size=10

 lr_output_message("mystr size=%d",sizeof(mystr));//mystr size=16

2011-05-30

1、文本文件与二进制文件:

  文本文件也称ASCII文件,其特点是每一个字符在键盘上存储时均对应一个字节,如12345存放时要5个字节;

  二进制文件特征:对于不同数据类型将按其实际占用的内存字节来存放,如12345存放要4个字节,因为它是整型数据。

2、常用的Vuser文件操作函数:

  1.文件打开函数(fopen)FILE *fopen(const char *filename,const char *access_mode);

    Filename是要打开的文件路径;access_mode是打开模式。

    f=fopen(“d:\\temp.txt”,”r”);//以只读方式打开文件

  2.关闭文件函数(fclose): int fclose(FILE *file_pointer)

  3.读写文件函数:

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

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

    Buffer是指向数据缓存区的指针,在fread中,buffer指向的数据缓存区用来保存读取的内容;在fwrite中,buffer指向数据的数据缓存区的数据将作为文件的输入数据来源。

    Sizebuffer指向缓存区数据类型在内存中占有的字节数,可以用sizeof函数来获取。

    Count是读或者写数据块的块数

    File_pointfopen返回的文件指针;

    Freadfwrite执行后将会返回实际读或者写的数据块块数,返回结果通常是指定的读写数据块数count;但是当有读写错误发生时,返回的实际读写块数将会小于count.

  4.文件定位函数(fseek)

    Int fseek(FILE *file_pointer,long offset,int origin)

    File_pointerfopen返回的文件指针;

    Offset是相对起始位置的偏移量;

    Origin是起始位置,共有3个取值:SEEK_SET(0)—文件的开始位置;SEEK_CUR(1)---文件指针的当前位置;SEEK_END(2)---文件的末尾。

     函数执行成功将会返回0,否则将会返回非零。

 

2011-06-01

1、字符串处理函数:

Lr_save_string:用于把一个字符串保存到参数中;

 Int lr_save_string(const char *param_value,const char *param_name);

 Parm_value是将要进行保存的字符串;

 Parm_name是保存的参数名称;

 类似函数还有lr_save_intlr_save_datetime

Lr_save_var:用来把字符串的一部分内存保存为参数;

 int      lr_save_var(const char *param_value,unsigned long const value_len,unsigned long options,const char *param_name);

 param_value是将要进行截取的字符串;

 value_len是将要截取的长度;

 options是保留参数,可以设为0

 param_name是保存的参数名。

Lr_eval_string:返回参数的实际内容;

 char    *lr_eval_string(const char *instring);

 instring是参数或者包含参数的字符串。

Example:

   lr_save_string("abcdefghijklmn","ParamStr");

   lr_output_message("ParamStr=%s",lr_eval_string("{ParamStr}"));

      //ParamStr=abcdefghijklmn

      lr_save_var("1234567890",5,0,"ParamStr1");

      lr_output_message("ParamStr1=%s",lr_eval_string("{ParamStr1}"));

    //ParamStr1=12345

2、消息处理函数:

  Lr_debug_message:向日志文件或者Controller控制台输出一个Debug类型消息;

  Lr_error_message:向日志文件或者Controller控制台发送一个Errors类型消息;

  Lr_log_message:向虚拟用户的日志文件发送消息;

  Lr_message:向日志文件或者Controller控制台发送普通类型消息;

  Lr_output_message:向日志文件或者Controller控制台发送一个通知类型消息;

  Lr_vuser_status_message:向Controller的虚拟用户状态窗口或者TuningModuleConsole的虚拟用户状态窗口发送一个消息,同时消息也会发送到日志文件中;

  Lr_set_debug_message:设置当前脚本的消息级别;

  Lr_get_debug_message:返回当前的消息设置级别。

3、脚本信息函数:

  1.lr_whoamiVuserID、组名称、场景ID)传入参数的顺序必须这样的

  2.lr_get_vuser_ipVuGen运行脚本时返回为

TAG:

引用 删除 wslss   /   2011-06-22 15:37:51
1
 

评分:0

我来说两句

我的栏目

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 55176
  • 日志数: 15
  • 文件数: 1
  • 书签数: 1
  • 建立时间: 2009-01-02
  • 更新时间: 2016-08-06

RSS订阅

Open Toolbar