• 高级性能测试系列《24. 通过jdbc执行sql脚本》


    目录

    • 一、JDBC(JavaDataBaseConnectivity)

      • 1.jdbc:java调用数据库的。

      • 2.怎么找jar包?

      • 3.mysql版本8与mysql版本5.7的jar包有差异吗?

    • 二、写脚本

      • 1.添加配置元件--JDBC Connection Configuration

      • 2.jdbc request

    • 三、注意

    一、JDBC(JavaDataBaseConnectivity):

    • 是一种用于执行SQL语句的JAVA API

    • 通过这个api可以直接执行sql脚本。

    1.jdbc:java调用数据库的。

    调用数据库时,需要使用jar包(jar包是java语言已经写好的底层的调用类),填写数据库的信息。

    jmeter是用java开发的,可以直接执行java代码。

    2.怎么找jar包?

    某项目的数据库的版本是mysql5.7,所以选择版本号大于5.7的jar包就可以了。

    访问服务maven的仓库地址:https://mvnrepository.com/,再搜索数据库。

    找到你需要的版本,点击版本。Files--jar,下载这个jar包。

    ee218948aeae9454db5b387a46899014.png

    此时,就下载到本地了。

    把下载的jar包,放到jmeter的lib文件夹中。

    d3005501038d4364044dc5ed8d8cc8e4.png

    重启jmeter,此时,就可以写jdbc请求了。

    有这个jar包之后,jmeter可以发起jdbc请求,没有这个jar包,也有这个jdbc取样器,但是,不能发起请求。

    jar包是个第三方

    3.mysql版本8与mysql版本5.7的jar包有差异吗?

    现在企业中,用的mysql数据库,一般都是mysql5.7以上版本和mysql8。

    mysql5.7版本和mysql5.7以前的版本的性能不一样。

    mysql5的版本:可以选择大于等于你的数据库版本的任意jar包。

    mysql8版本:要选择大于等于你的数据库版本号,一般情况,选择版本号相同的jar包。

    mysql8与mysql5的驱动class不一样。

    二、写脚本

    1.添加配置元件--JDBC Connection Configuration

    填写数据库的:ipportdbnameuserpasswordpool、字符集 、驱动类.....。

    variable name for created pool:自定义一个线程池变量名。

    变量名命名规则:字母、数字、下划线。不能用数字开头。

    database Connection Configuration数据库连接配置。

    database URL: 填写数据库的ip、端口、dbname。但是,不同的数据库URL地址写法不一样。

    mysql的url地址: jdbc:mysql://serverip:port/dbname

    00fcbfa37945543d37f5f7981f0e4e82.png

    mysql数据库默认端口:3306,某项目的数据库端口是:3337。

    jdbc driver class:不同的数据库,这个驱动class不一样。

    mysql5的驱动class(是选择的): com.mysql.jdbc.Driver。 只适用于mysql5版本

    mysql8的驱动class(是手写的):com.mysql.cj.jdbc.Driver。兼容mysql5版本。

    4f9a161fd20cfcc17bdfc96a8bf187cc.png

    2.jdbc request

    连接池:一定要与JDBC Connection Configuration中配置的连接池名称要一致。

    429ae324308d3b6478c41f263345e6a0.png

    sql query:

    select * from cb_account limit 10

    fb242c1c87e3599b0ace8f75c6b1ece2.png 61f591c3b9e83d0577d42f7d4a24bc96.png
    运行结果

    察看结果树在接收数据的过程中,是要消耗资源的,渲染也要消耗资源的。数据量比较大,时间就会比较长。

    真正做性能测试的时候,能不加监听器就不加。

    脚本链接:

    链接:https://pan.baidu.com/s/1yb1Y-HeVG7QQboL5eeQkRQ?pwd=1234 提取码:1234

    三、注意

    5e205ae985225ff24388f4322a9a801b.png

    单独一个s是一个变量,count()里面可以跟值,不能跟变量。所以,count()中可以写任意

    ec6742de2063b9f6b5a4501f3c4315ab.png
    图1:count("A"),运行成功。
    c784c5cd2014be5217571cc6cc7ebef1.png
    图2:count(99),运行成功。
    88d3198cba02b53a1955d5b828f14607.png
    图3:count(s)
    48a15578d4372e93e2807c7bfa371e50.png
    图3:运行失败。

    文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。文章是清菡编写的,如有转载,请标明出处!

    欢迎关注 “清菡软件测试”,进群加v:qhtester,备注:学校(公司名)+姓名(昵称),否则不予通过,感谢点赞与分享!

  • 相关阅读:
    满级大牛 HuaWei 首次出这份 598 页【网络协议全彩手册】,建议大家收藏
    GNN advanced knowledge
    easyexcel导入导出百万条数据思路分析
    Notion平替工具AFFINE知识库如何本地部署与公网远程访问
    初识Java
    react-native-swiper不显示内容问题
    Day.js 基本使用
    来自北大算法课的Leetcode题解:8. 字符串转换整数(atoi)
    Nginx实现本地http转https请求
    2023年7月工作经历三
  • 原文地址:https://blog.csdn.net/weixin_41033105/article/details/125532594