未定义与 double 类型的输入参数相对应的函数 eval_参考收藏:loadrunner基础函数介绍...

a80d3bf6d8fa2acf7fa9b0b539fba399.png

一、基础函数

在VU左边导航栏中,有三个LR框架函数,分别是vuser_init(),Action(),vuser_end()。这三个函数存在于任何Vuser类型的脚本中。

  • vuser_init():虚拟用户的初始化函数,存放用户初始化操作,如登录、分配内存等。(只运行一次)
  • Action:虚拟用户要做的业务,也就是测试内容的主体。参数化只对Action有效,Action重复运行。
  • vuser_end():与init()相对,做收尾工作,如退出登录,free内存。(同样只运行一次)

在LR脚本中,我们可以调用三种函数:

  1. VU通用函数,一般以lr开头,如lr_start_transaction函数。
  2. 协议相关函数,不同类型的Vuser的函数一般以本协议类型开头。如果脚本是Web(HTTP/HTML)类型的,web_url就是一个协议函数。
  3. 语言相关函数。如VU脚本用C语言写的,那么C语言的标准函数库或DLL都可以在这里被加载和使用。

二、通用VU函数

通用VU函数是构建在C语言基础之上的脚本框架函数,起支持作用。通用VU函数有一个特征,就是以LR开头,以表明它们属于LR,而不专属于任何协议,只要是C脚本,都可以使用。

通用VU函数可分为:

  • 事务控制函数
  • 命令行分析函数
  • 系统信息函数
  • 字符串函数
  • 日志函数
  • 运行时函数

1.事务与事务控制函数

软件系统的性能就是以一个个事务来度量的。LR中事务的定义就是靠事务函数来进行,在执行性能测试时,LR会采集完成其定义的每个事务所花费的时间,并在性能测试后在Analysis中进行统计分析。

  • 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_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:消除所有打开事务浪费的时间。

2.命令行分析函数

当LoadRunner用命令行方式启动和运行时,以下函数用来分析命令行,以得到命令行中的参数信息。

  • lr_get_attrib_double:检索脚本命令行中使用的double类型变量。
  • lr_get_attrib_long:检索脚本命令行中使用的long类型变量。
  • lr_get_attrib_string:检索脚本命令行中使用的字符串。

3.系统信息函数

用来得到VU系统信息:

  • lr_user_data_point:记录用户定义的数据采集点。
  • lr_whoami:将有关Vuser的信息返回给Vuser脚本。
  • lr_get_host_name:返回执行Vuser脚本的主机名。
  • lr_get_master_host_name:返回运行LoadRunner Controller的计算机名。

4.字符串函数

主要是对参数进行操作,包括对不同类型参数的读取、存储和移动。

  • lr_eval_string:返回参数的当前值。
  • lr_save_string:将以NULL结尾的字符串保存到参数中。
  • lr_save_var:将变长字符串保存到参数中。
  • lr_save_datetime:将当前日期和时间保存到参数中。
  • lr_advance_param:前进到下一个可用参数。
  • lr_decrypt:解密已编码的字符串。
  • lr_eval_string_ext:lr_eval_string的扩展,为指向包含参数数据的缓冲区的指针。
  • lr_eval_string_ext_free:释放由lr_eval_string_ext分配的指针。
  • lr_save_searched_string:在缓冲区中搜索字符串实例,并将该字符串实例保存到参数中。

5.消息函数

是VU发送和记录log的函数

  • lr_debug_message:将调试消息发送到输出窗口。
  • lr_error_message:将错误消息发送到输出窗口。
  • lr_get_debug_message:得到当前的消息类。
  • lr_log_message:将输出消息直接发送到output.txt文件,此文件位于Vuser脚本目录中。
  • lr_output_message:将消息发送到输出窗口。
  • lr_set_debug_message:为输出消息设置消息类。
  • lr_vuser_status_message:生成格式化输出并将其打印到Controller Vuser状态区域。
  • lr_message:将消息发送到Vuser日志和输出窗口。

6.运行时函数

运行时(run-time)多数是通过VU的runtime来设置的。

  • lr_load_dll,加载外部dll。
  • lr_think_time:暂停脚本的执行,以模拟思考时间。
  • lr_continue_on_error,指定脚本如何处理错误场景,是继续还是退出。
  • lr_rendezvous:在Vuser脚本中设置集合点。

