创建一个数据库测试计划
在这一部分,你将学会如何去创建一个基础的测试计划来测试一个数据库服务器。你会创建 10 个用户来给数据库服务器发送 2 次 SQL 请求。同样,你也可以让用户运行他们的测试三次。这样总的 JDBC 请求数量就是(10用户)*(2 次请求)*(重复 3 次)=60。要构建这个测试计划,你将会用到下面的元件:线程组,JDBC 请求,图形结果。
添加用户
处理每个JMeter 测试计划的第一步就是添加 线程组元件。这个线程组会告诉JMeter 你想要模拟的用户数量,用户应该发送请求的频率和应该发送的数量。下一步来添加一个线程组:首先选择这个测试计划,用鼠标右键点击然后在得到的菜单中选择添加--> 线程组。这时你应该看到这个线程组已经在测试计划下面了,如果没有看到,就点击测试计划元件展开这个测试计划树。
下一步,你需要修改这些默认的属性。如果你还没有选择线程组元件,则从测试计划树型结构中选择它。这时你应该看到 JMeter 窗口右边的线程组控制面板了(见图 7.1)。
首先给这个线程组起一个有意义的名字。在名称域中, 输入 JDBC Users
接下来,将用户的数量(即 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 不断的运行,你要选择"永远"这个复选框。
图 7.2 为完整的 JDBC Users 线程组。
添加 JDBC 请求
我们已经定义了用户,现在要定义他们的行为了。在这一部分,我们将会详细说明 JDBC 请求。
首先选择 JDBC 用户元件,右键点击,在弹出的菜单中选择 Add --> Config Element --> JDBC Connection Configuration。然后,选择这个新的元件来显示它的控制面板(见图 7.3)。
设定下面的文本域的值(我们这里假定用一个本地的 MySQL 数据库名为 test)。
剩下的文本域我们可以保留默认的值。
Figure 7.3. JDBC Configuration
再次选择 JDBC 用户元件。右键点击,并在弹出的菜单中选择 Add --> Sampler --> JDBC Request。然后,
选择一个新的元件来显示其控制面板(见图 7.4)。
Figure 7.4. JDBC Request
在我们这个测试计划中,我们将发送 2 个 JDBC 请求。第一个是向 Eastman Kodak stock,第二个是向 Pfizer stock(很显然需要改变这些例子来适合你的特殊的数据库)。下面的插图文字说明。
首先修改下面的属性值勤(见图 7.5):
Figure 7.5. JDBC Request for Eastman Kodak stock
然后,添加第二个 JDBC 请求并编辑正面的属性(见图 7.6):
Figure 7.6. JDBC Request for Pfizer stock
添加一个监听器浏览/保存测试结果
你需要添加到你测试计划的最后元件是一个监听器。这个元件责任是储存所有你的 JDBC 请求结果到文件,并且展示一个可视数据模型。
选择 JDBC Users 元件,添加一个 Graph Results 监听器(Add --> Listener --> Graph Results)。
Figure 7.7. Graph results Listener
保存测试计划
虽然它不是需要的,但是我们推荐你在运行前保存测试计划到一个文件。为了保存测试计划,从 File 菜单选
择 Save Test Plan(使用最新版本,它不再需要首先选择测试计划元件)。
运行测试计划
从 Run 菜单,选择 Run。
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] |
更多大厂软件测试干货内容点击如下链接地址获取:
大厂Jmeter高级性能测试项目实战
大厂软件测试全栈系列干货