自动化测试之JDBC连接、分布式负载

一、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不在同一网段所以无法演示,感兴趣的朋友可使用本地虚拟机试试~

猜你喜欢

转载自www.cnblogs.com/huohuli/p/10618576.html
今日推荐