三、协议相关函数

除了通用Vuser函数以外,Vugen还会在录制时生成特定于协议的函数,并将它们插入到Vuser脚本中。

1.http协议

Header设置函数:

  • Web_add_header
  • Web_clean_header

点击链接:

  • Web_link
  • Web_image

提交表单:

  • Web_submit_data
  • Web_submit_form

2.web系统设置

Cache设置:

  • Web_cache_leanup
  • Web_load_cache

Cookie设置:

  • Web_add_cookie
  • Web_cleanup_cookies

Proxy设置:

  • Web_set_proxy
  • Web_set_secure_proxy

3.LR框架支持

检查点:

  • Web_find
  • Web_image_check

关联:

  • Web_create_html_param
  • Web_create_html_param_ex
  • Web_reg_save_param
  • Web_set_max_html_param_len

控制:

  • Lr_start_transaction
  • Lr_rendzvous
  • Lr_think_time

获取更多课程资讯、技术干货、学员笔记,关注牛鹭学院官方公众号:牛鹭软件测试训练营

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 未定义double类型输入参数相对函数interp1是指在某个编程环境下,没有编写或者提供一个与double类型参数匹配的interp1函数。 interp1是一种插值函数,通常用于数值计算和数据处理中,用于在给定的一组离散数据点之间进行插值计算。根据提供的数据点和插值方法,interp1可以返回在某个给定点上的插值结果。 在处理double类型数据时,interp1函数需要接受一个double类型输入参数,表示需要进行插值计算的点。但是如果编程环境中没有提供与double类型参数相对的interp1函数,那么无法直接使用该函数来进行插值计算。 为了解决这个问题,可以考虑使用其他类型的插值函数或者手动实现一个与double类型参数相对的interp1函数。如果需要进行高精度的计算,可以使用支持更精确浮点数处理的库函数或者实现自己的算法。另外,还可以考虑将double类型参数转换为其他类型,如整型或字符型,然后再使用interp1函数进行插值计算。 总之,在未定义double类型输入参数相对函数interp1的情况下,我们需要根据具体的编程环境和需求来选择适当的解决方案。 ### 回答2: 未定义double类型输入参数相对函数interp1意味着在给定一个double类型输入参数时,没有定义一个与之相对的interp1函数。 interp1函数一般用于在给定的数据集上进行插值运算,它的参数一般包括一个x值数组,一个对的y值数组,还有一个待插值的x值数组。在给定的x值数组和y值数组上,interp1函数会根据插值算法计算并返回与待插值的x值数组对的插值结果。 在某些编程语言或工具包中,interp1函数可能还允许使用其他的参数,比如指定插值算法类型、指定插值的形式(例如一维线性插值、二次样条插值等)、指定边界条件等。 但是如果没有定义与double类型输入参数相对的interp1函数,那么就无法在给定的数据集上进行插值运算,并返回与待插值的x值数组对的插值结果。 在这种情况下,可能需要先检查所使用的编程语言或工具包的文档或帮助文件,确认是否存在与double类型输入参数相对的interp1函数,或者考虑使用其他的插值函数或方法来实现需求。 ### 回答3: 未定义double类型输入参数相对函数interp1意味着没有定义一个适用于double类型输入参数的interp1函数。interp1函数是一种插值函数,它用于根据给定的输入向量和对的输出向量,对新的输入点进行插值计算。通常,interp1函数可以适用于不同类型输入参数,例如向量、矩阵、多维数组等。 然而,如果没有定义与double类型输入参数相对的interp1函数,可能是因为目前的实现中只支持特定类型输入参数,或者是在函数实现中出现了错误导致无法正确处理double类型输入参数。 解决此问题的方法可能是更新interp1函数的实现,使其能够支持double类型输入参数。这可能涉及到检查当前实现中对于特定输入类型的处理方式,并进行相的修改和调整。另外,还可以通过引入新的函数重载形式来处理不同类型输入参数,包括double类型。 总之,如果目前未定义double类型输入参数相对的interp1函数,需要检查函数实现并进行相的修改,以确保能够正确处理double类型输入参数

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值