1.安装JMeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具,主要用于对软件的压力测试,它最初被设计用于Web应用测试,但后来扩展到其它测试领域。它可测试静态、动态资源,如静态文件、Java小服务程序、CGI脚本、Java对象、数据库等等。JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter还能够对应于程序做功能的回归测试,通过创建带有断言的脚本来验证程序返回了期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

如果还没有JMeter程序,您可以访问官方网站http://jmeter.apache.org,并下载获取当前最新的二进制(Binaries)程序包(如作者下载时最新版本为5.4.1,并标明需要java 8+)。下载后的程序为java的压缩文件,支持跨Linux、Windows等平台运行,程序包如下:
apache-jmeter-5.4.1.zip

作者本次测试是在Windows平台下进行的,解压apache-jmeter-5.4.1.zip程序即可使用,解压缩后如下图所示:

注意:程序的上级目录最好不要有中文等特殊字符,一些测试可能会因为字符集的原因异常。
2.安装JDK
上文提到JMeter的5.4.1版本需要java 8以上的支持。如果安装JMeter程序的计算机上不存在JDK9及以上的版本时,则需要立即安装。截止作者撰写本文,JDK的最新版本为JDK17,本次测试选择安装JDK9。我们可以访问Java的官方网站http://www.oracle.com/java,并下载获取Windows版本的JDK9。

下载JDK9安装包后,按照缺省选项进行安装。安装成功后,将会有jdk-9与jre-9两个目录,根据Windows操作系统的差异,安装的目录位置可能有所不同。作者的安装位置(C:\Program Files\Java)如下图所示:

安装JDK结束,配置Java的环境变量。操作步骤如下:

  1. 找到“计算机”,一些版本的Windows操作系统可能叫“我的电脑”,或者“此电脑”。然后使用鼠标右键打开“属性”菜单,得到以下的面板:

  2. 点击“高级系统设置”,进入“系统属性”面板,如下图所示:

  3. 点击“环境变量”按钮,进入“环境变量”配置界面,如下图所示:

  4. 配置JAVA_HOME环境变量,点击“用户变量”的“新建(N)”按钮,弹出“新建用户变量”输入框,在输入框中定义JAVA_HOME环境变量,该环境变量的值则为JDK9安装目录下的jdk-9目录的绝对路径。如果已经配置过,配置如下图所示:

  5. 配置PATH环境变量,需要注意的是:一些计算机系统尚无PATH环境变量,则需要采用上一步骤的方式新增PATH环境变量;如果计算机系统已经存在PATH环境变量,则应该选择“编辑(E)”按钮。作者的计算机系统尚无PATH环境变量,点击“用户变量”的“新建(N)”按钮,弹出“新建用户变量”输入框,在输入框中定义PATH环境变量,该环境变量的值配置为“%JAVA_HOME%\bin”,配置如下图所示:

  6. 自此,JDK9的程序安装与环境变量配置结束。在Windows的命令提示符窗口下运行java程序验证,如下图所示,能正确显示出java的版本,并且显式为“9”,则说明JDK9安装配置成功。

    3.JMeter测试数据库配置
    在使用JMeter测试KingbaseES数据库之前,需要预先准备好测试服务器与测试环境。本次测试需要:
     一个能远程访问的数据库服务器(可以就安装在本机,也可以安装在远端服务器);
     一台安装有JMeter的Windows计算机;
     还需要在KingbaseES数据库服务器上准备一些数据,用作后续的测试。

本文意在简单介绍如果使用JMeter进行KingbaseES数据库的测试,重点在全流程的配置介绍,因此测试的内容比较简单,仅测试数据写入(INSERT)测试。
3.1.启动KingbaseES服务器
数据库服务器准备的工作包括:

  1. 用户根据自身的测试环境需要,首先启动KingbaseES V8R6服务器,并确定服务器的网络地址与端口(如10.10.12.252:2222);
  2. 选择测试数据库,如作者使用“test”数据库作为测试库,如果没有则新建之,并准备好访问的用户名与密码(如用户名:pfu,密码:123);
  3. 连接测试数据库“test”,新建后续测试使用的表tb,新建命令如下:
    CREATE TABLE tb (id INT, d TIMESTAMP);
    3.2.安装KingbaseES的JDBC库
    从“人大金仓”公司的官方渠道获取JDBC的Java库,如作者使用的KingbaseES V8R6版本的JDBC程序包为jdbc-V008R006B0403.tar.gz。解压缩后可得到如下图所示的三个jar库:

    把这三个jar库拷贝到JMeter的lib目录之下,如作者拷贝之后如下图所示:

自此,我们完成了把KingbaseES的JDBC库安装到JMeter。经过前面的各种准备,是时候新增“测试计划”了。在此之后,就可以开启我们的测试之旅了。
3.3.新建测试计划
首先进入JMeter的二进制程序目录下的bin目录(如:“D:\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin”),找到JMeter的可运行程序所在位置,bin目录下的文件如下图所示:

