建立数据库测试计划(Building a Database Test Plan)


在本节中,将学习如何创建测试数据库服务器一个简单的测试计划。您将创建五十个用户向数据库服务器发送2个SQL请求。并且,使这些用户运行测试100次。所以,请求的总数是(50个用户)x(2个请求)x(重复100次)= 10’000个JDBC请求。要构建测试计划,您将使用以下元素: 线程组, JDBC请求,摘要报告。

此示例使用MySQL数据库驱动程序。要使用此驱动程序,它包含.jar文件(例如mysql-connector-java-XXX-bin.jar) 必须复制到JMeter ./lib 目录(有关详细信息,请参阅JMeter的Classpath)。

1 添加用户(Adding Users)


您要对每个JMeter测试计划执行的第一步是添加一个线程组元件。线程组告诉JMeter您想要模拟的用户数量,用户应发送请求的频率以及应发送的请求数量。 继续添加线程组元件,首先选择测试计划,单击鼠标右键获取 添加 菜单,然后选择 添加  →  线程组。

您现在应该看到“测试计划”下的“线程组”元件。如果没有看到该元件,则通过单击“测试计划”元件,从而展开“线程组”元件。

接下来,您需要修改默认属性。如果尚未选择它,请选择树中的线程组元件。您现在应该在JMeter窗口的右侧部分看到线程组控制面板

首先为我们的线程组提供更具描述性的名称。在名称字段中,输入:JDBC users。

您将需要有效的数据库,数据库表和对该表的用户级访问。在这里显示的例子中, 数据库是“guest_test”,表名是“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将立即启动所有用户。

最后,在循环计数字段中输入值100。此属性告诉JMeter重复测试多少次。要让JMeter循环运行测试计划,请选中“永远”复选框。

在大多数应用程序中,您在控制面板中进行的更改必须点击确定按钮。但是,在JMeter中,控制面板会在您进行更改时自动保存您的更改。如果更改元素了名称,在离开控制面板后(例如,当选择另一个树形元件)时,系统将自动保存您的更改。

2 添加JDBC请求(Adding JDBC Requests)


现在我们已经定义了我们的用户组,现在是定义他们将要执行的任务的时候了。在本节中,您将指定要执行的JDBC请求。

首先选择“JDBC Users”元件。单击鼠标右键获取 “添加” 菜单,然后选择 添加  →  配置元素  →  JDBC Connection Configuration 。然后,查看此控制面板(参见图6.3)。

设置以下字段(这些假设我们将使用名为“cloud”的MySQL数据库):

  • 绑定到池的变量名(这里:myDatabase)。这需要唯一地标识配置。JDBC采样器使用它来标识要使用的配置。
  • 数据库URL:jdbc:mysql://localhost:3306/guest_test
  • JDBC驱动程序类:com.mysql.jdbc.Driver
  • 用户名:数据库的用户名
  • 密码:用户名密码

屏幕上的其他字段可以保留为默认值。

JMeter使用控制面板中指定的配置设置创建数据库连接池。该池在“变量名称”字段中的JDBC请求中引用。可以使用几个不同的JDBC配置元素,但它们必须具有唯一的名称。每个JDBC请求都必须引用JDBC配置池。多个JDBC请求可以引用同一个池。

再次选择JDBC Users元件。单击鼠标右键获取 “添加” 菜单,然后选择添加  →  Sampler  →  JDBC Request。然后,选择此新元件以查看其控制面板。

在我们的测试计划中,我们将做出两个JDBC请求。第一个是选择所有“运行”VM实例,第二个是选择“展开”VM实例(显然,您应该将这些更改为适合您的特定数据库的示例)。这些如下所示。

JMeter按照您将它们添加到树中的顺序发送请求。

首先编辑以下属性:

  • 在Name输入框中输入为:VM Running。
  • Variable Name名称为:’myDatabase’(必须与JDBC Connection Configuration元件中Variable Name的命名保持相同)
  • 输入SQL查询字符串字段。
  • 在 Parameter values 输入框中输入:Running。
  • 在 Parameter types 输入框中输入:VARCHAR。

接下来,添加第二个JDBC请求并编辑以下属性:

  • 在Name输入框中填入:VM Expunging。
  • 在Parameter values输入框中填入:Expunging。

3 添加监听器以查看/存储测试结果(Adding a Listener to View/Store the Test Results)


您需要添加到测试计划中的最后一个元件是 监听器。此元件负责将您的JDBC请求的所有结果存储在文件中并呈现结果。

选择 JDBC Users 元素并添加Summary Report 监听器(“ 添加  →  监听器”  →“ Summary Report” )。

保存测试计划,并使用菜单 Run  →  Start 或 Ctrl + R 运行测试

