Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

1.简介

   在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常详细地介绍给大家,希望对各位小伙伴和童鞋们的学习或者工作具有一定的指导和参考学习价值,遇到类似的问题脑子一片空白的童鞋们可以参考一下。这一篇宏哥就以MySQL数据为例结合上一篇的理论知识在这里带领小伙伴和童鞋们实战一下。这里宏哥为了增加小伙伴们的学习兴趣和便于记忆理解,因此列举了一个谍战剧中执行刺杀任务的场景,首先组成刺杀任务的小队,然后通过接头暗号建立联系,其次就开始执行刺杀任务,期间有核查组员的人物背景、其他组员支援、以及自己组员的牺牲、任务的变更等等,最后确认暗杀任务是否执行成功。

2.环境准备

1、MySQL数据库
2、下载mysql jdbc 驱动
3、JMeter

2.1安装MySQL

首先确保你已经安装好数据库MySQL。如果没有可以参考宏哥的这篇文章:传送门。查看有没有安装MySQL命令:net start,打开控制台(在开始,运行输入cmd)然后出入“net start” 就是打开了服务看看列出来的有没有 MySQL之类的如果没有,就是没有安装。如下图所示:

2.2JMeter

JMeter安装启动好待用。

2.3下载MySQL驱动

1、下载MySQL驱动。下载地址:MySQL :: Download Connector/J
常用的包如下:
Windows 下 mysql-connector-java-5.1.7-bin.jar
Mac下 MySQL Connector/J没有对应的 Mac 版,可以选择Platform Independent:mysql-connector-java-8.0.15.zip
注意:驱动包的版本一定要与你数据库的版本匹配,驱动版本低于mysql版本有可能会导致连接失败报错

2、解压下载的MySQL驱动,如下图所示:

3、将解压的MySQL的jdbc驱动(mysql-connector-java-8.0.20.jar),将其放到D:\software\apache-jmeter-5.1.1\lib目录下。如下图所示:

注意:敲黑板,敲脑壳啦!!!放完驱动以后,要记得重启jmeter

3.建立数据库测试计划

  在本节中,您将学习如何创建基本的测试计划以测试数据库服务器和操作数据库(增、删、改、查)。本示例使用MySQL数据库驱动程序。要使用该驱动程序,必须将其包含的.jar文件(例如mysql-connector-java-XXX-bin.jar)复制到JMeter ./lib目录。

3.1新建测试计划

首先我们新建一个测试计划,并将其命名为:Test MySQLDB Plan,如下图所示:

3.2在测试计划下添加驱动地址

在建立好测试计划以后,点击“Browse...”,选择我们前边下载解压好的驱动路径,我们需要将驱动的地址(路径)添加到测试计划下边,如下图所示:

3.3添加用户

新建完测试计划以后,我们前边也讲过了,这时候就要添加用户了。你要对每个JMeter测试计划进行的第一步是添加一个线程组(用户)。线程组告诉JMeter您要模拟的用户数量,用户应多久发送一次请求以及应发送多少次请求。这里就相当于谍战片中我们开始选择队员组队的过程,默认是一人一个小组,如果你觉得不够可以在控制面板修改人数等等。如下图所示:

3.4添加JDBC连接配置

通过上边的操作,我们已经定义了用户挑选了队员组成了精干小组,然后我们必须定义这些用户(队员)所要去的目的地,和目的地建立联系。不要这些用户累死累活的干了半天的活,知不道是为谁干得活。在本部分中,你需要和目的地建立联系。我们需要设置一些字段,这些字段相当于谍战片中的接头暗号,例如:《智取威虎山》杨子荣与坐山雕的接头暗号:脸红什么?精神焕发。怎么又黄拉?度防冷涂的蜡;长江长江我是黄河,等等。暗号对上了,才可以建立联系。否则认为有危险,不是建立联系,具体在测试中的表现就是报错了!!!,下边控制面板的参数字段在上一篇已经说过了,这里就不赘述了,宏哥直接填写了,有不明白的可以看看上一篇文章。如下图所示:

