如何在LoadRunner中检索数据库值并存储为参数用于Web请求?
LoadRunner连接Oracle数据库并将查询结果存为参数的实现步骤
一、配置数据库连接环境
- 确认LoadRunner的Vugen可访问本地Oracle客户端:将Oracle客户端目录下的
oci.dll等核心文件复制到LoadRunner安装路径的bin目录,或配置系统环境变量PATH包含Oracle客户端的bin路径。 - 若为Web混合脚本,直接在现有Web脚本中添加数据库函数;若仅需数据库操作,新建脚本时选择
Database协议。
二、建立数据库连接
使用lr_db_connect函数创建Oracle连接,示例代码:
int connId; // 替换为你的数据库实际信息 connId = lr_db_connect("StepName=Connect_Oracle", "ConnectionString=Driver={Oracle in OraClient11g_home1};Dbq=你的数据库SID;Uid=用户名;Pwd=密码;", "ConnectionName=Oracle_Conn", LAST); if(connId < 0) { lr_error_message("Oracle数据库连接失败"); lr_abort(); }
注:连接字符串中的驱动名称需与本地Oracle客户端的ODBC驱动名称一致,可通过系统ODBC数据源管理器查看。
三、执行SQL查询并提取结果到参数
1. 执行SQL语句
用lr_db_executeSQLStatement执行查询:
int execResult; // 替换为你的目标SQL查询语句 execResult = lr_db_executeSQLStatement("StepName=Query_Data", "ConnectionName=Oracle_Conn", "SQLStatement=SELECT target_column FROM your_table WHERE your_condition;", LAST); if(execResult < 0) { lr_error_message("SQL查询执行失败"); lr_db_disconnect("ConnectionName=Oracle_Conn", LAST); lr_abort(); }
2. 提取单值到参数
用lr_db_getvalue将查询结果的指定行/列值存入参数:
// 提取结果集第1行第1列的值到参数param_target,索引均从1开始 lr_db_getvalue("StepName=Extract_Value", "ConnectionName=Oracle_Conn", "ResultSet=1", "Row=1", "Column=1", "OutputParam=param_target", LAST);
3. 提取多值到参数数组(可选)
若需提取多行数据,使用lr_db_save_result将结果集保存为参数数组:
lr_db_save_result("StepName=Save_Result", "ConnectionName=Oracle_Conn", "ResultSet=1", "ParamName=param_target_list", LAST);
之后可通过{param_target_list_1}、{param_target_list_2}的形式调用数组元素。
四、在web_custom_request中使用参数
直接用参数占位符替换请求中的对应值,示例:
web_custom_request("API_Request", "URL=http://your_server/api/target", "Method=POST", "Body={\"data\":\"{param_target}\"}", LAST);
五、关闭数据库连接
脚本结束前调用lr_db_disconnect释放连接:
lr_db_disconnect("ConnectionName=Oracle_Conn", LAST);
内容的提问来源于stack exchange,提问作者Yasir
相关产品推荐
相关产品推荐

