lr录制脚本事件为0_LoadRunner脚本开发中常用的方法

0249cd7e9d6dc69b961ec58e7f5768da.png

本文介绍LoadRunner性能测试工具的C语言脚本开发中常用到的几个方法:

一、事务和事务控制函数的使用

案例:如何自己获取DuringTime和WastedTime

a) 定义临时变量存储数据

  • double duringTime;
  • double wastedTime;

b) 调用方法获取两个值(在事务中,值稍微比事务时间小,位置灵活)

  • duringTime=lr_get_transaction_duration("login");
  • wastedTime=lr_get_transaction_wasted_time("login");

c) 输出结果

  • lr_output_message("The duration time is %f seconds",duringTime);
  • lr_output_message("The duration time is %f seconds",wastedTime);

二、文件操作方法的使用

(变量放在文件的开头位置)

案例:文件的创建、读写操作(如果已存在的文件,打开文件,写入数据,关闭文件;如果文件不存在,创建文件并写入数据,关闭文件流,结束)

使用的方法:long fopen( const char *filename, const char *access_mode);

char  

三、系统信息函数的使用

案例1:获取每个虚拟用户信息,在vugen中可以返回-1,none,0;可以借助File的操作将信息写入日志文件

void lr_whoami (int *vuser_id, char **sgroup, int *scid);

参数说明:

  • 【int *vuser_id】需先注册,保存正在运行的vuser的ID,在虚拟用户生成器(Virtual User Generator)中回放返回-1
  • 【char **sgroup】需先注册,保存正在运行的vuser的组名(脚本名),在虚拟用户生成器(Virtual User Generator)中回放返回None
  • 【int *scid】需先注册,保存正在运行的Scenario的ID,在虚拟用户生成器(Virtual User Generator)中回放返回0

函数使用技巧:

函数的所有参数都为必须,其中vuser_id、scid两个整形的变量,如果不需要返回则直接用NULL替换即可

例:lr_whoami (&myid,&mygroup,NULL); //就用NULL把scid的变量替换掉了,也就不保存scid了

a)定义变量名

	 int id;
	 int cid;
	 char* group;

b)调用方法

	lr_whoami(&id,&group,&cid);

c)输出结果:

	lr_output_message("%d,%d,%s",id,cid,group);
案例2:返回执行Vuser脚本的主机名及运行controller的主机名

涉及到的方法分别是:lr_get_host_name及lr_get_master_host_name

lr_get_host_name格式:

  • Return Values:这个函数成功的返回值是该主机的名字,失败的返回值是空;这个返回值是指向一个静态数据并且不能修改的只读模式
  • Parameterization:该函数不能被参数化
  • C语言的格式是:char *lr_get_host_name();
  • Java语言的格式是:String lr.get_host_name();

a)定义变量

	char* myHost;

b)调用方法

	myHost=lr_get_host_name();

c)输出结果

	lr_output_message("my host is : %s",myHost);

lr_get_master_host_name获取controller的主机名,自己尝试使用。

四、字符串函数的使用

案例1:获取当前日期,并打印到日志中(lr_save_datetime)

lr_save_datetime的格式如下:

void lr_save_datetime(const char *format, int offset, const char *name);

lr_save_datetime将当前日期和时间,或具有指定偏移的日期和时间保存在参数中。如果达到MAX_DATETIME_LEN个字符,结果字符串将被截断。

参数说明:

1)const char *format

  • 格式化信息,同fopen、lr_message等相同;例如:"the first is %s"

2)int offset:时间的偏移量:

  • DATE_NOW(现在的日期)
  • TIME_NOW(现在的时间)
  • ONE_DAY(一天的时间)
  • ONE_HOUR(一小时的时间)
  • ONE_MIN(一分钟的时间)

需要注意的是,时间的偏移量可以使用公式,例如:DATE_NOW+ONE_DAY, 这样,我们就可以取得昨天、明天的日期了:

  • DATE_NOW-ONE_DAY(昨天)
  • DATE_NOW+ONE_DAY(明天)

那么,我们就可以使用如下表示得到前天的日期:

  • lr_save_datetime("%Y-%B-%d",DATE_NOW-2*(ONE_DAY),"abc");
  • lr_save_datetime("%Y-%B-%d",DATE_NOW-2*24*(ONE_HOUR),"abc");
  • lr_save_datetime("%Y-%B-%d",DATE_NOW-2*24*60*(ONE_MIN),"abc");

当然,我们也可以使用如下表示2个小时后的时间:

  • lr_save_datetime("%H:%M:%S",TIME_NOW+2*(ONE_HOUR),"ab");
  • lr_save_datetime("%H:%M:%S",TIME_NOW+2*60*(ONE_MIN),"ab");

3)const char *name

  • 参数保存的参数名;使用时lr_eval_string("{参数名}")

五、事务返回值处理

结束事务的标记可以是LR_AUTO、LR_PASS、LR_FAIL。

  • LR_AUTO会根据事务的执行结果直接判断事务成功还是失败。
  • LR_PASS,则直接确定事务是成功的
  • LR_FAIL直接确定事务是失败的

也可以通过web_submit_data()的返回值判断事务的状态

int 

欢迎关注作者,如果觉得写的还不错,就给点个赞同、喜欢、收藏(后续持续更新)。

【全文手打 如需转载 请标注此出处】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值