3.5添加JDBC请求

 通过上边的操作,我们已经定义了用户并且已经知道目的地和接头人建立了联系之后,然后我们就需要给这些用户分配具体的任务了(谁负责监视,谁负责刺杀,谁负责放哨)。在本部分中,你将指定要执行的JDBC请求(刺杀任务)。这里就开始执行刺杀任务,期间有核查组员的人物背景、其他组员支援、以及自己组员的牺牲、任务的变更等等

3.5.1查询(核查组员信息)

3.5.2插入(其他组员支援)

3.5.3修改(组员档案变更)

3.5.4删除(自己组员牺牲)

3.6添加监听器以查看/存储测试结果(监听器-查看任务是否成功)

您需要添加到测试计划中的最后一个元素是 Listener。该元素负责将JDBC请求的所有结果存储在文件中并显示结果。如下图所示:

3.7保存与执行测试计划

保存与执行测试计划,查看任务结果,如下图所示:

宏哥为了让小伙伴们看得清楚,讲后边的三个请求都修改成disable了,修改后由黑色变成了灰色。然后慢慢的逐个再将其修改成enable。如下图所示:

3.7.1核查人员信息情况

1、首先查询MySQL数据,如下图所示:

2、看一下JMeter执行后与上边的查询结果一致,说明核查人员信息成功。如下图所示:

3.7.2核查人员支援情况

1、首先查询MySQL数据,只有四个人员,如下图所示:

2、JMeter执行后,北京宏哥前来支援,我们分别查看MySQL和JMeter的结果,如下图所示:

JMeter:

MySQL:

3.7.3核查人员变更情况

1、首先查询MySQL数据,只有五个人员,如下图所示:

2、JMeter执行后,将“赵六”变更成“赵丽”,我们分别查看MySQL和JMeter的结果,如下图所示:

JMeter:

MySQL:

3.7.4核查人员牺牲情况

1、首先查询MySQL数据,只有五个人员,如下图所示:

2、JMeter执行后,李四在任务中牺牲,我们分别查看MySQL和JMeter的结果,如下图所示:

JMeter:

MySQL:

4.小结

1、Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

原因:未在jmeter安装目录下的./lib目录下放入mysql-connector-java-X.X.X-bin.jar

解决方法:将mysql-connector-java-X.X.X-bin.jar放入到./lib目录,并重启jmeter

2、CLIENT_PLUGIN_AUTH is required 

