6. 构建数据库测试计划¶
在本节中,您将学习如何创建一个基本的 测试计划来测试数据库服务器。您将创建 50 个向数据库服务器发送 2 个 SQL 请求的用户。此外,您将告诉用户运行他们的测试 100 次。因此,请求总数为(50 个用户)x(2 个请求)x(重复 100 次)= 10'000 个 JDBC 请求。要构建测试计划,您将使用以下元素: 线程组、 JDBC 请求、摘要报告。
6.1 添加用户¶
您想要对每个 JMeter 测试计划执行的第一步是添加一个 线程组元素。线程组告诉 JMeter 你想模拟的用户数量,用户应该多久发送一次请求,以及他们应该发送多少请求。
继续添加 ThreadGroup 元素,首先选择 Test Plan,单击鼠标右键以获取Add菜单,然后选择 。
您现在应该在测试计划下看到线程组元素。如果您没有看到该元素,则通过单击“测试计划”元素展开“测试计划”树。
接下来,您需要修改默认属性。如果尚未选择树中的线程组元素,请选择它。您现在应该在 JMeter 窗口的右侧看到线程组控制面板(参见下面的图 6.1)
首先为我们的线程组提供一个更具描述性的名称。在名称字段中,输入JDBC Users。
接下来,将用户数增加到50。
在下一个字段 Ramp-Up Period 中,保留10 秒的值。该属性告诉 JMeter 在启动每个用户之间延迟多长时间。例如,如果您输入 10 秒的 Ramp-Up Period,JMeter 将在 10 秒结束时完成启动所有用户。因此,如果我们有 50 个用户和 10 秒的 Ramp-Up Period,那么启动用户之间的延迟将为 200 毫秒(10 秒 / 50 个用户 = 每个用户 0.2 秒)。如果您将该值设置为 0,那么 JMeter 将立即启动您的所有用户。
最后,在 Loop Count 字段中输入值100 。此属性告诉 JMeter 重复测试多少次。要让 JMeter 重复运行您的测试计划,请选中 Forever 复选框。
有关已完成的 JDBC 用户线程组,请参见图 6.2。
6.2 添加 JDBC 请求¶
现在我们已经定义了我们的用户,是时候定义他们将要执行的任务了。在本节中,您将指定要执行的 JDBC 请求。
首先选择JDBC 用户元素。单击鼠标右键以获取Add菜单,然后选择 。然后,选择这个新元素来查看它的控制面板(见图 6.3)。
设置以下字段(假设我们将使用名为“云”的 MySQL 数据库):
- 绑定到池的变量名称(此处为:myDatabase )。这需要唯一标识配置。JDBC 采样器使用它来识别要使用的配置。
- 数据库地址:jdbc:mysql://ipOfTheServer:3306/cloud
- JDBC驱动类:com.mysql.jdbc.Driver
- 用户名:数据库的用户名
- 密码:用户名的密码
屏幕上的其他字段可以保留为默认值。
JMeter 使用控制面板中指定的配置设置创建数据库连接池。该池在 JDBC 请求中的“变量名”字段中引用。可以使用几个不同的 JDBC 配置元素,但它们必须具有唯一的名称。每个 JDBC 请求都必须引用一个 JDBC 配置池。多个 JDBC 请求可以引用同一个池。
再次选择 JDBC Users 元素。单击鼠标右键以获取Add菜单,然后选择
。然后,选择这个新元素来查看它的控制面板(见图 6.4)。在我们的测试计划中,我们将发出两个 JDBC 请求。第一个是选择所有“正在运行”的虚拟机实例,第二个是选择“正在删除”虚拟机实例(显然您应该将这些更改为适合您特定数据库的示例)。这些如下图所示。
首先编辑以下属性(参见图 6.5):
- 将名称更改为“正在运行的 VM ”。
- 输入池名称:“ myDatabase ”(与配置元素中的相同)
- 输入 SQL 查询字符串字段。
- 使用“正在运行”值输入参数值字段。
- 使用“ VARCHAR ”输入参数类型。
接下来,添加第二个 JDBC 请求并编辑以下属性(参见图 6.6):
- 将名称更改为“ VM Expunging ”。
- 将 Parameter values 的值更改为“ Expunging ”。