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. 【程序员的福音】一款C#开源的GitHub加速神器

    前言 作为一个程序员你是否会经常会遇到GitHub无法访问(如下无法访问图片),或者是访问和下载源码时十分缓慢就像乌龟爬行一般.之前有尝试过手动修改host文件来解决网站的访问问题,以及更换网络但还是 ...

  2. Word2Vec模型总结

    1.Huffman树的构造 解析:给定n个权值作为n个叶子节点,构造一棵二叉树,若它的带权路径长度达到最小,则称这样的二叉树为最优二叉树,也称Huffman树.数的带权路径长度规定为所有叶子节点的带权 ...

  3. 去哪儿网 (Qunar) DevOps 实践分享

    这是 2017 年王晓翔在 msup 全球软件案例研究峰会上的分享,重点分享了提高工程效率过程中存在的问题.取得的成果和要做的事情.内容详实,具有可操作性.我有幸看到了,所以在征得晓翔的同意下重新截图 ...

  4. C#/VB.NET 添加、删除PPT幻灯片中的数字签名

    本文介绍如何通过C#及VB.NET代码来添加数字签名到PPT幻灯片文档,以及如何将文档中的数字签名删除. 辅助工具: Spire.Presentation.dll (dll版本为5.11.2) 注意: ...

  5. 618狂欢结束,来聊聊华为云GaussDB NoSQL的蓬勃张力

    又到了一年一度的 618大促的时候,随着近十年网上购物的兴起,各大平台在不同的时期推出各种购物促销活动,极大的促进了消费,刺激了市场.同样,在科技领域,为了支撑突然而来的高并发,支持千万人同时在线浏览 ...

  6. Python 绑定:从 Python 调用 C 或 C++

    摘要:您是拥有想要从 Python 中使用的C或 C++ 库的 Python 开发人员吗?如果是这样,那么Python 绑定允许您调用函数并将数据从 Python 传递到C或C++,让您利用这两种语言 ...

  7. instanceof运算符的实质:Java继承链与JavaScript原型链

    Java instanceof instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例 boolean result = obj instanceof Clas ...

  8. 乐高式扩展:在Seal软件供应链防火墙中轻松集成代码规范工具

    上个月,Seal 软件供应链防火墙 v0.2(以下简称"Seal")正式发布,这一版本实现了可扩展架构,用户可以根据自身需求插件式集成原生或第三方解决方案,灵活扩展扫描能力. 在前 ...

  9. 如何利用 A/B 实验提升产品用户留存? 看字节实战案例给你答案!

    技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 产品增长中最为经典的模型为 AARRR 漏斗模型,该模型追求最大化拉新,第一步"获客"(Acqui ...

  10. Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包

    Jenkins Pipeline 流水线 步骤 拉取SVN代码 -> Maven 构建 -> Docker 编译 -> 发布至阿里云仓库 -> K8S 更新 Jenkins插件 ...