51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 601|回复: 0
打印 上一主题 下一主题

Jmeter数据库连接(MYSQL)

[复制链接]
  • TA的每日心情
    无聊
    2024-9-27 10:07
  • 签到天数: 62 天

    连续签到: 1 天

    [LV.6]测试旅长

    跳转到指定楼层
    1#
    发表于 2022-8-23 15:07:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    目标:Jmeter连接数据库,辅助接口自动化测试

    1.添加JDBC驱动;
    2.连接数据库;
    3.查询需要的字段数据

    添加JDBC驱动:

    JDBC驱动 官网下载地址:https://dev.mysql.com/downloads/file/?id=477058

    将压缩包中的mysql-connector-java-8.0.11.jar 添加到jmeter安装目录的lib/ext文件下,重启jmeter,即可生效。

    连接数据库:

    1.Jmeter添加JDBC Connection Configuration
    路径:测试计划右键添加配置元件-JDBC Connection Configuration

    variable name for created pool= 库名,需要与database url中的库名保持一致,否则会出错;

    Database URL,格式为:jdbc:mysql://ip:端口号/库名?serverTimezone=UTC&characterEncoding=utf-8

    JDBC Driver class : com.mysql.jdbc.Driver;

    validation Query: select 1


    输入数据库登录的用户名和密码,即可以连接数据库了。

    不同数据库对应的配置情况:

    Database Driver class Datebase URL validation Query
    MySQL com.mysql.jdbc.Driver jdbc:mysql://host:port/{dbname} select 1
    PostgreSQL org.postgresql.Driver jdbc:postgresql:{dbname} select 1
    Oracle oracle.jdbc.driver.OracleDriver jdbcracle:thin:user/pass@//host:port/service select 1 from dual
    Ingres (2006) ingres.jdbc.IngresDriver jdbc:ingres://host:port/db[;attr=value] select 1
    MSSQL ①com.microsoft.sqlserver.jdbc.SQLServerDriver
    ②net.sourceforge.jtds.jdbc.Driver
    ①jdbc:sqlserver://host:port;databaseName=DBname
    ②jdbc:jtds:sqlserver://host:port/"+“library”
    select 1
    DB2 com.ibm.db2.jcc.DB2Driver jdbc:db2://host:port/{dbname} select 1 from sysibm.sysdummy1
    查询需要的字段:

    1.线程组右键添加-取样器-JDBC request

    variable name of pool:需要连接的数据库名,与JDBC Connection Configuration保持一致;
    Query Type:Jmeter5.4.1共有8种不同的类型,以下为区分的条件:

    Query Type 区别
    Select Statement 仅支持select语句,一次只能执行一条
    Update Statement 支持非select语句,并且支持执行多条语句。若其中有select语句,会自动忽略;若第一条是select语句,报错
    Callable Statement 只要语法正确,可以执行多条任意语句
    Prepared select statement 用于绑定变量重用执行计划,对于多次执行的SQL语句,Prepared statement无疑是最好的类型
    Prepared update statement 参考Prepared select statement
    Commit 将未存储的SQL语句结果写入数据库表
    Rollback 撤销指定SQL语句的过程
    AutoCommit(false) 将用户操作一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务

    Variable names:用逗号分隔的变量名列表,用于保存由Select语句、Prepared Select语句或CallableStatement返回的值。
    示例:

    比较复杂的审批流程,可以通过数据库查询订单的当前审核人id及对应的username,获取对应的token,再调用审核接口完成整个审核过程。

    常见问题及解决:

    1.报错:java.sql.SQLException: Cannot create PoolableConnectionFactory (Access denied for user ‘root’@‘172.16.24.30’ (using password: YES))

    解决:检查密码是否填写错误;


    2.报错:Cannot create PoolableConnectionFactory (Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)

    解决:JDBC驱动版本有问题,更换与安装的jmeter匹配的版本



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 11:43 , Processed in 0.068104 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表