启动JMeter,一般情况下,双击“jmeter.bat”批处理命令脚本就可打开JMeter。但很多时候不能正常打开。这时候可以先打开一个CMD命令行提示符窗口,然后再运行“java –jar ApacheJMeter.jar”命令,如下图所示:

成功打开JMeter后的程序界面如下图所示:

打开JMeter成功的同时,默认新建了一个名为“测试计划”的计划。我们将“测试计划”更名为“Kdb测试计划”,修改后如下图所示:

3.3.1为测试计划新建线程组
为测试计划新建“线程组”的步骤如下:

  1. 鼠标右键单击“Kdb测试计划”,依次选择菜单面板中的“添加”、“线程(用户)”、“线程组”按钮,为测试计划新建“线程组”,如下图所示:

    新建之后的线程组缺省配置如下图所示:

  2. 用户根据测试的需要对其进行配置,本次测试的配置是。配置界面如下,仅供参考:

    3.3.2为线程组新建JDBC连接配置
    在新建JDBC的配置之前,先要查看上文安装的KingbaseES的jdbc库的驱动信息,查看方式是在命令行提示符窗口运行“java -jar kingbase8-8.6.0.jar -v”命令。查看的结果如下图所示:

    从上图我们可以得到kingbase8-8.6.0.jar的JDBC驱动类为“com.kingbase8.Driver”。现在可以开始JDBC的连接配置了。配置步骤如下:

  3. 鼠标右键单击“线程组”,依次选择菜单面板中的“添加”、“配置元件”、“JDBC Connection Configuration”按钮,新建“JDBC Connection Configuration”,如下图所示:

    新建之后的JDBC连接配置缺省配置如下图所示:

  4. 给JDBC连接池命名,此名称在下一章节的“JDBC请求”新建中需要。这里配置Variable Name Bound to Pool的名称(即Variable Name for create pool)为:kdb,如下图所示:

  5. 配置JDBC连接池的驱动类,主流的数据库驱动类可直接在“JDBC Driver class”处通过“下拉选择框”选择。KingbaseES的jdbc不在“下拉选择框”中,则需要手动添加,添加的方式是点击“编辑”按钮,如下图所示:

  6. 点击“编辑”按钮后,输入上文中得到的KingbaseES的驱动类名称“com.kingbase8.Driver”,如下图所示:

  7. 继续配置数据库连接池的数据源,作者的配置如下所示:

    自此,KingbaseES的JDBC连接池配置结束,其中使用了上文准备的数据库服务器访问的网络地址与端口、测试数据库test,以及访问数据库的用户名与密码。

注意:Database URL的格式为jdbc:kingbase8://server.host.address:port/database
3.3.3为线程组新建JDBC请求
“线程组”中的每一个线程,在测试的时候都是在做任务,任务的具体内容可以由JDBC请求来定义。以下是定义JDBC请求的步骤:

  1. 鼠标右键单击“线程组”,依次选择菜单面板中的“添加”、“取样器”、“JDBC Request”按钮,新建“JDBC Request”,如下图所示:

    新建后的界面,缺省配置如下图所示:
  2. 配置Variable Name Bound to Pool为kdb(上文中JDBC连接池中所新建),并选择查询类型(Query Type)为“Update Statement”,填写更新类SQL,如下图所示:

    自此,KingbaseES的JDBC请求配置结束,其中使用了上文准备的测试“表”tb。

注意:Variable Name Bound to Pool配置的值一定要与JDBC连接池中的值保持一致。
3.3.4为线程组新建查看结果树
自此,并发测试的工作任务单元“线程组”已经建立;连接数据库所使用的JDBC“数据源”已经建立;“线程组”要执行的任务,即取样器(如:JDBC请求)也已经建立。但是JMeter还无法进行测试,它还需要一个监听器(如:查看结果树)。

鼠标右键单击“线程组”,依次选择菜单面板中的“添加”、“监听器”、“察看结果树”按钮,新建结果树,如下图所示:

新建后的界面,缺省配置如下图所示:

自此,“察看结果树”新建完成,JMeter测试KingbaseES数据库所需的测试计划新建完毕。保存所有的配置。
4.开始JMeter测试
选中“察看结果树”,并点击工具栏的“启动”按钮( )开始测试,开始JMeter测试KingbaseES数据库。运行的界面如下图所示:

如果需要,可以点击“停止”按钮(stop),手动结束JMeter的测试。如果JDBC Request中的SQL命令执行出错时,也会自动停止。

查看一下KingbaseES数据库后台的test数据库下的tb表,发现JMeter已经写入了大量的数据。

自此,JMeter测试KingbaseES数据库的测试就完成了。

文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树数据库组成59972 人正在系统学习中

