首页数据库数据库压测工具(如何用JMeter对MySQL数据库进行压测)

数据库压测工具(如何用JMeter对MySQL数据库进行压测)

编程之家2023-10-17114次浏览

老铁们,大家好,相信还有很多朋友对于数据库压测工具和如何用JMeter对MySQL数据库进行压测的相关问题不太懂,没关系,今天就由我来为大家分享分享数据库压测工具以及如何用JMeter对MySQL数据库进行压测的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

数据库压测工具(如何用JMeter对MySQL数据库进行压测)

压力测试流程

一、压测流程

可参照上篇压测对抗流程

二、压测需求

需要明确需要压测的环境

需要压测的接口,其中包含接口的入参

需要明确接口的预计qps

数据库压测工具(如何用JMeter对MySQL数据库进行压测)

需要明确线上机器配置

三、压测准备

3.1、服务端开发准备:

1.根据需要测试的接口,决定需要部署哪些相关依赖服务

2.测试接口对应的服务、接口

3.相关配置

数据库压测工具(如何用JMeter对MySQL数据库进行压测)

4.相关数据库

5.需要的机器整理,其中包含机器的配置,需要几台机器

3.2、前端开发准备:

1.测试的接口和服务应用

2.域名

3.需要准备的机器

4.根据需要测试的接口,决定要部署哪些相关依赖

3.3、测试准备:

1.准备压测的测试方案和测试计划

2.通过接口确认压测的场景,其中包含每一个接口需要测试的场景,预计接口需要的压测线程。通过测试场景确认测试方案。

3.根据测试计划准备测试脚本

4.根据每一个接口的情况准备对应的测试场景。

5.根据测试场景准备需要的测试数据。其中会包含登录账号相关,接口返回有数据相关等。建议可以将线上的数据库直接copy一份到压测环境中

6.测试申请施压机器的权限

7.施压机上准备压测需要跑的工具

四、压测方案和计划

4.1、编写压测方案和计划

1.压测方案和计划的模板查看

2.在测试方案中将信息进行整合和处理,其中包含需要测试的接口,每一个流程对应的时间节点。

3.测试方案和测试计划确定后需要跟对应的人员(包含服务端开发、前端开发、测试人员、前端运维、服务端运维等)进行评审,确认最终的流程的时间节点。

4.根据测试计划中的时间输出对应的结果。其中包含服务券和前端代码部署、机器申请和部署、测试的测试脚本输出

4.2、测试编写测试脚本

1.确认测试接口是否依赖于登录,是否需要登录信息

2.确认需要测试的接口属于atop接口还是http接口。

3.确认需要编写哪些脚本

4.调试测试脚本5.

自动化脚本或者jmeter脚本编写,可查看jmeter使用

4.3、测试验证测试脚本

1.在日常环境对测试脚本进行验证,确定脚本能够正常跑

2.对测试接口需要的准备数据进行整理

3.对测试接口需要的断言进行准备

4.4、施压机上对压测环境的验证

1.将测试脚本中对应的域名和数据等换成压测环境的数据

2.在压测环境中对环境和脚本进行验证

3.与开发调试压测环境中的问题,并调试脚本问题

4.5、在压测环境中进行模拟压测

1.使用一个接口进行模拟压测,确认需要收集的图标信息、结果是否满足预期

2.确认施压机和压测机器是否正常,是否需要更换

3.确认需要采集数据的采集

4.确认断言方式是否ok

五、压测开始

5.1、正式压测:

1.开始正式压测,将各路人马(开发、运维、DBA等人进行封闭压测)

2.针对压测的接口进行决定接口压测的顺序

3.压测中需要逐渐增加线程数量

4.在压测过程中观察实时的qps和报错相关,并通知开发进行查询对应的接口响应时间。

5.根据接口的链路分别通知对应的人员进行查看压测过程中其接收时间、响应时间等。

5.2、当次压测结果分析:

1.当次接口压测结束后,对结果进行分析,确认压测后的qps、报错率、10%、50%、90%用户的响应时间

2.开发寻找对应浪费的时间,当场进行优化后,可以针对此接口在进行压测,以便找到性能瓶颈问题。

3.压测结果最终是需要找到最大的qps和开始出现报错的并发数

4.当前线程数对应的线程数,如没有达到对应的qps要求,可根据qps进行决定增加多少线程数。若线程数增加后,qps没有提高,大致已经找到qps的极限。

5.3、稳定性测试:

1.找到比较稳定的qps对应的线程数,进行稳定性测试

