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

news2024/11/27 14:28:31

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驱动。下载地址:https://dev.mysql.com/downloads/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数据库>就分享到这里。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【保100%免费】

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片领取。  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cpolar的基础使用方法

如何使用cpolar内网穿透&#xff1f; 文章目录 如何使用cpolar内网穿透&#xff1f;前言1. 在群辉NAS系统下安装cpolar套件2. 管理隧道列表3. 创建固定数据隧道 前言 群晖作为大容量存储系统&#xff0c;既可以作为个人的私有存储设备&#xff0c;也可以放在小型企业中作为数据…

别再用人工巡检了,教你一个简单好用的新技巧

当今社会中&#xff0c;计算机设备扮演着不可或缺的角色&#xff0c;它们在个人生活、商业活动和科技创新中都具有重要地位。 无论是个人用户还是企业&#xff0c;UPS监控都是确保计算机设备稳定运行的关键环节。通过有效的UPS监控&#xff0c;我们能够在电力波动或中断时保护硬…

python中的迭代器和生成器

一、迭代器 支持迭代的容器&#xff0c;如列表&#xff08;list&#xff09;、元组&#xff08;tuple&#xff09;、字典&#xff08;dict&#xff09;、集合&#xff08;set&#xff09;这些序列式容器。 自定义迭代器的类中必须实现以下2个方法&#xff1a; __next__(self)…

Netty:用forEachByte遍历处理ByteBuf中的可读字节

说明 io.netty.buffer.ByteBuf的forEachByte(ByteProcessor processor)用指明的ByteProcessor 遍历ByteBuf中的可读字节。遍历的时候用升序遍历。 -这个函数可以在ByteBuf中寻找某个字节首次出现的位置&#xff0c;或者首次不是某个字节的位置。 如果已经遍历完了可读字节但还…

简单的基于SpringBoot的学生成绩管理系统java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 简单的基于SpringBoot的学生成绩管理系统 系统有2权限…

LeetCode面向运气之Javascript—第26题-删除有序数组中的重复项-99.18%

LeetCode第26题-删除有序数组中的重复项 题目要求 一个升序排列的数组nums &#xff0c;请你原地删除重复出现的元素&#xff0c;使每个元素只出现一次 &#xff0c;返回删除后数组的新长度。元素的相对顺序应该保持 一致 。然后返回 nums 中唯一元素的个数。 原地 说是一个…

领航优配:股市看盘的几个小技巧?

股市看盘是每个股民不可或缺的一项技能&#xff0c;它能够帮助股民更好地剖析股票的走势&#xff0c;从而做出更明智的出资决策。可是&#xff0c;股市行情千变万化&#xff0c;要想达到精准的猜测与判断&#xff0c;需求把握一些小技巧。本文将分享几个股市看盘的小技巧&#…

使用CANape查看blf数据

blf数据不像mf4那样自带信号数据库&#xff0c;因为它是记日志用的&#xff0c;一般情况下要尽可能的小&#xff0c;所以&#xff0c;解析blf数据要单独有个数据库文件&#xff0c;一般是dbc或者arxml&#xff0c;我这里用dbc做示范&#xff0c;解析之前要先加载dbc&#xff0c…

微服务Ribbon-负载均衡策略和饥饿加载

目录 一、负载均衡策略 1.1 负载均衡策略介绍 1.2 自定义负载均衡策略 二、饥饿加载 &#xff08;笔记整理自bilibili黑马程序员课程&#xff09; 一、负载均衡策略 1.1 负载均衡策略介绍 负载均衡的规则都定义在IRule接口中&#xff0c;而IRule有很多不同的实现类&…

HCIP-linux和kvm(ks配置文件自动化安装及console连虚拟机有问题)

1、linux linux安装教程参考&#xff0c;https://blog.51cto.com/cloudcs/5245337 yum源配置 本地yum源配置&#xff1a; 8版本配置&#xff1a;将光盘iso挂载到某个目录&#xff0c;/dev/cdrom是/dev/sr0软链接&#xff0c;# mount /dev/cdrom /mnt&#xff0c;# ls /mnt Ap…

