准备
- 连Linux机器上的MySQL数据库,要通过SSH隧道链接。
SSH的英文全称是Secure Shell.传统的网络服务程序,如:FTP和telnet在本质上都是不安全的, 因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而通过使用SSH客户端与服务器端通讯时,用户名及口令均进行了 加密,有效防止了对口令的窃听。同时通过SSH的数据传输是经过压缩的,所以可以提高数据的传输速度.
-
SecureCRT介绍
这是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows或者Mac下登录UNIX或Linux服务器主机的软件。
有些教程使用putty,但是在(1)win上试用发现putty没有SecureCRT那么可视化;(2)putty不支持mac,遂弃之~
配置SecureCRT
-
打开SecureCRT
-
新建ssh连接
connect->session manager->new session
下一步输入ssh连接密码,保存,双击该连接,看到连接ok
-
数据库信息填写
点击链接右键 -> properties -> port forwarding -> add
上面的跳转端口可以设置为8181,浏览器访问localhost:8181,可以看到提示下载文件,说明该端口设置ok。此端口待会用于jmeter连接跳转
JDBC连接
- 添加需要的驱动jar包
连接不同类型的数据库需要下载不同的驱动。mysql需要下载jdbc mysql driver,拷贝到jmeter->lib下面 -
添加 JDBC Connection Configuration
Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
Database URL:数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称
JDBC Driver class:JDBC驱动com.mysql.jdbc.Driver
username:数据库登陆的用户名
passwrod:数据库登陆的密码
不同数据库具体连接方式如下:
Datebase | Driver class | Database URL |
---|---|---|
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://host:port/{dbname} |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql:{dbname} |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:user/pass@//host:port/service |
Ingres (2006) | ingres.jdbc.IngresDriver | jdbc:ingres://host:port/db[;attr=value] |
MSSQL | com.microsoft.sqlserver.jdbc.SQLServerDriver或者net.sourceforge.jtds.jdbc.Driver | jdbc:sqlserver://IP:1433;databaseName=DBname或者jdbc:jtds:sqlserver://localhost:1433/"+"library" |
-
配置JDBC Request
-
增加结果树,运行,查看结果,ok~
实例
案例:新增topic,取上一个请求的响应里面用正则表达式提取变量topic_id,跟mysql查询结果进行断言
Apply toJMeter Variable: name_1
Patterns to Test:${KEYWORD}
JDBC请求里面提取查询结果
断言,切记这里是name_1