我将向您展示使用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组件添加到测试计划中。
- 名为“数据库用户”的线程组
- JDBC请求类型的采样器
- JDBC连接配置类型的Config元素
- 类型为“ 随机变量”的三个配置元素
- 摘要报告类型的侦听器
添加这些组件后,JMeter测试计划如下图所示。
第三步
配置数据库用户。 线程组组件模拟数据库用户。
1.用户数(线程)
2.用户将发送请求多少次(循环计数)。 如果选择'Forever' ,则线程将在while(true){…}循环中运行,直到您决定停止测试为止。
第四步
配置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