loadrunner学习记录及问题.doc
2011-05-27
1、《loadrunner虚拟用户开发指南》
2、Vuser中常用的C语言函数:
1.strchr与strrchr
Strchr函数用于查找指定字符在一个字符串中第一次出现的位置,然后返回指向该位置的指针。Char *strchr (const char *string,int c);
Strrchr与strchr类同只是查询的是指定字符在字符串中最后出现的位置,然后返回指向该位置的指针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.strcpy与strncpy
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.strcmp与stricmp
用与按照字母表顺序比较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.strcat与strncat
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.strlwr与strupr
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.atoi与itoa
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指向数据的数据缓存区的数据将作为文件的输入数据来源。
Size是buffer指向缓存区数据类型在内存中占有的字节数,可以用sizeof函数来获取。
Count是读或者写数据块的块数
File_point是fopen返回的文件指针;
Fread与fwrite执行后将会返回实际读或者写的数据块块数,返回结果通常是指定的读写数据块数count;但是当有读写错误发生时,返回的实际读写块数将会小于count.
4.文件定位函数(fseek);
Int fseek(FILE *file_pointer,long offset,int origin)
File_pointer是fopen返回的文件指针;
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_int和lr_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_whoami(Vuser的ID、组名称、场景ID)传入参数的顺序必须这样的
2.lr_get_vuser_ip在VuGen运行脚本时返回为
TAG:
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | 3 | 4 | 5 | 6 | ||||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 29 | 30 |
我的存档
数据统计
- 访问量: 55176
- 日志数: 15
- 文件数: 1
- 书签数: 1
- 建立时间: 2009-01-02
- 更新时间: 2016-08-06