loadrunner常用函数.docx

上传人:b****0 文档编号:12755669 上传时间:2023-04-21 格式:DOCX 页数:25 大小:35.83KB
下载 相关 举报
loadrunner常用函数.docx_第1页
第1页 / 共25页
loadrunner常用函数.docx_第2页
第2页 / 共25页
loadrunner常用函数.docx_第3页
第3页 / 共25页
loadrunner常用函数.docx_第4页
第4页 / 共25页
loadrunner常用函数.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

loadrunner常用函数.docx

《loadrunner常用函数.docx》由会员分享,可在线阅读,更多相关《loadrunner常用函数.docx(25页珍藏版)》请在冰豆网上搜索。

loadrunner常用函数.docx

loadrunner常用函数

Loadrunner常用函数

1字符串及数据转换操作函数

1.1常用函数

A.函数介绍

Strlen(constchar*string)

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

              strcat(string_that_gets_appended,string_that_is_appended);//合并字符串

              atoi(string_to_convert_to_int);//returnstheintegervalue字符串转换为整型

              itoa(integer_to_conver_to_string,destination_string,base);整型转换为字符串

              strcmp(string1,string2);//比较字符串0:

相同

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

strstr(string1,string2)//

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

strupr(constchar*string)//将字符串转换为大写

B.实用例子

✓//常用字符串处理函数的例子

Actions()

{

       charMyString1[20]="";

       charMyString2[20]="";

       charMyString3[20]="Mercury2";

       charCstring[10]="12345";

       intCint;

       strcpy(MyString1,"Mercury1");

        //NowMyString1contains"Mercury1"

        //CopyMyString3intoMyString2

       strcpy(MyString2,MyString3);

       //CatenateMyString2toMyString1

       strcat(MyString1,MyString2);

       //CstringisconvertedtointegerCint

       Cint=atoi(Cstring);

       //Cintisconvertedtostring

       Cint=100;

       itoa(Cint,Cstring,10);

       return0;

}

✓//字符串查找和截取例子

/*

声明:

intfindSubStr(char*resultStr,char*sourceStr,char*beginStr,char*endStr)

功能:

将字符串sourceStr中beginStr和endStr之间的字符串输出给resultStr

返回值:

0:

成功1:

失败

调用方法:

findSubStr(resultStr,”mynameiszhangweitoo”,”is”,”too”)

*/

intfindSubStr(char*resultStr,char*sourceStr,char*beginStr,char*endStr)

{

intilen,i;

char*findStartPos;

char*findEndPos;

findStartPos=(char*)strstr(sourceStr,beginStr);

if(findStartPos==NULL){

return-1;

}

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

findEndPos=(char*)strstr(findStartPos,endStr);

if(findEndPos==NULL){

return-1;

}

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

ilen=strlen(beginStr);

findStartPos=findStartPos+ilen;

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

ilen=findEndPos-findStartPos;

strncpy(resultStr,findStartPos,ilen);

lr_output_message("resultstr=%s",resultStr);

return0;

}

1.2格式化字符串

A.函数介绍

函数定义:

intsprintf(char*string,char*farmat[,argument,...])

对于format说明:

%s:

格式化字符串

%d:

格式化数字类型为字符串

%x:

将数字格式化成小写十六进制数的字符串

%X:

将数字格式化成小写十六进制数的字符串

格式化结果长度:

%5d(5位),%8x(8位)

%-4d、%-5x、%-6X:

格式化结果左对齐,(没有-表示是右对齐)

sprintf(s,"%d",123);//将数字123格式化成"123"

sprintf(s,"%5d%5d",123,4567);//指定格式化长度,结果是:

s="1234567"

sprintf(s,"%-5x%5d",123,4567);//指定格式化长度,结果是:

s="7b4567"

B.实用例子

Action()

{

inti,k;

floatj;

charformatStr[32];

i=123;

k=-123;

j=123.456;

sprintf(formatStr,"formatStr=%s","formatexample");

lr_output_message(formatStr);

sprintf(formatStr,"formatinteger(123)=%d",i);

lr_output_message(formatStr);

sprintf(formatStr,"formatfloat(123.456)=%3.1f",j);

lr_output_message(formatStr);

sprintf(formatStr,"formathex(123)=%x",i);

lr_output_message(formatStr);

sprintf(formatStr,"formatHEX(123)=%X",i);

lr_output_message(formatStr);

sprintf(formatStr,"formatinteger(-123)=%5d%5X",i,i);

lr_output_message(formatStr);

return0;

}