原因:导入的 mysql-connector-java-X.X.X-bin.jar版本问题(原来导入mysql-connector-java-8.0.17.jar),上网查资料,知驱动和mysql数据库的版本也有关系(参考mysql-connector-java之6.0.6版本,SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required异常问题 - wenqi0501的个人空间 - OSCHINA  https://my.oschina.net/u/3640994/blog/3000068)

mysql官网驱动版本和数据库版本说明,地址:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html

解决方法:替换成mysql-connector-java-5.1.47.jar后问题解决
3、Variable Name must not be null in Insert

原因:未在JDBC Request的控制面板里填写绑定的连接池

解决办法:填写和JDBC Connection Configuration一样的连接池即可

4、以下是各数据库Database URL、JDBC Driver class 填写方式

数据库名Database URL Driver class
MySQLjdbc:mysql://host[:port]/dbnamecom.mysql.jdbc.Driver
PostgreSQLjdbc:postgresql:{dbname}org.postgresql.Driver
Oraclejdbc:oracle:thin:@//host:port/service OR jdbc:oracle:thin:@(description=(address=(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid})))oracle.jdbc.OracleDriver
Ingress (2006)jdbc:ingres://host:port/db[;attr=value]ingres.jdbc.IngresDriver
Microsoft SQL Server (MS JDBC driver)jdbc:sqlserver://host:port;DatabaseName=dbnamecom.microsoft.sqlserver.jdbc.SQLServerDriver
Apache Derbyjdbc:derby://server[:port]/databaseName[;URLAttributes=value[;…]]org.apache.derby.jdbc.ClientDriver

   好了今天的建立数据库测试计划实战<MySQL数据库>就分享到这里。

  -每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/291750.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【中小型企业网络实战案例 七】配置限速

相关学习文章&#xff1a; 【中小型企业网络实战案例 一】规划、需求和基本配置 【中小型企业网络实战案例 二】配置网络互连互通【中小型企业网络实战案例 三】配置DHCP动态分配地址 【中小型企业网络实战案例 四】配置OSPF动态路由协议【中小型企业网络实战案例 五】配置可…

51单片机(STC8)-- GPIO输入输出

文章目录 I/O口相关寄存器端口数据寄存器端口模式配置寄存器&#xff08;PxM0&#xff0c;PxM1&#xff09;端口上拉电阻控制寄存器(PxPU)关于I/O的注意事项 配置I/O口I/O设置demoI/O端口模式LED控制&#xff08;I/O输出&#xff09;按键检测&#xff08;I/O输入&#xff09; S…

【模拟量采集1.2】电阻信号采集

【模拟量采集1.2】电阻信号采集 1 怎么测&#xff1f;2 测输入电阻电压即转为测模拟电压值&#xff0c;这里需要考虑选用怎样的辅助电阻&#xff1f;3 实际电路分析3.1 在不考虑 VCC-5V 电压的纹波等情况时&#xff08;理想化此时输入的 VCC 就是稳定的 5V&#xff09;3.2 若考…

拖拽式工作流好用吗?有何特点?

大家都知道&#xff0c;随着行业的进步和发展&#xff0c;低代码技术平台也迎来了蓬勃发展期。很多企业喜欢使用低代码实现提质增效的办公效果&#xff0c;拖拽式工作流是其中一个功能&#xff0c;是助力企业实现流程化办公的得力助手。那么&#xff0c;拖拽式工作流好用吗&…

robots.txt

####什么是robots.txt? ​ robots.txt是一个协议,我们可以把它理解为一个网站的"管家",它会告诉搜索引擎哪些页面可以访问,哪些页面不能访问。也可以规定哪些搜索引擎可以访问我们的网站而哪些搜索引擎不能爬取我们网站的信息等等,是网站管理者指定的"君子协议…

FMQL BOOT.bin固化文件生成及固化流程记录

FMQL BOOT.bin固化文件生成及固化流程记录 一、概述 此篇记录上海复旦微JFMQL15T开发板 烧录固化文件BOOT.bin生成及固化操作流程。 以上一篇文章FQML_AXI_GPIO工程构建调试记录 中的工程为基础&#xff0c;做更改。 二、vivado工程配置 2.1新建工程 打开FQML_AXI_GPIO工程…

Unity | Shader基础知识番外(向量数学知识速成)

目录 一、向量定义 二、计算向量 三、向量的加法&#xff08;连续行走&#xff09; 四、向量的长度 五、单位向量 六、向量的点积 1 计算 2 作用 七、向量的叉乘 1 承上启下 2 叉乘结论 3 叉乘的计算&#xff08;这里看不懂就百度叉乘计算&#xff09; 八、欢迎收…

视频号小店全新赛道,新手如何入驻?

我是电商珠珠 视频号小店为视频号团队所研发。距今为止也才发展了一年时间&#xff0c;在23年下半年掀起了不小的浪花。 我做视频号小店也有一年时间了&#xff0c;在他刚开始三个月的时候&#xff0c;就开始带着团队一起做。到现在也拥有了自己的视频号小店运营团队&#xf…

数模学习day06-主成分分析

主成分分析(Principal Component Analysis,PCA)主成分分析是一种降维算法&#xff0c;它能将多个指标转换为少数几个主成分&#xff0c;这些主成分是原始变量的线性组合&#xff0c;且彼此之间互不相关&#xff0c;其能反映出原始数据的大部分信息。一般来说当研究的问题涉及到…

P5534 【XR-3】等差数列————C++、C

目录 【XR-3】等差数列题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 解题思路Code运行结果 【XR-3】等差数列 题目描述 小 X 给了你一个等差数列的前两项以及项数&#xff0c;请你求出这个等差数列各项之和。 等差数列&#…

JavaWeb——后端之Mybatis

四、Mybatis 概念&#xff1a; Mybatis是一款持久层&#xff08;Dao层&#xff09;框架&#xff0c;用于简化JDBC&#xff08;Sun操作数据库的规范&#xff0c;较繁琐&#xff09;的开发 历史&#xff1a; Apache的一个开源项目iBatis&#xff0c;2010年由apache迁移到了goog…

Spring见解

1.Spring概述 1.1.Spring介绍 Spring是轻量级Java EE应用开源框架&#xff08;官网&#xff1a; http://spring.io/ &#xff09;&#xff0c;它由Rod Johnson创为了解决企业级编程开发的复杂性而创建 1.2.简化应用开发体现在哪些方面&#xff1f; IOC 解决传统Web开发中硬编…

【MATLAB】EEMD_LSTM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 EEMD-LSTM神经网络时序预测算法是一种结合了扩展经验模态分解&#xff08;EEMD&#xff09;和长短期记忆神经网络&#xff08;LSTM&#xff09;的时间序列预测方法。 EEMD是一种改进的EM…

spring见解2基于注解的IOC配置

3.基于注解的IOC配置 学习基于注解的IOC配置&#xff0c;大家脑海里首先得有一个认知&#xff0c;即注解配置和xml配置要实现的功能都是一样的&#xff0c;都是要降低程序间的耦合。只是配置的形式不一样。 3.1.创建工程 3.1.1.pom.xml <?xml version"1.0" en…

《论文阅读》基于情绪-原因转换图的共情回复生成

《论文阅读》基于情绪-原因转换图的共情回复生成 前言摘要模型架构图构建回复概念预测回复生成前言 今天为大家带来的是《EMPATHETIC RESPONSE GENERATION VIA EMOTION CAUSE TRANSITION GRAPH》 出版: 时间:2023.2.23 类型:共情对话生成 关键词:图网络;共情回复;情绪…

C++ 实现对战AI五子棋

个人主页&#xff1a;日刷百题 系列专栏&#xff1a;〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 &#x1f30e;欢迎各位→点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ​ ​ 前言&#xff1a; 为了能够快速上手一门语言&#xff0c;我们往往在学习了基本语法后&#x…

SoapUI参数传递操作详解

SoapUI 传递参数 本文章主要是通过例子&#xff0c;给大家讲解一下 SoapUI 发送请求时&#xff0c;如何带上参数~ 我们可以先了解下&#xff1a;SoapUI简介&#xff1a;了解这个流行的API测试工具 新建工程 首先新建一个工程&#xff0c;然后在里面进行后续的操作。 填写工程…

【C语言期末】基于VS2022的学生成绩管理系统

诚接计算机专业编程任务(C语言、C、Python、Java、HTML、JavaScript、Vue等)10/15R&#xff0c;如有需要请私信我&#xff0c;或者加我的企鹅号&#xff1a;1404293476 本文资源&#xff1a;https://download.csdn.net/download/weixin_47040861/88702521https://download.csd…

海外数据中心代理与住宅代理:优缺点全面对比

数据中心代理和住宅代理是为了匿名而开发的&#xff0c;通过替换网站眼中您自己的 IP 地址。然而&#xff0c;它们在价格、功能、性能或最佳用例方面存在一些差异。那么&#xff0c;这些代理类型到底有什么相似点和不同点呢&#xff1f; 一、什么是数据中心代理&#xff1f; 1…