6. 建立数据库测试计划
如何创建一个基本的测试计划来测试数据库服务器。您将创建 50 个用户,每个用户向数据库服务器发送 2 个 SQL 请求,执行测试100次。因此,请求总数为(50 个用户)x(2 个请求)x(重复 100 次)= 10'000 个 JDBC 请求。要构建测试计划,您将使用以下元素:线程组、JDBC 请求、摘要报告。
6.1 添加用户
1) 添加一个线程组元素。线程组告诉 JMeter 你想模拟的用户数量,用户应该多久发送一次请求,以及他们应该发送多少请求。
继续添加 ThreadGroup 元素,首先选择 Test Plan,单击鼠标右键以获取Add菜单,然后选择 Add → ThreadGroup。
您现在应该在测试计划下看到线程组元素。如果您没有看到该元素,则通过单击“测试计划”元素展开“测试计划”树。
2) 接下来,您需要修改默认属性。如果尚未选择树中的线程组元素,请选择它。您现在应该在 JMeter 窗口的右侧看到线程组控制面板(参见下面的图 6.1)
图 6.1。具有默认值的线程组
3) 首先为我们的线程组提供一个更具描述性的名称。在名称字段中,输入JDBC Users。
您将需要一个有效的数据库、数据库表和对该表的用户级访问权限。在此处显示的示例中,数据库是“ cloud ”,表名是“ vm_instance ”。
接下来,将用户数增加到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 用户线程组
6.2 添加 JDBC 请求
首先选择JDBC用户元素。单击鼠标右键以获取Add菜单,然后选择Add → Config Element → JDBC Connection Configuration。
设置以下字段(假设我们将使用名为“cloud”的 MySQL 数据库):
屏幕上的其他字段可以保留为默认值。
JMeter使用控制面板中指定的配置设置创建数据库连接池。该池在 JDBC 请求中的“变量名”字段中引用。可以使用几个不同的 JDBC 配置元素,但它们必须具有唯一的名称。每个 JDBC 请求都必须引用一个 JDBC 配置池。多个 JDBC 请求可以引用同一个池。
图 6.3。JDBC 配置
然后,选择这个新元素来查看它的控制面板(见图 6.4)。
图 6.4。JDBC 请求
在我们的测试计划中,我们将发出两个 JDBC 请求。第一个是“VM Running”的虚拟机实例,第二个是“Expunging”虚拟机实例。这些如下图所示。
JMeter 按照请求顺序发送请求。
首先编辑以下属性(参见图 6.5):
图 6.5。第一个 SQL 请求的 JDBC 请求
接下来,添加第二个 JDBC 请求并编辑以下属性(参见图 6.6):
图 6.6。第二个请求的 JDBC 请求
6.3 添加监听器以查看/存储测试结果
您需要添加到测试计划的最后一个元素是Listener。此元素负责将 JDBC 请求的所有结果存储在文件中并显示结果。
选择JDBC Users元素并添加一个摘要报告侦听器(添加 → 侦听器 → 摘要报告)。
图 6.7。图表结果监听器