高手的存在,就是让服务10亿人的时候,你感觉只是为你一个人服务......

loadrunner常用函数

目录
  1. 1. 字符串相关
  2. 2. 日期时间相关函数
  3. 3. 事物相关
  4. 4. 文件操作

整理loadrunner 脚本中的一些常用函数。

字符串相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
strlen(const char *string); //返回一个字符串的长度

strcpy(destination_string,source_string);//拷贝一个字符串到另一个字符串

strcat(char *to, const char *from ); //合并两个字符串

atoi(const char *string);//字符串转换成整形

itoa(int value, char *str, int radix )//整形转换成字符串,radix为转换进制,radix为10(10进制)

strcmp(const char *string1, const char *string2 );//比较两个字符串的大小

stricmp( const char *string1, const char *string2 ); //区分大小写比较字符串

strlwr( char *string ); //将字符串转换为小写

strupr(char *string );//将字符串转换成大写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**

* 字符串编码转换

*/


lr_convert_string_encoding( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);

//sourceString:被转换的源字符串

//fromEncoding:转换前的字符编码

//toEncoding:转换后的字符编码

//paramName:转换后的字符串

// 很多时候需要将中文字符进行转码为UTF-8格式

lr_convert_string_encoding("订单",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str");

日期时间相关函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15


lr_save_datetime(const char *format, int offset, const char *name);
//将当前的日期和时间或者指定偏移的时间保存在参数里
// format:格式化信息,如:"%Y-%m-%d"代表日期格式,"%H:%M:%S"代表时间格式
// offset:时间的偏移量 DATE_NOW(现在的日期),TIME_NOW(现在的时间),ONE_DAY(一天的时间),ONE_HOUR(一小时的时 间),ONE_MIN(一分钟的时间),DATE_NOW-ONE_DAY(昨天),DATE_NOW+ONE_DAY(明天)
// name:参数保存的参数名

//取当前时间
lr_save_datetime("%Y-%m-%d %H:%M:%S", DATE_NOW ,"time");
lr_output_message("now=%s",lr_eval_string("{time}"));

//取两个小时后的时间
lr_save_datetime("%Y-%m-%d %H:%M:%S", DATE_NOW+2*(ONE_HOUR) ,"time");
lr_output_message("2小时后=%s",lr_eval_string("{time}"));


事物相关

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
31
32
33
34
35
36
37
38
39
/*** 事物相关

*/


lr_end_sub_transaction// 标记子事务的结束以便进行性能分析

lr_end_transaction//标记LoadRunner事务的结束

lr_end_transaction_instance//标记事务实例的结束以便进行性能分析

lr_fail_trans_with_error//将打开事务的状态设置为LR_FAIL并发送错误消息

lr_get_trans_instance_duration//获取事务实例的持续时间(由它的句柄指定)

lr_get_trans_instance_wasted_time//获取事务实例浪费的时间(由它的句柄指定)

lr_get_transaction_duration//获取事务的持续时间(按事务的名称)

lr_get_transaction_think_time//获取事务的思考时间(按事务的名称)

lr_get_transaction_wasted_time//获取事务浪费的时间(按事务的名称)

lr_resume_transaction//继续收集事务数据以便进行性能分析

lr_resume_transaction_instance//继续收集事务实例数据以便进行性能分析

lr_set_transaction_instance_status//设置事务实例的状态

lr_set_transaction_status//设置打开事务的状态

lr_set_transaction_status_by_name//设置事务的状态

lr_start_sub_transaction//标记子事务的开始

lr_start_transaction//标记事务的开始

lr_start_transaction_instance//启动嵌套事务(由它的父事务的句柄指定)

lr_stop_transaction//停止事务数据的收集

文件操作

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*** 文件操作

*/




fopen(const char *filename, const char *access_mode );//打开一个文件

fclose(FILE *file_pointer);//关闭一个文件

feof(FILE *file_pointer );//文件是否结束

fread(void *buffer, size_t size, size_t count, FILE *file_pointer);//从文件缓冲区读文件

fgets(char *string, int maxchar, FILE *file_pointer );//从文件中读取字符串

fwrite(const void *buffer, size_t size, size_t count, FILE *file_pointer );//写文件内容


/**

* 读文件的内容,每次读取8各字符,直到读完

*/


char *FileName="c:\\test.txt";

int count=0;

char readbuffer[16];

long file_stream;


if(file_stream=fopen(FileName,"r")==NULL){

lr_error_message("Can't open file,%s",FileName);

return -1;

}


while(!feof(FileName)){


count = fread(readbuffer,sizeof(char),8,file_stream);

lr_output_message("read date=%s",lr_eval_string(readbuffer));

}

fclose(file_stream);