JMeter 核心实践之 JDBC 组件实现参数化实战
1)实战步骤
-
前置操作(这里只介绍一种引入驱动的方法,也是一劳永逸的方法,实际工作中你只要掌握一种就可以了)
- 先去官网下载对应版本的 Mysql 驱动,下载地址: https://dev.mysql.com/downloads/connector/j/,注意驱动不能低于使用的 Mysql 版本
- 解压下载的 gz 压缩包,进去解压后的目录,把 mysql-connector-java-5.1.34.jar (这个是我当前使用的版本)文件拖到 JMeter 目录下的 lib 目录下,启动 JMeter 即可生效
-
JMX 脚本解析:
- 添加 JDBC Connection Configuration (JDBC 连接配置器)组件
- 添加 Thread Group (线程组)组件
- 添加 JDBC Request (JDBC 请求)组件
- 添加第一个 Debug Sampler (调试取样器)组件
- 添加第二个 Debug Sampler (调试取样器)组件
- 添加第三个 Debug Sampler (调试取样器)组件
- 添加第四个 Debug Sampler (调试取样器)组件
- 添加 View Results Tree (察看结果树)组件
2)具体步骤
-
添加 JDBC Connection Configuration (JDBC 连接配置器)组件,并配置数据库信息,以 Mysql 为例:
- 第一处输入项表示定义 JDBC 连接配置器组件名称,为必填项;例如:mybasedata
- 第二处输入项表示 JDBC 连接对应数据库的信息,为必填项,解读如下:
- Databases URL 表示需要输入对应的数据库地址和数据库名称;例如:jdbc:mysql://localhost:3306/myblog
- JDBC Driver class 表示需要选择对应数据库的驱动;例如:com.mysql.jdbc.Driver
- Username 表示需要输入连接数据库的用户名;例如:mysqldb
- Password 表示需要输入连接数据库的密码;例如:123456
-
添加 Thread Group (线程组)组件,并默认填写
-
添加 JDBC Request (JDBC 请求)组件,并填写相关信息
- 第一处输入项表示上面定义的 JDBC 连接配置器组件名称,需要保持一致性,为必填项;例如:mybasedata
- 第二处输入项表示你想要查询的语句,跟操作数据库的写法一样,为必填项;例如:SELECT id,username,email FROM auth_user;
- 第三处输入项表示把 SQL 查询的结果根据定义的变量输出,这里要注意 SQL 输出有多少列就写多少个变量接收,这里我们定义三个变量接收,例如:id,username,email
- 输出的数据时需要注意:
- 要清楚一点,就是定义每一个变量对应查询数据的每一列数据字段;例如:id,username,email 代表输出三列数据
- 如果想知道对应的列有多少行数据,可以这么写:${id_#} && ${username_#} && ${email_#};输出的数据可以继续看下面
- 如果有 2 行数据,输出第 1 行所有数据,可以这么写:${id_1} && ${username_1} && ${email_1};输出的数据可以继续看下面
- 如果有 2 行数据,输出第 2 行所有数据,可以这么写:${id_2} && ${username_2} && ${email_2};输出的数据可以继续看下面
- ..... 以此类推
-
添加第一个 Debug Sampler (调试取样器)组件,为了方便查看调试结果,标题改为:
${id_#} && ${username_#} && ${email_#}
-
添加第二个 Debug Sampler (调试取样器)组件,为了方便查看调试结果,标题改为:
${id_1} && ${username_1} && ${email_1}
-
添加第三个 Debug Sampler (调试取样器)组件,为了方便查看调试结果,标题改为:
${id_2} && ${username_2} && ${email_2}
-
添加第四个 Debug Sampler (调试取样器)组件,为了方便查看调试结果,标题改为:
${id_3} && ${username_3} && ${email_3}
-
添加 View Results Tree (察看结果树)组件并执行脚本,查看执行结果
- 第一处输出项表示该 SQL 查询的全部数据
- 第二项输出项表示每一行输出的数据
- 第三行输出项表示每一列有多少行数据
本文来自博客园,作者:那个曼巴,转载请注明原文链接:https://www.cnblogs.com/aharderbro/articles/15221481.html