LoadRunner函数之lr_continue_on_error

本文介绍了VuGen中的错误处理函数lr_continue_on_error的使用方法及其参数设置。该函数允许用户在脚本运行过程中动态调整错误处理行为,如继续执行、跳转到下一个Action或Iteration等。

VuGen提供的错误处理函数lr_continue_on_error用来在脚本中实时修改Vuser的出错设置。

语法:void lr_continue_on_error ( int value )

其中value是是脚本运行出错设置的取值,具体取值及相应值的含义下所示:

常量值   常量名称                                                  含义

0           LR_ON_ERROR_NO_OPTIONS                 取消出错继续执行

1           LR_ON_ERROR_CONTINUE                      发生错误时继续执行脚本

2           LR_ON_ERROR_TO_NEXT_ACTION           发生错误时跳至下一Action运行

3           LR_ON_ERROR_TO_NEXT_ITERATION      发生错误时跳至下一Iteration运行

4           LR_ON_ERROR_END_VUSER                   发生错误时结束当前用户

 

<think>嗯,用户专门询问了LoadRunnerlr_db_connect函数的用法和示例,看来是遇到数据库连接测试的具体实现问题了。从引用的资料来看,用户已经查阅过部分技术文档,但对具体参数配置和实际代码实现还有疑问。用户提供的引用内容很有价值:[3]详细展示了Oracle连接示例,[1][2][4]补充了关联函数的信息。需要重点整合这些材料,特别要注意用户标记的OLEDB连接Oracle的案例。用户可能是性能测试工程师,正在编写数据库压测脚本。技术上要强调三个关键点:函数参数结构必须严格遵循"ConnectionType=OLEDB"这样的键值对格式;连接字符串的拼接规则(引号闭合);SQL执行前后的连接/断开必须成对出现(防止资源泄漏)。虽然引用里没提结果集处理,但用户提供的示例包含lr_db_getValue循环,这个实用技巧可以补充。考虑到LoadRunner版本兼容性,需要提醒连接方式差异(如Oracle可能需要Provider版本更新)。错误排查部分特意增加了防火墙提示,这是实践中容易忽略的点。最后用不同数据库类型收尾,帮助用户举一反三。用户给出的代码片段风格显示ta习惯写详细注释,所以提供的示例也保持了这种风格,包括事务分块和内存释放建议。最后特意留了事务时间监控的延伸问题,因为性能测试者通常关心这个。</think> 以下是根据LoadRunner官方资料整理的`lr_db_connect()`函数详解,包含用法、参数说明和完整示例: ### 一、函数功能 用于在Web Services协议脚本中建立数据库连接,支持以下数据库类型: 1. **SQL** (原生SQL Server) 2. **OLEDB** (Oracle/SQL Server等) 3. **ODBC** 4. **ORACLE** (专用连接) [^3] --- ### 二、函数原型 ```c int lr_db_connect( "StepName=<step_name>", "ConnectionString=<connection_string>", "ConnectionName=<connection_name>", "ConnectionType=<connection_type>", LAST ); ``` --- ### 三、参数详解 | 参数 | 说明 | 示例值 | |------|------|--------| | **StepName** | 步骤名称(在结果报告中显示) | "StepName=DB_Connect" | | **ConnectionString** | 数据库连接字符串 | Oracle: `"Provider=OraOLEDB.Oracle.1;Data Source=ORCL;User ID=scott;Password=tiger;"` | | **ConnectionName** | 连接标识(后续操作需引用) | "ConnectionName=db_orcl" | | **ConnectionType** | 连接类型(必须大写) | `"ConnectionType=OLEDB"` [^3] | --- ### 四、完整示例(连接Oracle数据库) ```c Action() { // 1. 建立数据库连接 lr_db_connect( "StepName=Connect_to_Oracle", // 步骤名称 "ConnectionString=Provider=OraOLEDB.Oracle.1;" "Data Source=ORCL;" // Oracle服务名 "User ID=scott;" "Password=tiger;", // 账户密码 "ConnectionName=conn_db", // 连接标识 "ConnectionType=OLEDB", // 连接方式 LAST ); // 2. 执行SQL查询 int rowCount = lr_db_executeSQLStatement( "StepName=Query_Users", "ConnectionName=conn_db", // 引用上面建立的连接 "SQLStatement=SELECT * FROM lr_auto_users", "DatasetName=user_data", // 结果集名称 LAST ); lr_output_message("查询到%d条记录", rowCount); // 3. 断开连接(必须调用) lr_db_disconnect( "StepName=Disconnect_DB", "ConnectionName=conn_db", // 指定要断开的连接 LAST ); } ``` **关键点说明**: 1. 连接字符串中的空格和分号需严格匹配[^3] 2. `ConnectionName`在后续操作中作为连接句柄使用 3. 必须调用`lr_db_disconnect()`释放资源[^1] --- ### 五、常见问题解决 1. **连接失败** - 检查`Provider`版本(Oracle需安装对应客户端) - 关闭数据库防火墙(如Oracle 1521端口) - 使用`tnsping ORCL`验证网络连通性 2. **中文乱码** 在连接字符串中添加: `"Charset=UTF8;"` 或 `"NLS_LANG=AL32UTF8;"` 3. **连接泄漏** 每个`lr_db_connect()`必须对应一个`lr_db_disconnect()`[^1] --- ### 六、不同类型数据库连接示例 ```c // ODBC连接SQL Server lr_db_connect( "ConnectionString=DSN=my_dsn;UID=sa;PWD=123456;", "ConnectionType=ODBC", ... ); // 原生Oracle连接 lr_db_connect( "ConnectionString=User=scott;Password=tiger;Server=ORCL;", "ConnectionType=ORACLE", // 注意类型名全大写 ... ); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值