zoukankan      html  css  js  c++  java
  • 【转】学习使用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语句的问题。多加几个限制条件

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

     

    注:

    0.5pt;font-family:Arial;color:black'>

  • 相关阅读:
    蛇形填数(算法竞赛入门经典)
    35. Search Insert Position(LeetCode)
    70. Climbing Stairs(LeetCode)
    循环结构程序设计(算法竞赛入门经典)课后题
    阶乘之和(算法竞赛入门经典)[求余问题]
    有关int范围的例题(算法竞赛入门经典)
    矩阵行成列,列成行
    543. Diameter of Binary Tree(LeetCode)
    415. Add Strings(LeetCode)
    121. Best Time to Buy and Sell Stock(LeetCode)
  • 原文地址:https://www.cnblogs.com/blongfree/p/4980719.html
Copyright © 2011-2022 走看看