loadrunner之常用函数()

来源:互联网 发布:泰国香米 知乎 编辑:程序博客网 时间:2024/06/05 21:38
 一.事务函数
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/停止事务数据的收集
lr_stop_transaction_instance/停止事务(由它的句柄指定)数据的收集
lr_wasted_time/消除所有打开事务浪费的时间
lr_end_sub_transaction/标记子事务的结束以便进行性能分析
r_end_transaction/标记LoadRunner事务的结束
lr_end_transaction_instance/标记事务实例的结束以便进行性能分析
lr_fail_trans_with_error/将打开事务的状态设置为LR_FAIL并
二.日志函数

1、lr_log_message()    // 仅将输出信息记录到 output.txt 中,不在输出窗口展示
2、lr_output_message()    // 仅将输出信息展示在输出窗口中,不记录到日志文件中
3、lr_message()    // 将消息发送到Vuser日志和输出窗口
4、lr_error_message()    // 输出错误信息,不记录到日志文件中
5、lr_debug_message()  //发送调试信息到日志文件,这个函数将返回设定的字符,不包括终止null字符,错误的时候返回一个负值。
6、lr_get_debug_message() //返回当前调试信息,其返回值是根据不同日志设置返回不同的值。
7、lr_vuser_status_message() //发送虚拟用户的状态到LR的Controller,如果成功,返回0,如果事务的名字是非法的或如果和lr_set_transaction事务开始名称不同时,返回1。
LoadRunner中lr_output_message和lr_log_message
(1)在vgen中,我们必须写输出函数输出信息,将我们所想要了解的信息用函数输出,主要有这么几个函数输出信息: lr_output_message,lr_error_message,lr_log_message。这些函数请参阅help-->function reference.
其次,我们要在runtime settings中设置,勾选always send messages,具体的做法是:runtime settings--->log-->always send messages,这样我们才能写出Log,在我们的脚本所在的文件夹中,有两个文件很重要, mdrv.log.txt和output.txt文件,lr_log_message只会把信息输到mdrv.log文件中,而lr_output_message则会写进以上两个文件。
(2)在controller中,很多朋友都会想知道多次迭代,参数是否正确的导入了呢,我们依旧查看log,我们在执行结束后,查看结果目录的Log文件夹,如果是负载生成器运行的话,则在tmp目录。不过,还想提醒朋友们,在controller 我们也要设置runtime settings才行,而且每个用户组的runtime settings,设置的方法是:在controller的design标签页中,右下角的部分有runtime settings按钮,我们点击它,设置的方法与在vgen中一样的。

对lr_log_message、lr_output_message与lr_message这三个函数的使用一直都有点模糊,查了相关资料,较为详细的说法如下:
lr_log_message  只是记会写到本地vuser的log里面。
lr_message和lr_output_message基本相同,它们会同时写到vuser的log和发送到controller里面,也就是说如果你在有很多压力客户机,它们会把信息除了记录在本地的vuser之外,还要发送到远端的controller中,这会浪费大量的网络带宽和controller的资源,lr_output_message多了一个输出信息语句在脚本中的位置。
当然要上面的函数有效果,你必须在run-time里面设置相应的log级别。
要看到controller中的输出,你可以在output的信息窗口中选择"All Messages".
(1)在vgen中,我们必须写输出函数输出信息,将我们所想要了解的信息用函数输出,主要有这么几个函数输出信息: lr_output_message,lr_error_message,lr_log_message。这些函数请参阅help-->function reference.
其次,我们要在runtime settings中设置,勾选always send messages,具体的做法是:runtime settings--->log-->always send messages,这样我们才能写出Log,在我们的脚本所在的文件夹中,有两个文件很重要, mdrv.log.txt和output.txt文件,lr_log_message只会把信息输到mdrv.log文件中,而lr_output_message则会写进以上两个文件。
(2)在controller中,很多朋友都会想知道多次迭代,参数是否正确的导入了呢,我们依旧查看log,我们在执行结束后,查看结果目录的Log文件夹,如果是负载生成器运行的话,则在tmp目录。不过,还想提醒朋友们,在controller 我们也要设置runtime settings才行,而且每个用户组的runtime settings,设置的方法是:在controller的design标签页中,右下角的部分有runtime settings按钮,我们点击它,设置的方法与在vgen中一样的。
 三.运行时函数
1.lr_abort();  //终止执行的脚本,他将停止执行action部分,vuser_end部分,以及结束脚本执行。

在9.5的帮助文档中是这样描述的:
如果终止了action里脚本的运行,将会直接运行vuser_end中的脚本。
当你用这个函数结束脚本的运行,它的状态将会是stop,这里应该指的是在controller中运行后在analysis中的状态
我们使用该函数可以手动来终止脚本的运行,试了一下该函数得到以下结论:
如果在vuser_init中运行此函数,将会直接终止,不在运行之后的函数,包括aciton和vuser_end;
如果有新建的action,在action中或新建的action中使用该函数,都将直接终止运行,直接运行vuser_end里的脚本。
帮助中的示例:
int status;
status = web_url("Login",
          "URL=https://secure.computing.com//login.asp?user=(username)&session={ssid}",
          "RecContentType=text/html", LAST);
if (status == LR_FAIL) {
     lr_error_message("Error: %s", "Unable to login to secure computing");
     lr_abort();
}
2.lr_continue_on_error(); //发生错误后运行的事件,参数为1表示发生错误继续运行脚本,参数为0表示取消出错继续运行脚本。
3.lr_exit(); //该函数允许你运行中退出脚本。在声明该函数的事务退出后不会出现controller的事务状态集合中,也不会被计入到通过和失败的事务数中。
4.lr_think_time(); //设置思考时间。
5.lr_rendezous(); // 集合点,可以设置虚拟用户相同操作之前进行集合,通过集合点可以增加被测试应用的压力。一般像某些购物网站整点秒杀运用比较多。
6.lr_load_dll(); //调用DLL文件,这个函数执行成功将返回0,如果导致内存溢出条件返回10,如果文件不存在,返回11.