51Testing软件测试论坛

标题: Jmeter中如何进行对数据库压测(下) [打印本页]

作者: lsekfe    时间: 2021-1-21 10:32
标题: Jmeter中如何进行对数据库压测(下)
  HTTP Request的配置信息如下图:
[attach]132013[/attach]
Thread Group的配置信息:
[attach]132014[/attach]
注意:为了便于展示结果,这个将测试次数改为100了。 2.7测试结果 执行完测试后即可在Listener中查看结果。 Summary Report界面:
[attach]132015[/attach]
View Results in Table界面:
[attach]132016[/attach]
 View Results Tree默认界面:
[attach]132018[/attach]
默认是以Text形式显示响应数据,如果响应数据是XML/JSON/HTML的话,可以更改为相对应的显示方式,这样更直观。在本例中以浏览器方式显示响应数据的界面如下:
[attach]132019[/attach]
 默认是以Text形式显示响应数据,如果响应数据是XML/JSON/HTML的话,可以更改为相对应的显示方式,这样更直观。在本例中以浏览器方式显示响应数据的界面如下:
[attach]132017[/attach]
基于模板创建压力测试计划 前面讲述了一个简单但完整的HTTP Web压力测试例子,基本上大多数同一类型的压力测试总有一些共同的元素,为此可以使用模板来创建压力测试计划。 1.选择从模板创建压力测试计划,如下图:
[attach]132020[/attach]


在弹出的对话框中选择”Building a Web Test Plan”,如下图所示:
[attach]132021[/attach]
点击”Create”即可基于模板的压力测试项目的创建,如下图所示:
[attach]132022[/attach]
然后根据我们自己的需要增加或删除一些元素,然后进行相应设置即可进行压力测试了。 使用JMeter对数据库进行压力测试 前面讲过JMeter支持多种压力测试,下面讲一下JMeter对数据库进行压力测试。 1.数据库准备 首先准备好需要进行压力测试的数据库,本次以本人以前学习爬虫时所使用的一个数据,基本信息如下: 数据库版本:mysql-5.1.58 数据库名:netskycn 查询用表名:ty_content(含748007条数据,2.2GB)。 ty_content的创建脚本如下:





  1. CREATE TABLE `ty_content` (
  2.       `Id` INT(11) NOT NULL AUTO_INCREMENT,
  3.       `ArticleId` INT(11) NOT NULL,
  4.       `Content` MEDIUMTEXT NOT NULL,
  5.       `ContentHash` VARCHAR(32) NOT NULL,
  6.       `CreateAt` DATETIME NOT NULL,
  7.       `IsVisible` TINYINT(1) NULL DEFAULT '1',
  8.       PRIMARY KEY (`Id`),
  9.       UNIQUE INDEX `IDX_ContentHash` (`ContentHash`),
  10.       INDEX `IDX_ArticleId` (`ArticleId`)
  11.   )
  12.   COLLATE='utf8_general_ci'
  13.   ENGINE=MyISAM;
复制代码

JDBC驱动准备 JDBC驱动可从各数据库厂商官网下载,这里本人已下载好的MySQL JDBC驱动mysql-connector-java-5.1.36.jar,将其复制到JMeter目录下的lib目录中。
  创建TestPlan 可以基于模板创建JDBC Test Plan,如下图所示:
[attach]132023[/attach]

修改配置信息 1.首先添加CSV Data Set Config,并且准备MySQL_JDBC_ArticleID.csv文件,MySQL_JDBC_ArticleID.csv内容如下:
[attach]132024[/attach]
 在这个文件中共有6964条数据,它来自于ty_content表中ArticleId的统计(不含重复数据)。 CSV Data Set Config的配置信息如下:
  JDBC Connection Configuration配置信息如下:

  Thread Group配置信息如下:

  JDBC Request配置信息如下:

  最终测试效果:

  总结
  本篇讲述了如何使用JMeter来进行Web和数据库压力测试,为快速创建压力测试计划,可给予模板进行创建。可以看出一个JMeter压力测试计划必须包含如下元素:ThreadGroup、与压力测试计划对应的Request(如HTTP Request或JDBC Request)、Listener(可以根据需要添加多个Listener),并且为了减小缓存的影响,我们介绍了如何利用csv文件将测试中的参数信息保存起来。 本文未尽之处就是如何对需要身份验证的Web网站进行压力测试,对于带有验证码的需要在压力测试期间暂时禁用验证码功能。另外对于多种验证方式,所使用的方法也有区别,在这期间我试过针对性地对一些需要身份验证的网站建立压力测试计划,但没发现太多共性的东西,故在本篇中没有讲述这方面的内容,等后期有时间再总结整理这方面的内容。












欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2