运行结果:

Action.c(10):

formatStr=formatexample

Action.c(12):

formatinteger(123)=123

Action.c(14):

formatfloat(123.456)=123.5

Action.c(16):

formathex(123)=7b

Action.c(18):

formatHEX(123)=7B

Action.c(20):

formatinteger(-123)=1237B

1.3数据类型转换函数

A.函数介绍

Sprintf:

可以将其它数据类型转换为字符串类型(1.2中有详细描述)

Atoi:

将字符转换为整数类型

Itoa:

将整数转换为字符存储到第二个参数中,可以将整数转换为不同的数据类型字符串

Atof:

将字符转换为浮点类型(使用时应该首先在文件头声明doubleatof(constchar*string);),否则结果是错误的

Atol:

将字符转换为长整数类型

Strtol:

将一个字符串中的第一个数字字符串部分转换成长整数类型

B.例子

以下脚本是数据类型转换的例子

doubleatof(constchar*string);//必须加上这一行,否则atof函数会出现错误结果

Action()

{

inti;

doublej;

longk;

charichange[32];

/*itoa函数例子*/

i=123;

itoa(i,ichange,10);//将整数转换为十进制的字符串

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

itoa(i,ichange,16);//将整数转换为十六进制的字符串

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

itoa(i,ichange,2);//将整数转换为二进制的字符串

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

/*atoi函数例子*/

i=atoi("12345");//将字符串转换为整数

lr_output_message("atoi('12345')=%d",i);

/*atof函数例子*/

j=atof("123.12");//将字符串转换为浮点数

lr_output_message("atof('123.12')=%.3f",j);

/*atol函数例子*/

k=atol("1234567890");//将字符串转换为长整型

lr_output_message("atol('1234567890')=%d",k);

/*strtol函数例子*/

//strcpy(ichange,"1234567890islongint");

k=strtol("1234M567890",ichange,10);//将字符串转换为长整型

lr_output_message("strtol()=%d",k);

return0;

}

运行结果:

Action.c(13):

ichange=123

Action.c(15):

ichange=7b

Action.c(17):

ichange=1111011

Action.c(21):

atoi('12345')=12345

Action.c(25):

atof('123.12')=123.120

Action.c(29):

atol('1234567890')=1234567890

Action.c(34):

strtol()=1234

1.4字符串编码转换的函数

函数定义:

ntlr_convert_string_encoding(constchar*sourceString,constchar*fromEncoding,constchar*toEncoding,constchar*paramName);

  该函数有4个参数,含义如下:

  sourceString:

被转换的源字符串。

  fromEncoding:

转换前的字符编码。

  toEncoding:

要转换成为的字符编码。

.

  paramName:

转换后的目标字符串。

  例子:

