每周读书与学习->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核心技术、性能测试与性能分析》一书

相关推荐
代码山河25 分钟前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
释厄6231 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
小嘉丶学长5 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
小李不想当小白5 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
adinnet20269 小时前
电商客服对话知识库的自学习闭环与质量演进机制
学习
lazy H10 小时前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
试剂界的爱马仕11 小时前
α-Cyano-4-hydroxycinnamic acid(CHCA)用作 MALDI-TOF 基质的配制与使用
大数据·人工智能·深度学习·学习
小向是个Der11 小时前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
学网安的肆伍12 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
海绵宝宝转agent12 小时前
Leetcode二叉树算法个人理解
笔记·学习·算法·leetcode·深度优先