之前压测接口的时候,写了一下jemeter使用 , 现在因为在做一个mq的补偿流程,对数据库的操作特别频繁,因此需要对redis进行压测;
step1: 环境准备
jemeter支持链接数据库需要有对应的jar包;
当前项目用的是maven进行jar包管理,直接跑maven的仓库里面mysql\mysql-connector-java目录中拉了一个仓库里最新的jar,然后放到jemeter的lib目录下,重新启动
step2: 配置链接信息
- 先创建一个线程组
- 添加->配置元件->JDBC Connection Configuration
配置数据库
- Variable Name for created pool 配置中可以随意输入,但是之后会使用; 如:productservice-log
- Database URL: 数据库链接jdbc:mysql://127.0.0.1:3306/product_service_saas_log
- JDBC Driver class : com.mysql.jdbc.Driver<当前项目也用的这个,项目如果不一样,应该可以和项目保持一致>
- Username: admin
Password: admin
上述是必须配置; 其他配置我使用了默认配置
step3:配置sql
- 添加->取样器->JDBC Request
- 这里Variable Name of Pool declared in JDBC Connection Configuration 中输入上述 created pool中写入的productservice-log
- SQL Query
Query Type: 我是针对更新进行压测,因此使用的是Update Statement
Query的输入框中写一下sql:<使用了csv文件; 见下面的新增描述>
如
update compensate_log SET consumer_num = consumer_num + 1 WHERE id = ${id}
其他配置
参考之前的文章; 配置结果树,聚合报告或者其他需要使用的报告
为了保证压测相对准确,插入2000条数据; 之后对两千条进行操作; 这里使用jmeter进行插入
step1 创建启动任务
- 复写一个jmeter任务(ctrl+shift+v);
- 写一个csv文件; 里面只是单纯有两千个id
step2 配置
- 参考jmeter(十一)JDBC Request之Query Type
insert 和update 使用的Query Type 都是: Update Statement - 写sql
insert into compensate_log (id,partner_id,biz_type,method_name,mation_type,sync_status,retry_times,consumer_num,param_json) values(${id},${id},1,"testMethod",1,1,1,1,"{}")
step3 修改线程组配置
因为直插入2000条; 线程数设置2000;循环一次即可