jmeter教程2-mysql测试

使用mysql自带的mysqlslap工具测试数据库的性能,命令行的方式并不太友好,这里我们仍然介绍下jmeter来测试mysql。Jmeter使用了JDBC技术,使得可以测试任何支持JDBC技术的数据库,包括mysql,oracle,pgsql,Mssql等。我们分步演示下jmeter测试mysql的步骤。
(1)    仍然是新建测试计划,在其下新建一个线程组。并设置并发为50,不循环。
(2)    配置JDBC。在线程组上点击右键,选择添加→配置元件→JDBC Connection Configuration。配置各项参数,其中Variable Name:可以随便填写,此处填写mysql。最主要的配置是Database  Connection Configuration.
Database URL:JDBC格式的数据库连接,每种数据库的URL都有所区别。Mysql的如下,jdbc:mysql://localhost:3306/test,test为数据库名称。
JDBC Driver class:JDBC驱动的名称
Username:数据库用户名
Password:数据库密码
其它配置项保持默认即可。
 2011-10-25_035256.png
添加了JDBC参数后,我们还需要添加mysql的JDBC驱动。因为jmeter并没有自带这一jar包。可以到mysql官方网站找到mysql的JDBC驱动,在“测试计划”中添加class path。如图所示:
 2011-10-25_041057.png
如果忘了这一步的话,将导致运行失败。
(3)添加JDBC请求。需要修改的参数包括:

阅读剩余部分...

jmeter教程1-服务器端脚本测试

    在对服务器进行压力测试时,我们经常使用apache自带的工具ab。Ab虽然使用方法很简单,但功能也弱一些,对HTTP请求进行压力和性能测试,除了ab外,还有一款更专业的工具,叫做Jmeter..Jmeter是apache下的一个开源项目,使用java进行编写,是一个功能强大的性能测试工具,除了可以测试HTTP请求外,还能对FTP请求,数据库连接(使用JDBC)等进行测试,并且其HTTP测试的功能更强大,更有好的支持GET/POST定制。
先到官方网站下载最新版本:http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi,目前最新版是jakarta-jmeter-2.5.1。下载后,直接解压,运行bin/jmeter.bat即可。在使用jmeter前,先来了解几个术语:

1、线程组:测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“测试计划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。

2、取样器(Sampler):可以认为所有的测试任务都由取样器承担,有很种,如:HTTP 请求。

3、断言:对取样器返回的请求结果给出判断,是否正确。

4、monitor(监你妈的TG的河蟹听):它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

我们试用一下:
(1)    建立测试计划
测试计划描述了执行测试过程中JMeter的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、monitor、定时器(Timer)、断言(Assertions)等。打开JMeter时,它已经建立一个默认的测试计划,一个JMeter应用的实例只能建立或者打开一个测试计划。
现在我们开始填充一个测试计划的内容,这个测试计划向一个文件发出POST请求,我们需要JMeter模拟50个请求者(也就是50个线程),每个请求者连续请求两次。

阅读剩余部分...

用mysqlslap进行mysql压力测试

mysqlslap是一个mysql官方提供的压力测试工具,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap –help可以获得可用的选项。
下面我们就来看看一些比较重要的参数:
--defaults-file,配置文件存放位置
–create-schema,测试的schema,MySQL中schema也就是database
-concurrency,并发数
--engines,测试引擎,可以有多个,用分隔符隔开。
--iterations,迭代的实验次数
--socket,socket,文件位置
--debug-info,打印内存和CPU的信息
--only-print,只打印测试语句而不实际执行
--auto-generate-sql,自动产生测试SQL
--auto-generate-sql-load-type,测试SQL的类型。类型有mixed,update,write,key,read。
--number-of-queries,执行的SQL总数量
–number-int-cols,表内int列的数量
--number-char-cols,表内char列的数量
--query=name,使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。
mysqlslap -a -concurrency=50 --number-of-queries 300 -T -hlocalhost -uroot -p123
此处表示自动测试,mysql将自动创建数据库,自动insert以及读取,给出最终的查询结果,其查询结果可能如下:
Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.087 seconds
        Minimum number of seconds to run all queries: 0.087 seconds
        Maximum number of seconds to run all queries: 0.087 seconds
        Number of clients running queries: 200
        Average number of queries per client: 1
你也可以指定自己的SQL语句,使用很简单,这里就不举例了。注意下--(两个下划线)和-(一个下划线)这样的参数形式就可以了。例子以及展示了其用法。

    Page :
  1. 1