第一次分享,请大家多多支持!
测试背景:项目组开发使用数据库 mycat 分片,需要对 mycat 数据库进行压测
领导转给我一个网络上的文档(jmeter 压测 jdbc),让我照搬着做
下面是一些工作总结:
Jmeter 链接 jdbc 用到的配置元件:JDBC Connection Configuration
主要作用:存储数据库信息链接数据库
JDBC 专用的请求:JDBC Request
主要作用:编写 sql 语句放在这里
“都需要测试哪些场景呢?”
开发回答:“增删改查”
首先了解了分片规则和设计表结构:
Mycat-part 数据库做为压测库,和原始库 db-00-db20 二十一个库中有相同的三张表
在 Mycat-part 库中执行 sql 语句,结果会通过租户 ID 字段复制到原始库的 db00-db20 的相同表中(纯属个人理解)
接下来就开始编写一些简单的 sql 语句
写入:id 使用计数器参数化,租户 id 使用计数器参数化 范围 0-20(通过 insert 语句准备测试数据,每张表 4W 数据)
更新:“名称 A” 修改为 “名称 B”
“名称 A” 修改为 “名称 B” AND 租户 ID
查询:“通过名称 A” 查询 “组织名称”(关联表查询)
删除:通过 id 删除
采用梯度加压的方式在 linux 上进行压测:jp@gc-Stepping Thread Group
生成的结果主要有:
1.监控 CPU/内存使用情况插件:jp@gc - PerfMon Metrics Collector
2.查看 tps 折线图插件:jp@gc - Transactions per Second
3.聚合报告
跟着文档做,测试结果是得到了,可是这些结果代表着什么呢?
下面是我的一些疑问
1.梯度加压的最大并发量是根据什么设定的呢?还是 10-20-...100 递增或递减?
2.监控 CPU、内存使用情况:内存是一条横线,有什么意义?CPU 维持在 80%-90% 之间代表什么?
3.平均 Tps 为 7048.0%,对数据库压测来说是高还是低?(肯定比接口测试要高了)
4.得到上述的压测结果后如何去进行分析?
5.我的测试场景是不是有缺失?测试步骤是否有问题?大家都是怎么做的?
期待大家留言!!