jmeter创建ssh连接访问数据库

互联网行业越来越重视安全机制,很多公司数据库连接都会在原有基础连接信息上,再加一层身份校验,比如ssh层连接身份校验。

我们在做接口测试的时候,常常都需要到数据库里面拿一些数据,为了方便,使用jmeter的jdbc request和jdbc connection  configuration模块功能可以满足基本的测试数据需求。

但是,在jdbc connection  configuration模块功能里面,只支持基本的数据库连接配置,如果我们要访问的数据库有ssh校验,就不能达到我们的需求。我们分析一下整个流程,主要分4个步骤,具体如下:

一、创建ssh连接

jmeter是纯java写的工具,那么只要java能够创建ssh连接,在jmeter里面也是可以做到的。

jmeter里面BeanShell Sampler模块可以实现这个功能,代码如下:

import com.jcraft.jsch.*;


import java.sql.*;
JSch jsch = new JSch();  
Session session = jsch.getSession("ssh_username", "ssh_ip", ssh_prot);  
session.setPassword("ssh_password");  
session.setConfig("StrictHostKeyChecking", "no");  

session.connect();  
int assinged_port = session.setPortForwardingL(your_prot, "数据库连接地址", 数据库端口);//端口映射 转发

            System.out.println("localhost:" + assinged_port);

      
           session.setPortForwardingR(your_prot, "数据库连接地址", port);
            System.out.println("localhost:  -> ");

System.out.println(session.getServerVersion());
//Class.forName("com.mysql.jdbc.Driver");
//Connection conn = null;
//conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");

二、创建数据库连接

使用jmeter自带的jdbc connection  configuration模块功能创建连接即可。

具体步骤(略)

三、创建sql请求

使用jmeter自带的jdbc request模块功能创建连接即可。

具体步骤(略)

四、正则提取需要的数据

使用jmeter自带的“正则表达式提取器”模块功能创建连接即可。

具体步骤(略)

注意细节:

1,依赖jar包不可少,jsch-0.1.54.jar 和 mysql-connector-java-5.1.39.jar

2,创建ssh连接只需要执行一次,与事务线程独立开

猜你喜欢

转载自xiaojingjing.iteye.com/blog/2411420