工具准备
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
{
//以下是数据库配置,由xx代替,各位可以根据自己服务情况对号入座
String dbUrl = "jdbc:oracle:thin:@xx.xx.xx.xx";
String user = "xxxx";
String password = "xxxx";
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 init
public 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
执行成功