7.创建一个数据库测试计划

7.创建一个数据库测试计划

在这一部分,你将学会如何去创建一个基础的测试计划来测试一个数据库服务器。你会创建10个用户来给数据库服务器发送2次SQL请求。同样,你也可以让用户运行他们的测试三次。这样总的JDBC请求数量就是(10用户)*(2次请求)*(重复3次)=60。要构建这个测试计划,你将会用到下面的元件:线程组,JDBC请求,图形结果。

这个例子使用了MySQL数据库驱动。要使用这个驱动,它所包涵的.jar文件必须复制到../lib/directory下(详情参见JMeter's ClassPath)。另外我们期望在运行这个测试计划的时候有的堆栈跟踪数量。

7.1 添加用户

处理每个JMeter测试计划的第一步就是添加 线程组元件。这个线程组会告诉JMeter你想要模拟的用户数量,用户应该发送请求的频率和应该发送的数量。下一步来添加一个线程组:首先选择这个测试计划,用鼠标右键点击然后在得到的菜单中选择添加--> 线程组。这时你应该看到这个线程组已经在测试计划下面了,如果没有看到,就点击测试计划元件展开这个测试计划树。

下一步,你需要修改这些默认的属性。如果你还没有选择线程组元件,则从测试计划树型结构中选择它。这时你应该看到JMeter窗口右边的线程组控制面板了(见图7.1)。

首先给这个线程组起一个有意义的名字。在名称域中, 输入JDBC Users

你将需要一个可用的数据库,数据库表,和表的用户使用权限。在这个例子中,数据库是'mydb',表名是'Stocks'。

接下来,将用户的数量(即threads)增加不10。在下一个the Ramp-Up Period文本域中 , 使用默认值为0。这个属性表示每个用户启动的迟延时间。例如,如果你输入Ramp-Up Period 为5秒,JMeter将会在五秒结束前完成 启动所有的用户。所以,如果你有五个用户并且Ramp-Up Period为五秒,那么开始用户的延迟就是1秒。(5个用户 / 5秒 = 1 用户每秒). JMeter将会立即启动你所有的用户,如果你设置其值为0。

最后,取消标记为"永远"的复选框选择并设置循环次数为2。 这个属性表示你的测试的重复次数。如果你设置为1,JMeter将你的测试只运行一次。 要让JMeter不断的运行,你要选择"永远"这个复选框。

在大多数的应用程序中,你需要手动来接受你在控制面板中所做的修改。但在JMeter中,如果你做了修改,控制面板可以自动的接受。如果你修改的元件的名字,树型菜单自动更新当你离开控制面板后。 (例如, 当你选择另外一个树元件。)

图 7.2 为完整的JDBC Users线程组。

7.2 添加JDBC请求

我们已经定义了用户,现在要定义他们的行为了。在这一部分,我们将会详细说明JDBC请求。

首先选择JDBC用户元件,右键点击,在弹出的菜单中选择Add --> Config Element --> JDBC Connection Configuration。然后,选择这个新的元件来显示它的控制面板(见图7.3)。

设定下面的文本域的值(我们这里假定用一个本地的MySQL数据库名为test)。

  • Variable name bound to pool. 这需要能够唯一标识这个配置。
  • Database URL: jdbc: mysql://localhost:3306/test
  • JDBC Driver class: com.mysql.jdbc.Driver
  • Username: guest
  • Password: password for guest

剩下的文本域我们可以保留默认的值。

Figure 7.3. JDBC Configuration

再次选择JDBC用户元件。右键点击,并在弹出的菜单中选择Add --> Sampler --> JDBC Request。然后,选择一个新的元件来显示其控制面板(见图7.4)。

Figure 7.4. JDBC Request

在我们这个测试计划中,我们将发送2个JDBC请求。第一个是向Eastman Kodak stock,第二个是向Pfizer stock(很显然需要改变这些例子来适合你的特殊的数据库)。下面的插图文字说明。

JMeter发送请求的次序就是你向树中添加它们的次序。

首先修改下面的属性值勤(见图7.5):

  • 修改名字Name为"Kodak"
  • 输入Pool Name:MySQL(在配置元件里面一样)
  • 输入SQL Query String(数据库查讯字符串)

Figure 7.5. JDBC Request for Eastman Kodak stock

然后,添加第二个JDBC请求并编辑正面的属性(见图7.6):

  • 修改名字Name为"Pfizer"
  • 输入SQL Query 语句

Figure 7.6. JDBC Request for Pfizer stock

7.4添加一个监听器浏览/保存测试结果

你需要添加到你测试计划的最后元件是一个监听器。这个元件责任是储存所有你的JDBC请求结果到文件,并且展示一个可视数据模型。

选择JDBC Users元件,添加一个Graph Results监听器(Add --> Listener --> Graph Results)。

Figure 7.7. Graph results Listener

7.5保存测试计划

虽然它不是需要的,但是我们推荐你在运行前保存测试计划到一个文件。为了保存测试计划,从File菜单选择Save Test Plan(使用最新版本,它不再需要首先选择测试计划元件)。

JMeter允许你保存这个测试计划树或者其中一部分。为了仅保存在测试计划树上的特殊"分支",选择在树中用来启动"分支"的测试计划元件,然后右击在菜单项中选择"Save"。或者,选择合适测试计划元件,然后从Edit菜单选择Save。

7.6 运行测试计划

从Run菜单,选择Run。

如果你测试正在运行,JMeter在右手上方的角落点燃一个绿正方形显示。当所有测试停止,那个方块变成灰色。即使你选择了"stop",绿光依然会继续停留,知道所有测试都已经停止。

7.7 JDBC设置

不同的数据库和JDBC驱动程序需要不同的JDBC设置。JDBC执行的提供者来定义数据库URL和数据库驱动程序类。

下面是一些可能的设置。要得到详细的说明请看JDBC驱动程序文档。

Datebase Driver class Database URL
MySQL com.mysql.jdbc.Driver jdbc:mysql://host:port/{dbname}
PostgreSQL org.postgresql.Driver jdbc:postgresql:{dbname}
Oracle oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:user/pass@//host:port/service
Ingres (2006) ingres.jdbc.IngresDriver jdbc:ingres://host:port/db[;attr=value]
上面的可能不正确,请查看相应的JDBC驱动程序文档。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章