2.稳定性测试与压测的区别在于持续的时间。

3.可通过稳定性测试进行观察持续性调用接口时系统的表现。

4.后续可根据稳定性测试和压测的qps进行计算出对应的每日能够承受的日活量。

六、压测后测试报告整理

1.测试报告整理

a.对此次压测进行整理测试报告

b.测试报告中需要记录压测对应的时间节点、此次压测对应的qps、此次压测中的错误率

c.此次压测10%、50%、90%用户的响应时间

d.压测过程中出现的毛刺时间节点

e.压测过程中曲线不正常对应的原因。

f.此报告需要开发、测试同步进行整理

g.测试记录压测数据和图标

h.开发记录对应系统的cpu使用率、负载、数据库负载等信息。

i.测试报告模板

DDOS压力测试有什么工具

1、LoadRunner

LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期。

LoadRunner提供了3大主要功能模块:VirtualUser Generator(用于录制性能测试脚本),LoadRunner Controller(用于创建、运行和监控场景),LoadRunner Analysis(用于分析性能测试结果)既可以作为独立的工具完成各自的功能,又可以作为LoadRunner的一部分彼此衔接,与其他模块共同完成软件性能的整体测试。

详见:《性能测试入门——LoadRunner使用初探》(http://www.admin5.com/article/20161114/695706.shtml)

LoadRunner官网:https://saas.hpe.com/zh-cn/software/loadrunner

2、Apache JMeter

JMeter作为一款广为流传的开源压测产品,最初被设计用于Web应用测试,如今JMeter可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI脚本、Java对象、数据库、FTP服务器等等,还能对服务器、网络或对象模拟巨大的负载,通过不同压力类别测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能测试和回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

JMeter的特点包括对HTTP、FTP服务器、数据库进行压力测试和性能测试;完全的可移植性;完全 Swing和轻量组件支持包;完全多线程;缓存和离线分析/回放测试结果;可链接的取样器;具有提供动态输入到测试的功能;支持脚本编程的取样器等。在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录浏览器的HTTP请求,也可以记录Apache等WebServer的log文件来重现HTTP流量,并在测试运行时以此为依据设置重复次数和并发度(线程数)来进行压测。

参考文章:《云智慧压测实战分享之JMeter工具使用初探》(https://segmentfault.com/a/1190000007922515)

官网链接:http://jmeter.apache.org/

3、NeoLoad

NeoLoad是Neotys出品的一种负载和性能测试工具,可真实地模拟用户活动并监视基础架构运行状态,从而消除所有Web和移动应用程序中的瓶颈。NeoLoad通过使用无脚本GUI和一系列自动化功能,可让测试设计速度提高5-10倍,并将维护的脚本维持在原始设计时间的10%,同时帮助用户使用持续集成系统自动进行测试。

NeoLoad支持WebSocket、HTTP1/ 2、GWT、HTML5、AngularJS、Oracle Forms等技术协议,能够监控包括操作系统,应用服务器,Web服务器,数据库和网络设备在内的各种IT基础设施,同时可以通过Neotys云平台发起外部压力。

官网链接:http://www.neotys.com/product/overview-neoload.html

4、WebLOAD

WebLOAD是来自Radview公司的负载测试工具,它可被用以测试系统性能和弹性,也可被用于正确性验证(验证返回结果的正确性)。其测试脚本是用Javascript(和集成的COM/Java对象)编写的,并支持多种协议,如Web(包括AJAX在内的REST/HTTP)、SOAP/XML及其他可从脚本调用的协议如FTP、SMTP等,因而可从所有层面对应用程序进行测试。

WebLOAD存在免费和专业两个版本,免费版本支持50个虚拟用户,专业版还提供更多的报告和协议供用户选择。WebLOAD通常用作QA团队的独立运行工具,在开发周期的验证阶段,被测系统(System Under Test,SUT)投入实用之前,在模拟环境中对被测系统进行测试。

官网链接:http://www.radview.com/

5、Loadster

Loadster是一款商用负载测试软件,用于测试高负载下网站、Web应用、Web服务的性能表现,支持Linux,Mac和Windows等运行环境。

Loadster能够对Web应用/服务的Cookies、线程、头文件、动态表格等元素发起测试,获得Web在压力下的性能、弹性、稳定性和可扩展性等方面的表现。

官网链接:http://www.loadsterperformance.com/

6、Load impact

Load impact是一款服务于DevOps的性能测试工具,支持各种平台的网站、Web应用、移动应用和API测试。Loadimpact可以帮助用户了解应用的最高在线用户访问量,通过模拟测试不同在线人数下网站的响应时间,估算出服务器的最大负载。

Load impact的使用非常简单,只需要输入网址进行测试,便可统计出加载网站的一些详细数据。包括整体加载和站内图片,javascript, CSS等代码载入。可以在右侧列表选择不同文件来同时对比最多三个对象的加载数据,并生成图表显示,方便网站设计者来分析。测试完成之后,网站还可以存储测试过的统计数据。

官网链接:http://loadimpact.com/

7、CloudTest

CloudTest是一个集性能和功能测试于一体的综合压力测试云平台,专为现代网络和移动应用测试而设计开发,CloudTest可以图形化实现判断、循环,整体减轻了测试开发的工作量,缩短了开发时间。CloudTest基于内存的分析引擎,可以实时收集和展示数据,所有数据在3秒内汇聚显示。

CloudTest采用虚拟化技术,完美的配合公有/私有云计算技术,无需过多的硬件,带宽资源的投入,人力维护成本几乎为零,测试按需获得,远程接入,适合多团队协作。各种规模的模拟成本均远远优于传统工具,同时大大缩短了测试周期。

官网链接:https://soasta.com/cloudtest

8、Loadstorm

Loadstorm是一款针对Web应用的云端负载测试工具,通过模拟海量点击来测试Web应用在大负载下的性能表现。由于采用了云资源,所以Loadstorm的测试成本非常低,用户可以在云端选择创建自己的测试计划,测试标准和测试场景。

Loadstorm最多可以生成多达50000个并发用户,通过数以千计的云服务器发起访问。使用Loadstorm不需要任何脚本知识,同时提供多样化的测试图表和报告模版,用于准确测量Web应用的各项性能指标,如错误率,平均响应时间和用户数量等。Loadstorm可以申请免费试用,但更多压力和功能需要开通高级帐户。

官网链接:http://loadstorm.com/

9、阿里云PTS

阿里云性能测试(Performance Testing)是一个SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。PTS平台特色包括提供压测机,无需安装软件;脚本场景监控简单化,省时、省力;分布式并发压测,施压能力无上限;快速大规模集群扩容、支持几十万用户及百万级TPS性能压测;80%以上用户基本不需要花费额外的成本。

PTS分为两个版本,Lite版免费,企业版提供资源包月和按量付费两种计费方式,按量付费采用阶梯价计算,满足企业客户多种压测需求。

官网链接:https://www.aliyun.com/product/pts

10、压测宝

压测宝是云智慧推出的面向真实用户行为与地域分布的全链路云端压力测试平台,通过云端服务器产生真实分布式用户访问压力,模拟来自各地域用户接入后台所带来的真实流量,无限接近生产环境所面临的各种复杂因素,测量真实的用户体验。通过集成云智慧应用性能管理和监控产品,帮助实现基于真实用户行为的压测方案定制、压测过程中实时定位各环节应用资源及代码瓶颈,现场纠错,分析应用性能肇因。

产品功能特色方面,压测宝通过独有的开放架构,支持各种主流网络协议;同时支持手机APP的脚本录制方式,可以大大降低压测脚本制作的时间和难度。依托压测宝以及完善的产品线,云智慧为用户提供了一站式压测服务,面向云计算时代的复杂应用提供专业性能压测服务,帮助企业客观评估应用性能容量,发现全链路性能瓶颈,对应用架构的调优及架构容量规划提供专业咨询服务,满足企业灵活多变的业务需求。目前压测宝已提供高达10万UV并发级别的压测服务。

如何用JMeter对MySQL数据库进行压测

在Jmeter中建立一个JDBC Request测试计划主要分两步。

(1)设置JDBC连接池(在JDBC Connection)

(2)添加JDBC Request

其他步骤就是设置参数化、断言、监听结果。

第一步:添加 JDBC Connection

需要设置jdbc线程池变量的名称,这里设置为jdbcConfig,这个变量在JDBC Request中要使用的;还有要设置Database URL,格式为:jdbc:mysql://localhost:3306/chen?=UTC&=utf-8,注意:?后面的=UTC&=utf-8不能缺少,否则会报时区错误。

第二部:设置JDBC Request

文章分享结束,数据库压测工具和如何用JMeter对MySQL数据库进行压测的答案你都知道了吗?欢迎再次光临本站哦!

django同步数据库 如何在django中使用多个数据库平安anson,歌手平安现在在干嘛