欢迎来到天天文库
浏览记录
ID:19637400
大小:840.86 KB
页数:9页
时间:2018-10-04
《利用jmeterjava请求开启端口转发对远程数据库进行压力测试》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、利用jmeterjavasample端口转发实现对远程数据库的压力测试1需求背景对数据库进行压力测试时,需要模拟同一时间大量的sql请求发送,借助于jmeter的sql请求可以实现,但是对RDS来说,需要进行端口映射(跳板机)访问远程数据库,对于单线程手工测试来说,可以直接通过CRT进行端口跳转访问,但是对于多线程并发访问时,各个线程都需要开启端口映射,此时CRT无法满足,借助于第三方插件,通过定制jmeter脚本,可以帮助我们实现测试目标。2工具/包2.1Apache-jmeterJmeter支持java语言,是一个开源的性能测试工具
2、,通过扩展,可以实现非常丰富的功能,本讲义中的版本是2.11,jmeter的安装配置过程略2.2eclipse在eclipse中写javasample插件,eclipse的安装配置过程略2.3Com.jcraft.jsch一个开源的第三方JAR包,主要利用它来进行端口映射3插件开发3.1新建工程新建一个java工程,将下载下来的Com.jcraft.jsch源码导入,并新建一个package,用于编写javasample,结构如图所示。3.2配置buildpath将%JMETER_HOME%lib及%JMETER_HOME%lib
3、ext导入3.3Constants类该类主要配置运行参数,例如数据库连接,用户名,数据库密码,端口号等,如果这些变量基本是不变的话可以写在Constants里。/*Constant.java*/packagestartSSH;publicclassConstants{staticfinalStringdriver="com.mysql.jdbc.Driver";staticfinalStringconnServer="jdbc:mysql://localhost:12306/";staticfinalStringdataBase="cc
4、ms_qinjiaoshou";staticfinalStringuserName="*******";staticfinalStringpassWord="*******";staticfinalStringssh_server="******";staticfinalintssh_server_port=22;staticfinalStringssh_loginName="yang.yang";staticfinalStringssh_loginPassword="***********";staticfinalintlocal_p
5、ort=12306;staticfinalintremote_port=3306;staticfinalStringremote_server="******";staticfinalStringZH_Encoding="?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true";}3.4openSSH类在openSSH中,定义了参数以及默认值,并开启端口转发,以及由于环境问题,这些参数并不是固定的,这种写死在代码中的方式就不灵活,
6、JMETER提供了读取参数的方法,参见/*openSSH.java*/如图入口函数入口函数是为了让jmeter找到对应的函数入口,见图注意,端口应该作参数化处理,多个线程占用一个端口会出现连接失败的问题。一个SQL请求结束后,应释放该线程占用的端口资源,需要将该线程已占用的端口关闭。3.5closeSSH类该类主要用于释放线程占用的端口/*closeSSH.java*/入口函数:4连接测试4.1Jar包导出分别将项目导出为JAR包,导出2次,命名为openSSH.jar和closeSSH.jar,分别用于开启端口sample以及关闭关口
7、sample导出时注意选择对应的入口函数将2个jar文件以及mysqljdbcjar放到%JMETER_home%libext目录下,然后以admin身份运行jmeter。4.2javasample在Jmeter中新建线程组,定义一个用户定义变量以保存随机端口号,新建javasample该java请求用于打开端口,选择类名称,填入适当的参数,注意localport那一栏填写随机值。4.3sqlsample首先配置JDBC连接注意:VariableName不能为空;最大连接数设置要>jmeter线程数,端口号用随机数替代配置完jdbc
8、连接后,新建sql请求就可以了最后加上关闭端口的javasample开始测试,注意观察jmeterconsole日志及sql结果树可见打开了57734的端口映射,而且正确进行了查询,成功实现了模拟SSH进行
此文档下载收益归作者所有