[转帖]如何通过JMeter测试金仓数据库KingbaseES并搭建环境的更多相关文章

  1. 通过jmeter连接人大金仓数据库

    某项目用的人大金仓数据库,做性能测试,需要用jmeter来连接数据库处理一批数据.jmeter连接人大金仓,做个记录. 1. 概要 在"配置元件"中添加"JDBC Con ...

  2. 通过ODBC接口访问人大金仓数据库

      国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高:另一方面,国产软件目前普遍难用,性能不稳定,Bug ...

  3. QT 之 ODBC连接人大金仓数据库

    QT 之 使用 ODBC 驱动连接人大金仓数据库 获取数据库驱动和依赖动态库 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库 分别为: 驱动动态库:kd ...

  4. linux安装国产数据库(金仓数据库,达梦数据库,南大通用数据库)

    今天在公司做的任务是,在Linux的环境下安装三种数据库,结果一种数据库也没有安装好,首先遇到的问题是安装南大通用数据库遇到安装的第五步,就出现问题了,问题是Gbase SDK没有安装成功,以及Gba ...

  5. Rocky4.2下安装金仓v7数据库(KingbaseES)

    1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 jdbh:~ # uname -ra Linux jdbh -x86_64 # SMP Fri Dec :: CST x86_64 G ...

  6. 润乾配置连接kingbase(金仓)数据库

     问题背景 客户根据项目的不同,使用润乾连接的数据库类型各种各样,此文针对前几日使用润乾设计器连接kingbase金仓数据库做一个说明. kingbase金仓数据库是一款国产数据库,操作方式和配置 ...

  7. 教你10分钟对接人大金仓EF Core 6.x

    前言 目前.NET Core中据我了解到除了官方的EF Core外,还用的比较多的ORM框架(恕我孤陋寡闻哈,可能还有别的)有FreeSql.SqlSugar(排名不分先后).FreeSql和SqlS ...

  8. 用JMeter测试monggodb的请求

    JMeter测试MongoDB性能有两种方式,一种是利用JMeter直接测试MongoDB[即通过MongoDB协议测试],另一种是写Java代码方式测试MongoDB[即通过java请求测试] 注: ...

  9. JMeter学习(十九)JMeter测试MongoDB

    JMeter测试MongoDB性能有两种方式,一种是利用JMeter直接进行测试MongoDB,还有一种是写Java代码方式测试MongoDB性能. 第一种方法 1.编写Java代码,内容如下: pa ...

  10. Jmeter测试webocket协议

    Jmeter本身不支持websocket协议的,所以需要安装第三方的插件还有6个依赖包. 首先,我们需要准备Jmeter的WebSocket协议的支持插件: JMeterWebSocketSample ...

随机推荐

  1. android Handler应用

    android在运行时改变ui需要在ui线程中修改才行,不然就会报错或者无法启动应用. 我们怎么可以做事不管呢? 既然不能在ui线程外的地方运行修改ui的代码,我们可以用Handler解决这个问题, ...

  2. Feign源码解析4:调用过程

    背景 前面几篇分析了Feign的初始化过程,历经艰难,可算是把@FeignClient注解的接口对应的代理对象给创建出来了.今天看下在实际Feign调用过程中的一些源码细节. 我们这里Feign接口如 ...

  3. 华为云河图KooMap:夯实数字孪生底座,点燃燎原星火

    摘要:7月8日,华为开发者大会2023(Cloud)华为云河图KooMap技术分论坛在东莞溪村顺利举办. 7月8日,华为开发者大会2023(Cloud)华为云河图KooMap技术分论坛在东莞溪村顺利举 ...

  4. 一文掌握GaussDB(DWS) SQL进阶技能:全文检索

    摘要:本文简要介绍了GaussDB(DWS)全文检索的原理和使用方法. 全文检索(Text search)顾名思义,就是在给定的文档中查找指定模式(pattern)的过程.GaussDB(DWS)支持 ...

  5. 云小课 | DSC:快速识别敏感数据并脱敏

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 华为云数据安全中 ...

  6. SEAL 0.3 正式发布:国内首个全链路软件供应链安全管理平台

    12月1日,软件供应链安全管理平台 SEAL 0.3 正式发布(以下简称"SEAL"),这是国内首个以全链路视角保护软件供应链的安全管理平台.两个月前 SEAL 0.2 发布,该版 ...

  7. Solon 开发进阶,四、启动参数说明

    Solon 开发进阶 一.插件扩展机制 二.体外扩展机制 三.常用配置说明 四.启动参数说明 五.全局异常订阅 启动参数,在应用启动后会被静态化(为了内部更高效的利用).比如,想通过体外扩展加载配置, ...

  8. Nginx 四层代理配置

    四层代理比较方便.简单,nginx.conf 如下 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log lo ...

  9. git clone克隆速度慢的解决办法

    平常我们经常会遇到github的访问或者clone项目很慢甚至于无法访问,那么这个时候我们经常做的事情是修改hosts会比较多一些或者使用github的镜像站. 一.更改hosts文件的方式 常用的在 ...

  10. Python 网络舆情分析系统,舆论可视化界面

    1 简介 舆情管理系统,这不仅仅可以帮助当地的管理人员迅速的排查跟本地有关的负面言论,还可以避免网民因为本身意识不到位而评论或发布一些不好的观点的情况,最终的目的就是帮助社会更好的发展. 2 技术栈 ...