AntDB 性能测试篇(一):Jmeter工具

AntDB现已开源:

开源url:https://github.com/ADBSQL/AntDB
QQ交流群:496464280

背景: AntDB 是一款源自于 PG 内核的通用分布式事务性关系数据库。目前需要验证数据库的读写能力。第一个想到的是pgbench,postgresql提供的一个压测工具,不过内部使用的是libpq通讯协议,与生产使用的jdbc扩展协议有点差别;第二个想到的LR,想想LR部署安装的繁杂,关键是不免费,用破解版涉及商用可能被起诉的风险;第三个想到的是JMeter,小巧的纯java写的可以用来测试数据库的工具。

JMeter与pgbench相比:

AntDB是基于postgresql内核开发的,熟悉postgresql的都比较了解pgbench工具。pgbench是一种在PostgreSQL上运行基准测试的简单程序,用C语言开发的,内部走的是libpq,效率非常高。但是考虑到现场使用的是JAVA开发,调用jdbc走的扩展协议,所以本次不采用pgbench工具。

JMeter与LoadRunner相比:

JMeter 是一款开源的测试工具,虽然与LoadRunner相比,没有LR功能那么强大,结果分析也没有LR那么详细。但JMeter有其本身的优势:
1、开源,是一款开源的免费软件,免费!免费!免费!重要的事情说三遍…
2、小巧,相比LR几个G大小,它非常小巧,不需要安装,但需要JDK环境,因为它是使用java开发的工具;
3、可以运行在Windows以及linux环境中;
4、功能相对比较全面,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。因为它的开源性,当然你也可以根据自己的需求扩展它的功能。

言归正传,下面开始使用JMeter来测试AntDB:

安装JMeter:

1、http://jmeter.apache.org/下载最新版本的JMeter,上传linux服务器上,本次下载的是apache-jmeter-2.13版本;
2、解压JMeter:

tar -zxvf apache-jmeter-2.13.tgz 

3、检查当前用户的JAVA版本,需要注意的是最新的apache-jmeter-3.3版本要求java 1.8并且不支持java1.9,下载的时候注意看官网版本要求

[zhugy@localhost4 bin]$ java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (rhel-2.6.7.2.el6_8-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

4、将JMeter的可执行目录添加到环境变量中去:apache-jmeter-2.13/bin

配置测试AntDB驱动和配置文件:

1、上传AntDB的jdbc驱动(基于postgresql的jdbc驱动作了一些调整)到JMeter的lib目录下:

[zhugy@localhost4 lib]$ pwd
/home/zhugy/jmeter/apache-jmeter-2.13/lib
[zhugy@localhost4 lib]$  ll| grep postgresql
-rw-r--r-- 1 zhugy zhugy  709082 Sep  5 16:58 postgresql-42.1.5.jre7-SNAPSHOT.jar

2、以insert为例,完整的jmeter的jmx配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.8" jmeter="2.13 r1665067">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="测试计划" enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Argume
nts" testname="用户定义的变量" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
    </TestPlan>
    <hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="测试adb单查询性能" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="L
oopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值