我们需要把字符(“汽车”)编码转换为UTF-8格式,因此用法如下:

  lr_convert_string_encoding("汽车",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str");

2日期时间相关函数

2.1函数介绍

lr_save_datetime

voidlr_save_datetime(constchar*format,intoffset,constchar*name);

中文解释:

lr_save_datetime将当前日期和时间,或具有指定偏移的日期和时间保存在参数中。

如果达到MAX_DATETIME_LEN个字符,结果字符串将被截断。

参数说明:

constchar*format

格式化信息,如:

"%Y-%m-%d"代表日期格式,"%H:

%M:

%S"代表时间格式intoffset:

时间的偏移量

DATE_NOW(现在的日期)

TIME_NOW(现在的时间)

ONE_DAY(一天的时间)

ONE_HOUR(一小时的时间)

ONE_MIN(一分钟的时间)

需要注意的是,时间的偏移量可以使用公式,例如:

DATE_NOW+ONE_DAY

这样,我们就可以取得昨天、明天的日期了

DATE_NOW-ONE_DAY(昨天)

DATE_NOW+ONE_DAY(明天)

constchar*name

参数保存的参数名;使用lr_eval_string("{参数名}")可以获取参数值

time

返回1970-1-1至现在的时间差(秒)

2.2例子

取得当前日期时间

lr_save_datetime("%Y-%m-%d%H:

%M:

%S",DATE_NOW,"abc");

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

运行结果:

now=2010-10-1216:

52:

35

取得前天的日期

lr_save_datetime("%Y-%m-%d",DATE_NOW-2*(ONE_DAY),"abc");

lr_output_message("前天=%s",lr_eval_string("{abc}"));

运行结果:

前天=2010-10-10

取得2个小时后的时间

lr_save_datetime("%H:

%M:

%S",TIME_NOW+2*(ONE_HOUR),"abc");

lr_output_message("2小时后=%s",lr_eval_string("{abc}"));

运行结果:

2小时后=18:

56:

05

取得当前的时间,精确到毫秒

在Vgen中添加参数,参数属性设置为datet/ime,属性中格式输入%Y-%m-%d%H:

%M:

%S.000,参数值即为当前时间(精确到毫秒),如下图所示

3XML相关函数

Lr提供的XML操作函数仅适用于WEB/HTTP,webservice协议;

3.1读取XML文件内容函数

Lr_xml_extract:

获取一个字段区间的字符串

Lr_xml_find:

查询XML字符串的数量

Lr_xml_get_values:

查找XML字段元素的值

例子:

#include"as_web.h"

Action(){

intfindflag;

char*xml_input=

""

"zhengzhou"

"";

//查找字段city中的全部内容

lr_save_string(xml_input,"XML_Param");

lr_xml_extract("XML={XML_Param}","XMLFragmentParam=Querycity");

lr_output_message(lr_eval_string("查询结果:

{Querycity}"));

//查找name=zhengzhou的个数findflag=lr_xml_find("XML={XML_Param}","value=zhengzhou",

"Query=/vcom/area/city/name",LAST);

lr_output_message("找到%d处zhengzhou",findflag);

//获取name字段的值

lr_xml_get_values("XML={XML_Param}","ValueParam=Querycity",

"Query=/vcom/area/city/name",LAST);

lr_output_message(lr_eval_string("查询字段值结果:

{Querycity}"));

return0;

}

运行结果:

Action.c(11):

"lr_xml_extract"succeeded,1matchprocessed

Action.c(13):

查询结果:

zhengzhou

Action.c(15):

"lr_xml_find"succeeded,1matchprocessed

Action.c(16):

找到1处zhengzhou

Action.c(18):

"lr_xml_get_values"succeeded,1matchprocessed

Action.c(20):

查询字段值结果:

zhengzhou

3.2写XML操作函数

lr_xml_delete:

按区间删除XML中的字符串。

lr_xml_insert:

将新XML字段插入到XML字符串中。

lr_xml_replace:

替换XML字符串的字段和值。

lr_xml_set_values:

设置查询到的XML元素的值。

例子:

Action(){

intfindflag;

char*xml_input="zhengzhou";

lr_save_string(xml_input,"XML_Param");

//删除area区间的数据

lr_xml_delete("XML={XML_Param}","ResultParam=Querycity",

"Query=/vcom/area",LAST);

lr_output_message(lr_eval_string("删除后的结果:

{Querycity}"));

//将name字段值更改为zzcity

lr_xml_replace("XML={XML_Param}","ResultParam=Querycity","Query=/vcom/area/name","XmlFragment=zzcity",LAST);

lr_output_message(lr_eval_string("更改后的结果:

{Querycity}"));

//添加code字段内容

lr_xml_insert("XML={XML_Param}","ResultParam=Querycity",

"XmlFragment=410100","Query=/vcom/area",LAST);

lr_output_message(lr_eval_string("添加后的结果:

{Querycity}"));

//将name字段值改为zz_01

lr_save_string("zz_01","ReplaceValue");

lr_xml_set_values("XML={XML_Param}","ResultParam=ReplaceParam",

"ValueParam=ReplaceValue","Query=//name",LAST);

lr_output_message(lr_eval_string("更改字段值的结果:

{ReplaceParam}"));

return0;

}

运行结果:

Action.c(9):

"lr_xml_delete"succeeded,1matchprocessed

Action.c(11):

删除后的结果:

Action.c(14):

"lr_xml_replace"succeeded,1matchprocessed

Action.c(16):

更改后的结果:

zzcity

Action.c(19):

"lr_xml_insert"succeeded,1matchprocessed

Action.c(21):

添加后的结果:

zhengzhou410100

Action.c(25):

"lr_xml_set_values"succeeded,1matchprocessed

Action.c(27):

更改字段值的结果:

zz_01

4事务相关函数

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_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1