jmeter创设ssh连接访问数据库
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连接只需要执行一次,与事务线程独立开