(转)学习使用Jmeter做压力测试(三)--数据库测试
数据库测试
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语句的问题。多加几个限制条件
就好了。其实,主管级别的用户是有这个查询的权限,但都是按条件查,实际不会做查询全部用户的操作。
(转)学习使用Jmeter做压力测试(三)--数据库测试的更多相关文章
- 学习使用Jmeter做压力测试(一)--压力测试基本概念
学习使用Jmeter做压力测试(一)--压力测试基本概念 一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测 ...
- 【转】学习使用Jmeter做压力测试(三)--数据库测试
JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本.根据脚本,JMeter可通过线程组来模拟真实用户对Web服务器做压力测 ...
- (转)学习使用Jmeter做压力测试(一)--压力测试基本概念
一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行. 通过负载测试,确定在各种工作负载下 ...
- 【转】学习使用Jmeter做压力测试(二)--压力测试的实施
JMeter测试步骤: 1.建立测试计划 2.添加线程组 3.添加HTTP请求 4.增加监听器 5.执行测试计划 6.根据JMeter提供的报告分析结果 一.目标 测试访问目标服务器网站首页的每秒查询 ...
- 【转】学习使用Jmeter做压力测试(一)--压力测试基本概念
一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行. 通过负载测试,确定在各种工作负载下 ...
- 学习使用Jmeter做压力測试(一)--压力測试基本概念
一.性能測试的概念 性能測试是通过自己主动化的測试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行測试.负载測试和压力測试都属于性能測试,两者能够结合进行. 通过负载測试, ...
- 使用JMeter做压力测试
使用JMeter做压力测试 1.下载Jmeter 地址:http://jmeter.apache.org/download_jmeter.cgi 2.启动jmeter 运行bin/jmeter.bat ...
- 学习总结——JMeter做http接口功能测试
JMeter对各种类型接口的测试 默认做接口测试前,已经给出明确的接口文档(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59):本地配好了JMeter ...
- 学习总结——JMeter做http接口压力测试
JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...
随机推荐
- python中列表,元组,字符串互相转换
列表,元组和字符串python中有三个内建函数:,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示 >>> s = "xxxxx& ...
- 所有的畅通工程[HDU1232][HDU1874][HDU1875][HDU1879]
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissio ...
- 你应该在开始API开发之前知道的事(上)(翻译)
这篇文章的源地址:http://dev.dota2.com/showthread.php?t=58317 由于文章内容较多,英语水平有限,准备尝试着以中英混搭的形式翻译,免得曲解一些不懂内容的意思.以 ...
- --自动创建备份SQL
--自动创建备份SQL DECLARE @dbname VARCHAR(50) ,--要备份的数据库名称 @bakname VARCHAR(50) ,--备份后的bat名称 @sql VARCHAR( ...
- 人工神经网络NN
[面向代码]学习 Deep Learning系列 http://blog.csdn.net/coolluyu/article/details/20214617 正则化的最小二乘法 深入浅出LSTM神经 ...
- poj2388-Who's in the Middle(排序)
水题:求中位数. #include<iostream> #include<algorithm> using namespace std; int main(){ int n; ...
- 使用PowerShell读取SharePoint里列表的内容
1. 在https://www.microsoft.com/en-us/download/details.aspx?id=42038这里下载SharePoint Online Client Compo ...
- php 删除目录及子文件
function del_dir($dir) { if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { $str = "rmdir /s/q &q ...
- HTML JQuery 技巧总结
元素之间的操作 $(".level1").children() 获取到所有相邻的子元素$(".level1").children("a") ...
- logstash使用
简介 Logstash是一个接收,处理,转发日志的工具.支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型.怎么样听起来挺厉害的吧?在一个典型的使用场景下(EL ...