首页 > 其他分享 >性能测试之JDBC连接、分布式负载

性能测试之JDBC连接、分布式负载

时间:2024-11-14 18:43:43浏览次数:3  
标签:负载 JDBC jmeter bugfree agent mysql Jmeter 分布式

一、Jmeter JDBC连接

Jmeter支持连接数据库,对SQL语句进行性能测试,JDBC Connetction Configuration用来配置连接信息。

1、把JDBC驱动的jar包引入测试计划

Jmeter要连接mysql数据库,首先得下载mysql jdbc驱动包,这里使用的是mysql-connector-java-5.1.7-bin.jar

选择测试计划——浏览——jar包路径——选中mysql-connector-java-5.1.7-bin.jar——导入即可

2、设置JDBC连接池(在JDBC Connetction Configuration元件中进行设置)

接下来新建一个线程组,右击线程组——配置元件——选择JDBC Connetction Configuration

配置信息如下:

  Variable Name for created pool(连接池名称):一定要写,JDBC Request通过此名称来获取连接池中的连接;可以随意填写,但最好具有业务意义,至少能让你秒懂。还有一条,在整个测试计划中此名称最好唯一,如果有多个JDBC Connetction Configuration,且名称重复,则Jmeter无法去做选择。

  Max Number of Connection(连接池最大连接数):这里设置为10

  Database URL(数据库连接地址):jdbc:mysql://IP地址:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

    ?前为固定写法,IP地址填写数据库服务器的IP,3306为默认端口号,test表示要连接的数据库名称,

    useUnicode=true表示是否使用Unicode字符集,characterEncoding=utf8表示当Unicode设置为true时,指定字符编码使用UTF-8

    allowMultiQueries=true表示允许多条语句查询 

  JDBC driver class选择com.mysql.jdbc.Driver

  Username和Password为数据库的账号密码

  其它参数按照下图设置即可

3、添加JDBC Request

接下来再右击线程组——取样器——选择JDBC Request

配置信息如下:

  Variable Name of Pool declared in JDBC Connection Configuration中的变量名一定要与JDBC Connetction Configuration中的Variable Name for created pool(连接池名称)保持一致

  Query Type(SQL语句类型):

    Select Statement:可执行查询语句

    Update Statement:可执行更新操作,包括插入和修改

    Callable Statement:对应JDBC规范中的CallableStatement对象,它为所有的DBMS提供了一种以标准形式调用存储过程的方法,白话就是可以调用存储过程,也就是可以有入参,有占位符,总之支持SQL语句的增删改查。

    后面的不再赘述

  Query中可填写SQL语句

4、点击【启动】,请求发送后,点击察看结果数的响应数据

二、Jmeter之分布式压测

前期准备:

1、负载机(最少一台)建议使用Linux,安装好JDK、Jmeter,并配置好环境变量

这里使用的是1.8JDK和Jmeter5.0,如何配置环境变量不在此赘述。

环境变量配置好后记得source /etc/profile,根目录下执行jmeter,出现下图表示配置成功

2、分别修改contrller和agent的配置文件jmeter.properties,找到server.rmi.ssl.disable取消注释,并改为server.rmi.ssl.disable=true,如下图所示:

修改完成后,回到contrller的jmeter.properties中,添加远程agent的IP地址和端口号(默认为1099,可在agent的配置中文件更改,更改server_port即可),如下图所示:

 启动agent的服务,执行命令:jmeter-server,下图表示启动成功

打开contrller的jmeter,建立脚本,选择运行——远程启动——负载机,这里报错连接超时,是由于防火墙未关闭或测试controller和agent不在同一个网段会影响远程连接。

解决办法:关闭agent的防火墙。contrller和agent在同一网段,比如选择了同一个WIFI,配置同一个DNS等方法解决。

由于contrller和agent不在同一网段所以无法演示,感兴趣的朋友可使用本地虚拟机试试~

 注意:

  1、分布式配置成功的小伙伴儿,在使用分布式的压测过程中会发现,察看结果树中无响应数据,Don't worry,这是正常现象,因为察看结果树在压测过程中是浪费性能的,最好禁用掉。所以在使用分布式时,Jmeter去掉了响应数据(默认不展示,但可修改配置文件,在此不做说明)

注意:

       2、如果脚本中使用了参数化文件,负载机同样位置也需要有一个相同的参数化文件,放在bin目录下即可;

关于nogui的常用命令见下图:

示例:jmeter -n -t bugfree.jmx -r -l ./bugfree.jtl -e -o ./bugfree -j bugfree.log

