4.5 begin/start transaction...commit 15
访问:Apache JMeter - Apache JMeter™
下载完成后的工具包:
JMeter是免安装软件,直接解压使用。
1.1文字修改;
或者通过修改properties配置文件实现永久修改为中文界面:
文件位置bin/jmeter.properties,使用notepad++打开,使用Ctrl+F搜索#language=en,找到后添加一行:language = zh_CN
双击apache-jmeter-5.4.1\bin\ApacheJMeter.jar
JDBC驱动在MYSQL产品包中,找一个较新的MYSQL产品包,例:
ZXCLOUD-MYSQL-ALL-RHV5.1.04\ZXCLOUD-MYSQL-ALL-RHV5.1.04_tools\jdbc\mysql-connector-java-5.1.46.jar
将mysql-connector-java-5.1.46.jar复制到apache-jmeter-5.4.1\lib或apache-jmeter-5.4.1\lib\ext,复制后重启JMeter生效。
此方式为推荐方式。
通过JMeter界面定位到mysql-connector-java-5.1.46.jar所在路径添加:
此方式为临时生效,关闭JMeter后再次打开仍需要再次添加,不推荐的方式。
2.1 添加线程组
右击【测试计划】,选择【添加】-【线程(用户)】-【线程组】
2.2 添加JDBC连接配置
右击【线程组】,选择【添加】-【配置元件】-【JDBC Connection Configuration】
2.3 MYSQL连接参数配置
- 方式一
- 方式二
说明:
①golden为自定义的变量名,后面JDBC Request时会用到。
②Database URL格式为:【jdbc:mysql://ip:端口】或【jdbc:mysql://ip:端口/库名】jdbc:mysql:loadbalance://ip:port/database_name?allowMultiQueries=true&useSSL=false
③JDBC Driver class:com.mysql.jdbc.Driver
④Username和Password填MYSQL集群的连接实例用户名和密码。
⑤方式一和方式二的区别在于库名的填写位置不同。
右击【线程组】,选择【添加】-【取样器】-【JDBC Request】
3.1编写一个简单的请求
说明:
MYSQL即2.3小节中配置的值。
3.2 添加监听器
右击【线程组】,选择【添加】-【监听器】-【察看结果树】
3.3 运行
首次运行会提示保存,保存一下就好:
3.4 运行成功的结果展示
查询结果:
查询结果对比:
3.5 清除运行结果
常用工具栏的刷子图标按钮可清除运行结果
- 普通操作
- Prepared操作
批量插入
用户自定义变量
右键线程组->添加用户自定义变量
添加后页面:
页面中有三个参数:
名称:变量名,后续可以用来在语句中作为随机变量的占位符
值:可以是固定的值或者用函数生成器做成变量的名字
描述:对变量加以描述
用法:
在JDBC Request中,正常写插入语句,如insert语句,在之前写插入的值的位置,用变量代替(就像SQLTest那样)
如:在自定义变量中定义“变量名”这个变量,并给值1
然后再JDBC Request中使用该变量作为值:
使用格式为,在要替换的值位置,使用“${}”将自定义变量的变量名包起来,然后在后续每次执行时,就会在语句中将该位置的值替换为自定义的值,比如这条语句执行后结果如下:
批量插入数据
批量插入数据的实现方法就是使用变量代替语句中的具体值,然后每次循环时都使变量的值不同,这里用到Jmeter自带的工具函数助手对话框也就是函数生成器:
点击函数助手对话框后会弹出如下页面
里面已经有一些定义好的函数,具体的每一个函数的作用可以自行百度,这里只介绍三个最常用的也是最能覆盖大部分场景的三个函数生成器:
随机整型数字生成器:Random
使用方法及其简单,输入一个最小值,输入一个最大值,然后点击生成,就会出现一个函数字符串,将该字符串复制到用户自定义变量的值中,并给它一个变量名就可以使用了,如下图,就是一个100-200的随机整数生成器:
注意:点击生成后,字符串会自动复制到粘贴板中,到自定义变量中新增变量复制进去即可
最后像最开始描述的那样,在insert使用这个变量,即可实现每次插入时生成100-200的随机整数
效果如下:
- Prepared操作
- Prepared操作
- Prepared操作
- start transaction操作
查看TPS
查看TPS的元件在原生Jmeter中并没有自带,需要手动下载几个jar包,下载成功后,将jar包放入jmeter的lib库中,
TPS_放在lib下.zip
然后重启Jmeter,再右键线程组-->添加监听器-->即可看到Transactions per Second的监听器了
TPS.bmp
添加以后不用修改参数,Jmeter运行起来后会自动画一个TPS的线图出来
以上就是Jmeter+数据库的安装加运行前的组件添加流程
- 断言
1.1 添加响应断言
右击【线程组】,选择【添加】-【断言】-【响应断言】
1.2 配置响应断言
1.3 查看断言成功结果
1.4 查看断言失败结果
构造一个查询失败的场景,例select * from t2;表t2在库中不存在。
右击【线程组】,选择【添加】-【断言】-【BeanShell断言】
构造失败的断言场景如下:
说明:
线程数:即模拟多少个用户,些处配置模拟100个用户。
Ramp-Up时间(秒):设置在多长时间内创建所有用户,此处配置为在10秒内创建所有用户,若为0表示立即创建所有用户。
循环次数:表示每个线程(用户)发送多少次请求。
总请求数=线程数×循环次数=100×100=10000
右击【线程组】,选择【添加】-【监听器】-【汇总报告】
Apache JMeter - User's Manual: Building a Simple Database Test Plan
https://jmeter.apache.org/usermanual/component_reference.html#JDBC_Request