siMLPe:Human Motion Prediction

Back to MLP: A Simple Baseline for Human Motion Prediction解析 摘要1. 简介2. Related Work2.1 基于RNN的人体运动预测2.2 基于GCN的人体运动预测2.3 基于 Attention 的人类运动预测2.4 总结 3. siMLPe3.1 离散余弦变换&#xff08;Discrete Cosine Transform (DCT)&#x…

使用go获取链上数据之主动拉取-连接数据库

上一篇文章&#xff0c;我们完成了基础环境的搭建&#xff0c;并通过viper完成了配置文件的读取&#xff0c;本章&#xff0c;我们将要完成使用gorm连接数据库&#xff0c;并插入一条数据 1、配置数据库连接 1.1、新建db.go 对数据库的操作&#xff0c;我们使用的是gorm类库&…

个人理解Java的浅克隆与深克隆

浅克隆 浅克隆只会克隆基本数据属性&#xff0c;而不会克隆引用其他对象的属性&#xff0c;String类型除外。&#xff08;String对象是不可修改的对象&#xff0c;每次修改其实都是新建一个新的对象&#xff0c;而不是在原有的对象上修改&#xff0c;所以当修改String属性时其…

vue2.7如何使用vue-i18n

版本&#xff1a; vue&#xff1a;2.7.0 vue-i18n&#xff1a;8.28.2 一、下载 npm i vue-i18n8.28.2二、新建 新建一个文件&#xff0c;例如&#xff1a;lang&#xff0c;项目结构如下&#xff1a; index.js&#xff1a; import Vue from vue import VueI18n from vue-i18n…

函数的递归

1、什么是递归&#xff1f; 程序调用自身的编程技巧称为递归。 递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法&#xff0c;它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解&#x…

最强自动化测试框架Playwright-操作指南(3)-PO模式

playwright支持PO模式 创建页面对象 class SearchPage:def __init__(self, page):self.page pageself.search_term_input page.get_by_role("searchbox", name"输入搜索词")def navigate(self):self.page.goto("https://bing.com")def searc…

《人脸识别技术应用安全管理规定(征求意见稿)》,需要关注三个焦点

目录 严防人脸信息采集与滥用 规范人脸识别信息的处理 保障人脸识别技术的安全 人脸识别主要有三类风险 近日&#xff0c;国家互联网信息办公室发布《人脸识别技术应用安全管理规定&#xff08;试行&#xff09;&#xff08;征求意见稿&#xff09;》公开征求意见的通知。 …

甄品焕新|燕千云服务请求预警功能上线,燕小千AIGC能力再升级

​ 燕千云数智化业务服务平台发布了1.23.0版本&#xff0c;此次版本上线了服务请求预警功能&#xff0c;增加呼叫中心服务场景中的通话质检功能&#xff0c;提高了企业IT服务效率。此次还升级了燕小千AIGC能力&#xff0c;不仅可以实时预估文档学习时间&#xff0c;还可以一键分…

multi-head_seft-attention(多头自注意力)

对比 相比于single-head&#xff0c;multi-head就是将 q i q^i qi分成了 h h h份 multi-head_seft-attention的计算过程 将 q i q^i qi分成了 h h h份 计算过程 对于每个Head&#xff0c;我们可以提取出他的 b 11 b_{11} b11​到 b m 1 b_{m1} bm1​&#xff0c;以 H e…

Spring 事务管理

目录 1. 事务管理 1.1. Spring框架的事务支持模型的优势 1.1.1. 全局事务 1.1.2. 本地事务 1.1.3. Spring框架的一致化编程模型 1.2. 了解Spring框架的事务抽象&#xff08;Transaction Abstraction&#xff09; 1.2.1. Hibernate 事务设置 1.3. 用事务同步资源 1.3.1…