jmeter数据库负载测试

Apache JMeter是完全使用Java编写的性能测试工具。 可以在请求/响应模型上运行的任何应用程序都可以使用JMeter进行负载测试。 关系数据库也不例外:接收sql查询,执行查询并返回执行结果。

我将向您展示使用JMeter的图形用户界面设置测试方案有多么容易。 但是在深入探讨细节之前,让我们先介绍一下基本术语:

测试计划 :描述测试方案
线程组 :代表运行您的测试方案的用户。
样本 :一种发送请求和等待响应的方式。 HTTP请求,JDBC请求,SOAP / XML-RPC请求和Java对象请求是示例示例。 逻辑控制器 :用于自定义JMeter用于决定何时发送请求的逻辑 侦听器 :接收测试结果并显示报告。 计时器 :导致JMeter在线程发出的每个请求之前延迟一定的时间。 断言 :测试应用程序是否返回预期的响应

注意这篇文章并不是JMeter的替代文档。 JMeter的文档很好。 您可以在其用户手册(http://jakarta.apache.org/jmeter/usermanual/index.html)中找到详细信息。假设我们有一个应用程序可以将每个事务记录到关系数据库中。我们将创建一个测试计划–循序渐进–为了回答以下问题。

  • 一秒钟内可以将几笔交易记录插入到交易表中?
  • 将单个交易记录插入交易表需要多少时间?
  • 并发线程数(用户)如何影响插入/秒数和平均响应时间?
  • 记录数如何影响插入/秒数和平均响应时间?

第1步

将mysql jdbc驱动程序复制到JMeter安装的lib文件夹中。 JMeter在类路径中需要合适的jdbc驱动程序来连接数据库。

Example ~/tools/jakarta-jmeter-2.3.4/lib/mysql-connector-java-5.0.5.jar

我们将把客户的订单和订单结果存储在交易表中。

CREATE TABLE transactions (id INT NOT NULL AUTO_INCREMENT,customer_id INT NOT NULL,order_id INT NOT NULL,result INT,PRIMARY KEY (id)
);

第2步

创建一个测试计划,并将其命名为“ Test MYSQL DB”。 然后将以下jmeter组件添加到测试计划中。

  1. 名为“数据库用户”的线程组
  2. JDBC请求类型的采样器
  3. JDBC连接配置类型的Config元素
  4. 类型为“ 随机变量”的三个配置元素
  5. 摘要报告类型的侦听器

添加这些组件后,JMeter测试计划如下图所示。

第三步

配置数据库用户。 线程组组件模拟数据库用户。
1.用户数(线程)
2.用户将发送请求多少次(循环计数)。 如果选择'Forever' ,则线程将在while(true){…}循环中运行,直到您决定停止测试为止。

第4步

配置JDBC连接池。 JDBC连接配置组件用于创建jdbc连接池。 数据库URL,jdbc驱动程序,数据库用户和密码均使用此组件进行配置。 连接池由“变量名称”标识。 JDBC采样器(请求)使用此变量名称(连接池名称)来弹出和推送连接。 我将测试连接池命名为“我的数据库池”

第5步

定义将在INSERT语句中使用的随机变量。 在此测试中,我使用了三个随机变量: 用户ID,订单ID和结果 。 下图显示了用户ID的随机数配置。 随机数生成器将为我们提供1到1000000之间的随机整数。我们可以使用名称user_id来引用生成的随机数。

第6步

JDBC Request组件是我们告诉用户(线程)要做什么的地方。 在步骤3 “我的数据库池”中配置的池的名称将用作“绑定到池的变量名称” 。 所有线程将执行准备好的语句。 用户ID,订单ID和结果将由随机数配置器生成(在步骤5中进行描述)

步骤7

现在,我们已将线程配置为将事务记录插入到事务表中。 在最后一步中,我们将添加摘要报告类型的侦听器,以查看测试结果。

结果告诉我们,在无限循环中工作的10个并发用户(线程)可以在我们的事务表中插入近3300行。 插入行所花费的平均时间为2毫秒。 您也可以选择“图形结果”侦听器以查看结果的直观表示。
我创建并运行了一个简单的数据库测试计划。 希望这篇文章对您有所帮助。 谨记这一座右铭

如果无法衡量,就无法管理也无法改善

测试愉快...

参考: 使用我们的JCG合作伙伴 Ilkin Ulas的JMeter进行负载测试关系数据库 , 所有您的博客都属于我们博客。

翻译自: https://www.javacodegeeks.com/2012/04/jmeter-load-testing-relational.html

jmeter数据库负载测试

jmeter数据库负载测试_JMeter:负载测试关系数据库相关推荐

  1. jmeter 高并发测试报告_JMeter分布式测试

    一.为什么要使用分布式测试 按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿.无响应等情况,这是限于jmeter其本身的机制 ...

  2. 性能测试——JMeter脚本录制和HTTP负载测试

    实验目的 (1)了解Jmeter性能测试工具的用途和简单的操作: (2)掌握Jmeter性能测试工具测试过程: (3)能够使用Jmeter进行负载测试: 实验步骤 使用Jmeter对MercuryTo ...

  3. 性能测试、负载测试、压力测试的区别

    转载自:https://www.cnblogs.com/Bonnieh/p/5826773.html 性能测试(Performance Testing):是通过自动化的测试工具模拟多种正常.峰值以及异 ...

  4. 性能测试,负载测试,压力测试以及容量测试的联系与区别--网搜及总结

    1.负载测试,英文是Load testing. 负载测试是性能测试的一种,测试一个应用在重负荷下的表现.例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系 ...

  5. 性能测试、负载测试以及压力测试

    为什么80%的码农都做不了架构师?>>> 根据产品的时间特性和资源特性,效率测试可以包括不同的测试类型,例如:性能测试.负载测试和压力测试.本文则主要介绍这三种测试,希望对你有帮助, ...

  6. 性能测试,负载测试,压力测试有什么区别

    性能测试,负载测试,压力测试有什么区别 性能测试(或称多用户并发性能测试).负载测试.强度测试.容量测试是性能测试领域里的几个方面,但是概念很容易混淆.下面将几个概念进行介绍. 性能测试(Perfor ...

  7. 性能测试vs负载测试vs压力测试

    下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软 ...

  8. 压力测试和负载测试区别_如何理解与区分软件性能测试、负载测试、稳定性测试、压力测试...

    性能测试.负载测试.稳定性测试.压力测试之间有何区别?刚开始自己也不能很好的区分,随着一些具体性能测试实践的开展,大概有一个基本的认识,总结如下: 首先,大致了解下软件产品的性能受哪些因素的影响 我们 ...

  9. 性能测试, 压力测试 , 负载测试和 容量测试 的区别与联系

    负载测试(Load Test).压力测试(Stress Test).容量测试(Capability Test)与性能测试(Performance Test)是相互关系? 性能测试包括负载测试.压力测试 ...

最新文章

  1. 链表类型题目需要用到的头文件list.h
  2. 太空乱游等待服务器响应,太空乱游(单机+联机)
  3. golang 系统调用 syscall 简介
  4. 一步一步SharePoint 2007之十四:实现Form认证(4)——创建管理帐户
  5. Java虚拟机学习(2):垃圾收集算法
  6. Javascript:通过服务器相对路径下载文件到本地
  7. tplink连接服务器失败_TPLINK无线路由WDS(桥接)设置方法图解教程 距离远增强wifi信号...
  8. OGRE实现纸娃娃系统
  9. [4.6]-AutoSAR零基础学习-CAN通信协议
  10. 复制错误:安装程序无法复制文件 Atapi.sys
  11. 过来-神秘的Word域代码
  12. 基于ATTiny85的digispark Arduino最小系统的自制教程(二)
  13. [转]抽象基类与接口,共性与个性的选择!
  14. 计算机二级java邓伦单_全国计算机等级考试计算机基础及Photoshop应用试题答案(2)...
  15. Spark rdd之sortBy
  16. MBR和GUID区别
  17. java开发抖音短视频无水印下载工具
  18. 停车场门禁控制系统的状态机
  19. python京东注册机_Python实现京东自动登录
  20. Android系统小知识

热门文章

  1. 避免代码冗余,使用接口和泛型重构Java代码
  2. HikariCP-史上最快速的连接池
  3. 漫画算法:辗转相除法是什么鬼
  4. 今天是个特殊的一天,有意义的一天,值得纪念的一天~
  5. java中部的分页实现(二)
  6. 《金色梦乡》金句摘抄(八)
  7. 蓝桥杯JAVA---2013---B----世纪末的星期
  8. tomcat(4)Tomcat的默认连接器
  9. vaadin_Vaadin提示:延迟加载和商品标识
  10. camel apache_Apache Camel 3只有2个月的路程