监听器显示结果。

转载原文:http://www.testclass.net/jmeter/jmeter-doc-06/

Jmeter 建立数据库测试计划的更多相关文章

  1. Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,因此这篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非 ...

  2. Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常 ...

  3. jmeter创建数据库测试计划

    这个例子要:创建50个用户发送2个sql请求到数据库服务器, 也可设置用户重复执行100次,这样总的请求数=50*2*100 用到以下元素:thread group / jdbc request / ...

  4. JMeter 系列之—-02 创建数据库测试计划

    Jmeter创建数据库测试计划,包括如下步骤: 1. 添加数据库jar包 使用不同的数据库,要引入不同的jar包.主要有两种方式: 方式1:直接将jar包复制到jmeter的lib目录 方式2:通过测 ...

  5. Jmeter建立一个扩展LDAP测试计划

    Jmeter建立一个扩展LDAP测试计划 添加用户 第一步你想做的每一个JMeter测试计划是添加一个线程组元素. 线程组告诉JMeter的用户数量你想模拟,用户应该发送的次数 请求,他们应该发送的请 ...

  6. 使用JMeter创建数据库(Mysql)测试

    我的环境:MySQL:mysql-essential-5.1.51-win32 jdbc驱动:我已经上传到csdn上一个:http://download.csdn.net/source/3451945 ...

  7. Jmeter之数据库性能测试

    公司的**产品急待上线,但查询订单操作响应很慢,为了准确定位问题,特对几个大数据查询语句进行性能测试. 环境介绍:数据库用的MYSQL,采用分布式布置,本次单压测一台数据库服务器,查询待支付订单.待消 ...

  8. jmeter 获取数据库表数据作为参数

    jmeter - 获取数据库表数据作为参数 在jmeter中使用数据库表数据首先需要设置数据库连接,然后在创建JDBC取样器 1.创建配置元件 JDBC Connection Configuratio ...

  9. jmeter操作数据库,分布式,在Linux上运行

    jmeter操作数据库: 1.在测试计划中导入数据库jar包 2.添加链接数据库信息 3.mysql:jdc:mysql://192.168.1.116:3307/bugfree?allowMulti ...

随机推荐

  1. android虚拟机的垃圾收集

    Dalvik :http://zh.wikipedia.org/wiki/Dalvik%E8%99%9A%E6%8B%9F%E6%9C%BA ART :http://source.android.co ...

  2. Charles网络工具

    Charles 是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析. Charles 通过将自己设置成系统的网络访问代理服务器,使 ...

  3. php CI框架输出空行问题排查

    今天在使用 curl 命令行工具调试一个功能时,发现输出的内容总是会在最开始莫名其妙的多一行空行: 项目框架是 php 的 CodeIgniter,感觉这种问题在网上不好查找,因为可以确定这个是业务出 ...

  4. UnicodeEncodeError:'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256)

    Scrapy爬虫向数据库写入数据时报错: UnicodeEncodeError:'latin-1' codec can't encode characters in position 0-1: ord ...

  5. Selenium WebDriver之JavaScript

    WebDriver提供了方法来同步/异步执行JavaScript代码,这是因为JavaScript可以完成一些WebDriver本身所不能完成的功能,从而让WebDriver更加灵活和强大. 本文中所 ...

  6. Centos 7 安装记录

    0.安装中选择最小安装 1.centos7安装图形界面 之前转载过一篇“centos6安装图形界面”的文章,地址见http://my.oschina.net/u/1169607/blog/335304 ...

  7. docker怎么导出导入镜像

    https://blog.csdn.net/dest_dest/article/details/80612231 把某个docker镜像保存到本地文件,命令如下docker save -o 镜像名.t ...

  8. Eclipse中Tomcat Server启动后马上又自动停止报错Address已经使用8005端口 Can't assign requested address (Bind failed)

    Eclipse中Tomcat Server启动后马上又自动停止报错 Can't assign requested address (Bind failed) ,打开Tomcat Server的配置页面 ...

  9. jsp页面都放在web-inf下面说是要防止用户直接访问jsp页面,为么不能直接访问jsp

    为了保护那部分jsp页面,如果没有登录验证,那部分jsp用户可以直接访问,这样很不安全,放在WEB-INF下面,就使得只能WEB-INF文件夹外jsp页面调用里面的jsp,这样来使用,就比如我们有一个 ...

  10. 对java位运算之异或运算的一点记录

    首先,异或运算是,每个位上的数不同为1,相同为0. 其次,对两个数值变量的值进行三次异或运算就等于是交换了两个变量的值. 例如: int a = 4; int b = 10; a = a ^ b; b ...