释义:使用nogui模式进行分布式压测,脚本bugfree.jmx路径为当前路径,并在当前路径生成结果文件bugfree.jtl、测试报表(路径为bugfree)和日志文件bugfree.log

标签:负载,JDBC,jmeter,bugfree,agent,mysql,Jmeter,分布式
From: https://blog.csdn.net/weixin_40702604/article/details/143754424

相关文章

  • netCore物联网项目,分布式部署方案总结
    十年河东,十年河西,莫欺少年穷学无止境,精益求精部署环境:2台windowsServe服务器,2台linux服务器,阿里云CLB负载均衡服务器(2个),阿里云RabbitMQ,阿里云Ots表格存储(用于存物联网设备上报数据),Sqlserver服务器(存放业务主数据),Postgresql服务器(短期存放非业务主数据),阿里云Redis实例,对象存储OSS......
  • 面试官:说说Ribbon是如何实现负载均衡的?
    Ribbon的作用是负载均衡,但是根据我面试他人的情况来看,很多人只忙于业务,而不清楚具体的底层原理,在面试中是很容易吃亏的。基于此,本文就来分析一下Ribbon的原理,如果看不惯的话,可以直接看最后的总结。一、基础概念1.什么是Ribbon目前主流的负载方案分为以下两种:集中式负载......
  • JDBC讲解(第一篇)
     这篇主要讲解JDBC的介绍与下载驱动的方式1.JDBC介绍JDBC(JavaDatabaseConnectivity,Java数据库连接)是Java程序开发中连接数据库的重要工具,本节将介绍JDBC定义、JDBC的工作原理与优势。1.1.JDBC的定义JDBC是Java数据库连接(JavaDatabaseConnectivity)的缩写,它是一种......
  • MYSQL中JDBC的使用
    一、JDBC基础概念JDBC是Java中的一组API,用于执行SQL操作(例如CRUD操作:增、删、改、关系),同时可以和各种类型的数据库类型进行连接(MySQL、Oracle、SQLServer等)。JDBC是Java标准库的一部分,提供了与数据库进行交互的抽象接口。JDBC主要包含以下几个核心组件:Driver(驱动程......
  • 解读Karmada多云容器编排技术,加速分布式云原生应用升级
    本文分享自来源:《华为云DTSE》第五期开源专刊,作者:任洪彩华为云高级软件工程师,Karmada社区Maintainer。 管理和协调跨多个云平台的容器化应用是当前企业面临的复杂性挑战之一,Karmada多云容器编排技术使得用户能够像操作单一集群一样轻松管理多集群,简化了多云环境的运维复杂度,加......
  • 通过 AWR报告查看oracle 数据库服务器的负载(load average)异常高的原因
    要诊断Oracle数据库服务器的负载(loadaverage)异常高的原因,通过AWR(AutomaticWorkloadRepository)报告可以帮助你识别潜在的瓶颈或负载源。AWR报告提供了数据库的详细性能数据,涵盖了系统负载、SQL执行、I/O性能、内存使用等多方面的信息。以下是通过AWR报告查看和诊断高负......
  • CICD04 Jenkins容器化CICD实现及分布式构建, 流水线Pipeline ubuntu使用
    2.14.3案例:基于Docker插件实现自由风格任务实现Docker镜像制作不如前面的直接脚本编写灵活2.14.3.2安装插件docker-build-stepjenkins上安装docker-build-step插件#选择jenkins使用的docker服务#左侧系统管理,右侧系统配置,DockerBuilder下DockerURL输入un......
  • 3大主流分布式事务框架详解(图文总结)
    3大主流分布式事务框架详解(图文总结) 1简要介绍随着微服务架构的不断发展,分布式系统逐渐普及到后端领域的每一个角落。在分布式系统中,跨多个服务的数据一致性一直是一个重大挑战,为解决这一挑战,分布式事务应运而生。作者在之前的文章《五种分布式事务解决方案》和《4大主流分......
  • MySQL JDBC
    在Java开发中,与数据库进行交互是不可或缺的一部分。MySQL作为一种流行的关系型数据库管理系统,与Java的集成通常通过JDBC(JavaDatabaseConnectivity)来实现。JDBC提供了一套用于执行SQL语句的API,使得Java程序能够连接和操作数据库。本文将深入探讨MySQL与JDBC的集成过程,包括驱动......
  • CFS任务的负载均衡(概述)
    CFS任务的负载均衡(概述)我们描述负载均衡的系列文章一共三篇,第一篇是框架部分,即本文,主要描述了负载均衡相关的原理、场景和框架。后面的两篇是对均衡代码的情景分析,通过对tickbalance、newidlebalance和taskplacement等几个典型的负载均衡来呈现其实现细节,稍后发布,敬请期待。......