性能测试,准备测试数据是一个重要的环节。
针对数据准备我们有常用的以下几种方式:
- 从生产的备用库里面同步下来。
- 自己写存储过程脚本批量跑数据。
- 利用测试脚本跑数据。
针对上面第一种方式,是最保持数据真实状态的(当然是要经过脱敏处理的),但针对没有上线的系统,生产上还没有产生数据,这个就不适用。
上面第二种方式,一般是清楚具体的DB表,各个表里面关联情况, 可以写存储过程在短时间内造大量的测试数据。
上面第三种方式,可以通过录制或者编写测试脚本,达到跑测试数据的目的,但编写脚本也需要花费一定的时间。且没有上面两种方式快速。但针对业务流程节点比较复杂的,也是一种评价很高的处理方式。一般用来准备测试数据的居多,基础的铺底数据就有点浪费时间。
下面介绍上面第二种和第三种方式里结合的一种,利用jmeter工具跑mysql测试数据。
一. jar包准备
先需要下载对应的jdbc jar包,名称是mysql-connector-java-5.1.30.jar。把该文件放置jmeter工具 lib下面的ext文件夹下。
二. 启动jmeter
写这个步骤是因为,很多童鞋是先打开了jmeter,然后才放置的jar包,要记得重新打开下jmeter工具才生效。
三. jmeter 组件添加
添加JDBC Connection Configuration,这个是确保jmter连接mysql数据库
这里面有些配置项,但Datebase connection configuration 一定要连接正确,可以看到上面我的URL地址是做了一个参数化 。 ${dbAddress} ,端口被我打马赛克了。
变量的方式可以采取多种样式。 因为地址只有一个。我选择的是用户定义的变量。如下:
添加一个JDBC requst sampler。
我上面放置的是一个update statement 类型。
简单的放置了一个insert语句。 value值 可以做成参数化处理。 这个和jmeter平常的参数化没有两样。可以灵活处理,不多叙述。
四. 调试
想看看是否通过。
可以通过添加 查看结果树 , debug sampler 来分析
五. 执行调度
因为是跑固定的数据量,建议使用次数。自己算好数据量,然后填写对应的参数值。
六. 补充
使用jmeter工具准备数据的另外一个好处就是,如果你使用的是jmeter做压测,那么执行场景之前涉及到数据恢复就可以借助jmter来做。每次执行场景前先执行下数据恢复的脚本就好,避免去打开DB或者其他方式操作。