用脚本实现向Oracle表中插入数据

上一篇 / 下一篇  2011-04-15 15:17:53 / 个人分类:LoadRunner


首先,安装及环境配置

1. 安装Oracle - OraClient10g_home2


2. Net Configuration Assistant 配置步骤:

假设数据库所在服务器IP地址为:  192.168.0.1

数据库实例名为:ora92

用户名: umap

密码:umap

第一步:打开配置程序

位于:程序-->Oracle - OraClient10g_home2-->Configuration and Migration Tools-->Net Configuration Assistant ;

第二步:选择配置项:

打开程序后,出现的界面中有四个选项, 分别为(1)监听程序配置,(2)命名方法配置,(3)本地NET服务名配置,(4)目录使用配置. 这里我们选择第3个,点下一步

第三步:根据需要选择操作内容,是添加还是对以前的配置进行修改或删除;

第四步:根据您要连接的Oracle数据据库版本选择, 这里我们选择Oracle8i或更高版本数据库或服务;

第五步:服务名,输入示例中的实例名;

第六步:选择TCP;

第七步:主机名:输入示例中的IP地址; 使用默认端口1521;

第八步:使用您的登录帐户与密码进行连接测试,正常情况下测试通过。

第九步:打开:程序-->Oracle - OraClient10g_home2-->Application Developer-->SQL Plus
录入select * from dual;回车,有数据返回,则连接正常。

 

然后,脚本录制

第一步:打开Loadrunner,选择Oracle(2-Tier)协议
Start Recording设置
Application Type:Win32Applications
Program to Record:选择sqlplus可执行程序的路径,如D:\oracle\product\10.2.0\client_2\BIN\sqlplusw.exe
Record into Action:vuser_init

第二步:开始录制
输入:用户名(U),口令(P),主机字符串(H)
点击确定按钮

第三步:选择Action
键入insert into lis.lcoldinfo (SERIALNO, CONTNO, PROPOSALCONTNO, CUSTOMERNO, CUSTOMERTYPE, NAME, SEX, BIRTHDAY, AGE, IDTYPE, IDNO, POLNO, RISKCODE, MAINPREM, PREM, PAYMONEY, HEALTHIMPARTFLAG, HEALTHIMPART1, HEALTHIMPART2, MANAGECOM, OERATOR, MAKEDATE, MAKETIME, MODIFYDATE, MODIFYTIME, STANDBYFLAG1, STANDBYFLAG2, STANDBYFLAG3, STANDBYFLAG4, STANDBYFLAG5)""values ('{Value_Pv}', '000', '6001237544', 'T000067060', '1', '李芬', '1', to_date('10-04-1983', 'dd-mm-yyyy'), 25, '0', '410103198304107040', '110600000004237', 'BENE11', 7680.00, 7680.00, 0.00, '3', '', '', '8660000000', '001', to_date('15-01-2009', 'dd-mm-yyyy'), '17:16:11', to_date('15-01-2009', 'dd-mm-yyyy'), '17:16:11', '', '', '', '', '';

回车
键入commit;回车

第四步:选择vuser_end
键入quit;回车
停止录制

第五步:修改Action部分脚本:
Action()
{

int i;
lr_output_message("当前时间为%s",lr_eval_string("{NewParam}"));


for (i=0;i<4;i++) {

 char Value_P[20]="";
 char Value_Pv[20]="";
 char path[20]="";
 char separator[]=".";
 char * token;
 strcat(path,lr_eval_string("{DateTime}"));
 token = (char *)strtok(path,separator);
 if(!token){
  lr_output_message("No token found in string!);
        return(-1);
        }
 while(token != Null) {
  strcat(Value_P,lr_eval_string(token));
  token =(char*)strtok(NULL,separator);
        }
 strcat(Value_P,lr_eval_string("{VuserId}"));
 lr_eval_string(Value_P,"Value_Pv");
    lr_output_message( "当前流水号为 %s", lr_eval_string("{Value_Pv}") );

 //插入数据的过程中需要注意:ORA-00001:违反唯一约束条件-----------------------------------------------insert
  
lrd_ora8_handle_alloc(OraEnv1, STMT, &OraStm7, 0);
lrd_ora8_stmt(OraStm7, "insert into lis.lcoldinfo (SERIALNO, CONTNO, PROPOSALCONTNO, CUSTOMERNO, CUSTOMERTYPE, NAME, SEX, BIRTHDAY, AGE, IDTYPE, IDNO, POLNO, RISKCODE, MAINPREM, PREM, PAYMONEY, HEALTHIMPARTFLAG, HEALTHIMPART1, HEALTHIMPART2, MANAGECOM, OERATOR, MAKEDATE, MAKETIME, MODIFYDATE, MODIFYTIME, STANDBYFLAG1, STANDBYFLAG2, STANDBYFLAG3, STANDBYFLAG4, STANDBYFLAG5)"
"values ('{Value_Pv}', '000', '6001237544', 'T000067060', '1', '李芬', '1', to_date('10-04-1983', 'dd-mm-yyyy'), 25, '0', '410103198304107040', '110600000004237', 'BENE11', 7680.00, 7680.00, 0.00, '3', '', '', '8660000000', '001', to_date('15-01-2009', 'dd-mm-yyyy'), '17:16:11', to_date('15-01-2009', 'dd-mm-yyyy'), '17:16:11', '', '', '', '', '')", 1, 32, 0);
  lrd_ora8_exec(OraSvc1, OraStm7, 1, 0, &uliRowsProcessed, 0, 0, 0, 0,  0);lrd_ora8_exec(OraSvc1, OraStm7, 1, 0, &uliRowsProcessed, 0, 0, 0, 0,  0);
lrd_handle_free(&OraStm7, 0);
}  //循环结束

lr_output_message("当前时间为%s",lr_eval_string("{NewParam}"));
return 0;

}

第六步:脚本完成


 


TAG:

 

评分:0

我来说两句

Open Toolbar