每周读书与学习->JMeter性能测试脚本编写实战(四)-利用JMeter对MySQL数据库查询进行性能测试

每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。

在前面的学习中,介绍了很多Jmeter的理论知识,包括Jmeter中很多不同元件的详细介绍以及每个元件的作用,本次主要从实践的角度来介绍怎么用这些元件来完成常见性能测试脚本的编写,将会介绍一些常见的性能测试脚本编写案例。

在上一次分享中,分享了如何利用JMeter为MySQL数据库构造测试数据的案例,本次将分享如何利用JMeter对MySQL数据库查询进行性能测试

1、利用JMeter对MySQL数据库查询进行性能测试

在上一小节中,我们用一个示例介绍了如何使用Jmeter向MySQL数据库中构造测试数据,在有了测试数据后,本小节的示例中将演示如何利用JMeter对MySQL数据库查询进行性能测试。

在上一小节中,我们创建了两张表jmeter_test_one和jmeter_test_two,并且向这两张表中都插入了10万条左右的数据,本示例中通过关联查询的SQL语句:

select a.user_id,a.user_name,b.address from jmeter_test_one a inner join jmeter_test_two b on a. user_id=b. user_id where a.user_id='user_1'来演示如何利用JMeter对MySQL数据库查询进行性能测试。

对上述SQL语句中的user_id进行参数化,准备好的参数化数据如下图所示,创建了一个user.dat文件用于存储参数化数据,参数化数据中使用字母和数字组合来生成供user_id使用的参数化数据。

在Jmeter测试计划的线程组中添加配置元件下的CSV数据文件设置元件来设置参数化的数据,如下图所示,在CSV数据文件设置中,选择user.dat文件所在的路径,并且将变量名称设置为user_id。

在Jmeter线程组下继续添加JDBC Connection Configuration元件,并且设置好MySQL数据库的相关配置信息,如下图所示。

由于需要完成MySQL数据库表的查询,所以还需要继续添加JDBC Request取样器,如下图所示。

在JDBC Request 取样器中配置要做性能压测的SQL语句select a.user_id,a.user_name,b.address from jmeter_test_one a inner join

jmeter_test_two b on a. user_id=b. user_id where a.user_id='${user_id}'

,其中${user_id}即可读取CSV数据文件设置中的参数化数据,并且将Query Type选项设置为Prepared Select Statemen。

最后,我们添加聚合报告用于观察对MySQL数据库查询进行性能测试时的各项性能指标的展示,如下图所示。

在完成上述步骤后,整个对MySQL数据库查询进行性能测试的脚本就编写完成了。

2、本次学习总结

主要从实践的角度,以多个真实案例的形式,介绍了Jmeter性能测试脚本的具体编写以及实际使用时的相关技巧介绍。

通过本章的学习,读者们需要能在Jmeter工具下完成常见的性能测试脚本的编写,能完成一些常见的HTTP请求以及数据库请求的性能压测。

出处 :本次学习的内容参考自清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书

相关推荐
安畅检测齐鲁物联网测试中心3 天前
国产化项目验收测评,如何才算真正过关?
性能测试·兼容性测试·安全测试·国产化项目·验收测评
云边有个稻草人4 天前
金仓数据库标量子查询消除:解决复杂SQL性能瓶颈
数据库·sql·性能调优·金仓数据库·kes·标量子查询·数据库内核
数据与后端架构提升之路10 天前
深度学习性能调优全景指南:数据、计算、显存、通信四大瓶颈的破局之道
深度学习·gpu·性能调优
测试199810 天前
性能测试方案设计的方法和思路
自动化测试·软件测试·测试工具·jmeter·测试用例·压力测试·性能测试
安畅检测齐鲁物联网测试中心10 天前
信创产品性能测试怎么做才能通过验收
性能测试·信创产品·验收标准·业务负载·混合测试
twc82914 天前
从架构视角梳理全链路压测的核心业务链路
java·大数据·软件测试·架构·性能测试·全链路压测
twc82916 天前
全链路压测的环境复杂性:网络架构、应用架构与性能影响因素全解析
网络·软件测试·架构·性能测试·全链路压测
twc82916 天前
全链路压测铺底数据:从表链路追踪到数据脱敏的完整方法论
软件测试·性能测试·全链路压测