Jmeter mysql性能测试
一:首先建立jdbc connection configuration,设置参数如图
1.variable name
参数名称,与后面的sample中设置的variable name一致。含义为:通过该name指定了对该数据库进行测试
2.connection Pool Configuration:
max number of connections:最大连接数(可以自己查看要测试数据库的最大连接数,不可大于该数:show variables like 'max_connections%';)
max wait:最大建立连接的等待时间,大于该时间的话视为请求链接失败
time betweene viction runs:每XX毫秒运行一次空闲连接回收器(独立线程)。
auto commit:事务自动提交,选择yes后,之后的请求sql语句结束后会自动提交;否则不会提交,需要自己手动提交
3.connection validation by pool
当前设置的含义为:每5000毫秒 执行一次select 1 来确认池里面的连接还有效
二.创建insert\select\delete\update的sample,如图
三:关于每个请求的运行次数
由于在正常场景中,该系统在打开页面查看数据的次数较多,其次是新增、更新,然后是删除
设置 查询:新增、更新:删除的操作次数的比例为:10:5:3:1
此时要用到beanshell sample
该脚本设置了参数switch_value的值
然后要添加一个逻辑控制器:switch controller(该步的含义是:当switch value=0时,运行insert(5)的请求;当switch value=1时,运行update(3);以此类推。。。
四:结果查看
这个就不多说了,直接添加聚合报告就可以了
踩过的坑:
1.跑脚本时,要注意自己发压机的性能。我自己笔记本很弱鸡,跑脚本时,测试结果偏差较大,发压机cpu一度到100% ,用非GUI的方式发压机性能也不能支撑。此时,要么换好的电脑 要么用control -slave的方式
2.如果出现脚本运行成功(如:select),但是数据库数据并没有变化时,检查是不是选择了auto commit的方式。