51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2459|回复: 1

学习使用Jmeter做压力测试(三)--数据库测试

[复制链接]

该用户从未签到

发表于 2018-3-6 16:54:34 | 显示全部楼层 |阅读模式
JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,
这样就可很容易的生成性能测试脚本。

根据脚本,JMeter可通过线程组来模拟真实用户对Web服务器做压力测试。本文描述使用JMeter进行
数据库测试的过程。创建测试计划,模拟

并发用户发送SQL请求到数据库。测试数据库。

        性能测试的目标是找到系统的性能瓶颈。本文将通过构造测试场景,完成对数据库的测试。

场景:


1.单用户: a.SQL语句优化;    b.数据库约束检查;   c.分页查询;

2.并发用户: a.数据库连接池、WEB线程池、数据库死锁;


步骤:

(数据库)测试计划:

1.添加并发用户

添加线程组(Thread Group),修改名称为JDBC Users。设置线程数为5,循环次数为2。其他配置
项不变。

2.添加JDBC请求

2.1.选中线程组,右键 添加->配置元件->JDBC Connection Configuration。其实,这个就是通过
JDBC连接数据库的配置文件。

修改 DataBase Connection Configuration 的配置:

Database URL:jdbc:mysql://localhost:3306/jmetertest

JDBC Driver class:com.mysql.jdbc.Driver

Username:username

Password:passwd

Variable Name:mysql  连接配置名在测试计划中是唯一的,后面会与JDBC请求绑定。

2.2.选中线程组,右键添加->采样器(Sampler)->JDBC Request。这个就是通过JDBC向数据库发
送的请求。


修改:

Variable Name:mysql  这个和数据库连接配置(JDBC Connection Configuration)中的配置名是一
致的,代表一种对应关系。即我的这个JDBC请求是要通过名为mysql的

数据库连接配置文件来向数据库发送的。

Query:SELECT id,name,sex FROM  users WHERE name='lisi'

3.添加监听器用于查看/存储测试结果

选中线程组,右键添加->监听器->查看结果树。

选中线程组,右键添加->-监听器->聚合报告。

选中测试计划,右键添加->监听器->图形结果。

以上监听器用来查看、保存测试结果。

说明:在点击 “运行”之后,若在结果树看到红色的 JDBC Request 或是 聚合报告中Error一列非零。
则说明测试执行有错误。

查看结果树,取样器结果页签,找到 Response message 信息,提示的就是错误原因。

比如:no suitable driver found for jdbc 。说明JDBC驱动(我连接的是mysql数据库)有问题。

查看数据库版本为 5.1.30。网上找到mysql-connector-java-5.1.30-bin.jar。复制到jmeter主目录的
lib子目录下,然后在测试计划页最下方添加Library即可解决此问题。


结果分析:

        我在实际工作中很少接触数据库测试。所以也是摸着石头过河。

        接触过一例数据库假死的问题,原因是开发写的SQL语句不严谨造成的。比如:SELECT * FROM
user; 看着语句好像没什么,但是这表里面有上千万条数据。

在WEB页面是只有主管级别的用户才可以操作执行的,但是一执行的话WEB就进入假死状态。大约
30分钟才结束这种状态,实际是开发SQL语句的问题。多加几个限制条件

就好了。其实,主管级别的用户是有这个查询的权限,但都是按条件查,实际不会做查询全部用户
的操作。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-3-29 18:16 , Processed in 0.070168 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表