使用jmeter的java执行oracle查询

其实不需要用java来编写查询oracle性能的代码,jmeter有现成的JDBC Connection Configuration来实现对oracle的性能访问,只不过我这个测试人员很喜欢纠结一些事情,而且新年过后上班没什么事干,老大又调休了一周,反正闲着还是闲着,总不能浪费时间,于是把年前纠结的事情放在年后研究,具体是这样的:

有eclipse里创建工程,创建包,创建类等等,然后导入在你本机上安装的oracle的jdbc第三方包:


在Build Path--Add External Archives..引入jmeter的第三方包:


其实不用全部引入的,我比较懒,所以就把全部包引入了,建议按需引入。

然后编写以下代码:

package OOTest;

import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient; 
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.util.Date;

public class OOTest implements JavaSamplerClient{
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@192.168.16.230:1521:sch";
String user = "YJXT";
String password = "yjxt";
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
boolean flag = false;
String keepusername;
String filename;

//接受jmeter中参数的传入
public Arguments getDefaultParameters(){
Arguments params = new Arguments();  
params.addArgument("filename", "0");//设置参数,并赋予默认值0  
return params;
}

//该方法只执行一次
public void setupTest(JavaSamplerContext arg0){
/*String keepusername = arg0.getParameter("filename");
SampleResult sr = new SampleResult();
sr.setResponseData("go :"+keepusername, null);
sr.setDataType(SampleResult.TEXT);*/
}

//循环执行的方法
public SampleResult runTest(JavaSamplerContext arg0) {
// TODO Auto-generated method stub
keepusername = arg0.getParameter("filename");
SampleResult sr = new SampleResult();
try {
try{
Class.forName(driver);
con = DriverManager.getConnection(url,user,password);
String sql = "select * from cas_user cu where cu.username = '" + keepusername + "'";
pstm = con.prepareStatement(sql);
rs = pstm.executeQuery();
flag = true;
}catch(ClassNotFoundException e){
sr.setResponseData("oracle,error1!");
e.printStackTrace();
flag = false;
}catch (SQLException e){
sr.setResponseData("oracle,error2!");
e.printStackTrace();
flag = false;
}
if(flag){
sr.setResponseData("oracle is true");
}
sr.setSuccessful(true);
}catch (Throwable e){
sr.setResponseData("oracle is false");
e.printStackTrace();
sr.setSuccessful(false);
}
return sr;
}

//结束代码,只执行一次。
public void teardownTest(JavaSamplerContext arg0) {

if(rs != null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}

//关闭执行通道
if(pstm != null){
try{
pstm.close();
}catch (SQLException e){
e.printStackTrace();
}
}

//关闭连接通道
try{
if(con!=null&&(!con.isClosed())){
try{
con.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}catch(SQLException e){
e.printStackTrace();
}
    }

/*public static void main(String[] args) {
// TODO Auto-generated method stub
Arguments params = new Arguments();  
params.addArgument("filename", "zssy200585180");
JavaSamplerContext arg0 = new JavaSamplerContext(params);  
OOTest ootest = new OOTest();  
ootest.setupTest(arg0);  
ootest.runTest(arg0);  
ootest.teardownTest(arg0);  
}*/
}


完成后把生成jar 至jmeter的ext下,然后在jmeter创建线程组和java请求:

设置导入参数的参数化文件:


执行:


查看oracle所执行过的语句:


以上就是我用一个纠结的方法完成一个oracle的性能测试,代码比较简单,是因为我只是粗略地写,实际优用需要再优化,喜欢的朋友可以拿去参考,欢迎指导。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值