Loadrunner11使用Java协议操作oracle数据库

来源:互联网 发布:矩阵ab相似的充要条件 编辑:程序博客网 时间:2024/05/20 23:36

​​工具准备

​JDK

​既然是Java协议,jdk必不可少,但是lr11支持的jdk最大版本只到jdk1.6,并且得是32位。​

jdbc连接jar包

连接oracle数据库,需要准备数据库驱动jar包,根据oracle的版本选择对应版本jar包


脚本创建

启动Vugen

打开loadrunner11,virtualUser。


协议选择

File->new->选择协议:"Java Vuser"->create


编写脚本






代码段

import java.io.*;import java.sql.*;import lrapi.lr;public class Actions{        String dbUrl = "jdbc:oracle:thin:@10.1.30.6:1521:cfs";    String user = "BZCW";    String password = "123456a?";    Connection conn= null;    Statement stat = null;    /*接收select操作返回的结果集合,如果是增删改操作则不需要*/    ResultSet rs = null;public int init() throws Throwable {        Class.forName("oracle.jdbc.OracleDriver").newInstance();        conn = DriverManager.getConnection(dbUrl, user, password);stat = conn.createStatement();return 0;}//end of initpublic int action() throws Throwable {   try{       /*插入操作的SQL语句*/       String str="INSERT INTO APP_USER_INFO (ID,USER_ID,USER_NAME,USER_PHONE,USER_IDCARD,USER_PASSWORD,USER_STAUS,RSET_PWD_M,USE_PWD_M,ERR_LOGIN_COUNT,LAST_LOGIN_DATE,CREATE_USER,CREATE_DATE,UPDATE_USER,UPDATE_DATE,REMARK,RES_INFO,SESSION_ID,FIRST_LGN_DATE,AES_PASSWORD,ENP_ID,ENP_NAME,USE_PWD_S,FINGERPRINT_PWD) values ('<ID>','','zhangsan<USER_NAME>','188<USER_PHONE>','<USER_IDCARD_1><USER_IDCADR>','DC483E80A7A0BD9EF71D8CF973673924','0','1','1',0,to_date ('2007-11-15','YYYY-MM-DD'),'',to_date ('2007-11-15','YYYY-MM-DD'),'',to_date ('2007-11-15','YYYY-MM-DD'),'','remarkMessage','0370e72c-1fe5-4ec1-a160-a3adf4e64e66','','gU15Wr5rOg7p72vpXACDIw==','0,22101003020','某某有限责任公司','0','')";       //注意SQL语句后面不需要加;       //String str="SELECT * FROM APP_USER_INFO";       lr.start_transaction("insert_into_userinfo");       /*如果操作类型为select,使用excuteQuery方法,查询操作返回记录集(resultset),需要用rs对象接收*/       //rs = stat.executeQuery(str);       /*如果操作类型为update、insert、delete使用executeUpdate方法,返回内容是影响到的条数(int),如果是creat table或者 drop table返回值为0*/       stat.executeUpdate(str);                      lr.end_transaction("insert_into_userinfo",lr.AUTO);        }catch(Exception e){                e.printStackTrace();               System.out.println("Test Failed");         }     return 0;}//end of action        public int end() throws Throwable {    stat.close();    conn.close();    rs.close();        return 0;    }//end 0f end}


注:

1、dbUrl、user、password、conn、stat、rs作为全局变量定义在action方法外是因为loadrunner在并发时,action方法会反复执行,如果放在action内则会反复创建连接占用数据库资源,对测试结果有影响。

2、引入resultset集合类是针对查询类交易存放结果集使用。

3、所需要操作的SQL语句作为字符串存储时不需要添加";"

4、如果是查询操作则使用:executeQuery(stirng)函数,如果是增删改则使用:executeUpdate(str)函数


环境设置

JDK设置

F4->classpath

1.引入ojdbc的jar包 2.引入jdk的lib库

JDK路径

F4->​JavaVm->user specified JDK->输入jdk的安装路径,如:I:\Program Files (x86)\Java\jdk1.6.0_39


将jdk的地址复制到后面的value里

脚本编译

设置结束,点击OK保存,编译,提示:No errors detected,表示编译通过。


​参数化处理

顺序递增型参数

由于部分数据需要对插入数据记录编号,一般如ID这类的字段,那么设置参数的时候,选择参数化类型为:UniqueNumber。

​随机型参数

此类数据是由于业务系统要求每个数据之间的数据不同即可,如用户的手机号、身份证这些字段。那么设置参数化时,选择参数化类型为:Random Number。


注:如果参数化时字段长度不够,则可以通过拼接的方式进行参数化处理,即一个字段有多个参数化数据组合而成即可。Random Number支持最大的数字为:4294967295。


设置迭代、启动脚本


制造多少数据则改为多少

F4->pacing->number of Iterations:1000​



执行成功