• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

测试您的DB2数据库:用JMeter测量性能

发布: 2009-3-16 10:32 | 作者: 不详 | 来源: 测试时代采编 | 查看: 58次 | 进入软件测试论坛讨论

领测软件测试网



在下一个屏幕中(参见图 3),您可以定义测试中所要包含的线程或模拟用户的数量。等候周期(Ramp-Up Period)指定了 JMeter 在向数据库暴露模拟用户之前应当等待的时间。例如,如果我们有 30 个模拟用户,等候周期为15秒,那么我们就会每秒向数据库暴露 2 个用户(30 个用户/15 秒)。如果将等候周期设置为 0,JMeter 会自动一次启动所有模拟用户。循环计数(Loop Count)指定了 JMeter 要重复测试的次数。在这个屏幕中,还可以修改我们的线程组名称。接下来按图 3所示输入设置,这将为我们提供 30 个同时启动的用户。该测试将运行 100 次。


图 3. 线程组的设置
 


与数据库对话

现在,我们将指定如何与 DB2 UDB 通信。我们要以 JDBC 请求的形式与 DB2 UDB 进行通信。右击刚才建立的线程组(DB2 Test),选择Add => Sampler => JDBC Request。


图 4. 设置 JDBC 连接

然后,您将看到一个屏幕,我们可以在其中设置一些只与 DB2 有关的信息,这样才能与我们的 DB2 数据库进行对话。这些信息包括:JDBC URL、JDBC 驱动程序,以及我们的用户名和口令。在这个屏幕上, 我们还可以指定有关连接池的信息,以及想要应用到数据库上的 SQL 查询。

接下来,我们使用图 5所示的值进行测试。对于那些不太熟悉连接池的读者来说,连接池就是一组数据库连接的维护,以便应用程序重复使用。数据库连接池在 Web 环境中很常见,因为 Web 用户连接、断开连接非常频繁。在数据库世界中,获得数据库连接是一项昂贵的操作。我们必须建立连接、维持连接,然后在操作完成的时候断开连接。利用 JMeter,我们可以分析连接池的优势。


图 5. 指定数据库的连接信息
 

用监听器监听结果

这时,我们真正定义了一个 JMeter 测试,它将测试我们的 DB2 数据库。此时我们面临的问题是没有办法看到测试结果。为了解决这个问题,请右击JDBC Request,然后选择Add => Listener => Graph Results,如下图所示:


图 6. 指定图形化结果
 

把您的脚放在 JMeter 的踏板上

现在是启动 JMeter 测试的时候了。从主菜单中选择Run,然后选择Start,如图 7所示。


图 7. 启动测试

请注意在屏幕右上角闪亮的屏幕区域。这个区域表明测试正在运行。在这个时候,您应当看到,图形被有关信息填充,信息的内容是执行指定查询所需要的时间(平均时间)(参见图 8)。


图 8. 进行测试时以图形方式显示结果

您可能会考虑采用更多并发用户(线程组中的线程),来查看增加用户负载对于执行相同查询的平均时间的影响。您可能要给查询所涉及的字段添加索引,然后实际查看索引为具体数据库环境带来的好处。

JMeter 允许您通过使用File => Save Test Plan保存测试计划,从而指定保存 JMeter 测试计划的位置。

JMeter 真的在工作吗?

不幸的是,JMeter 的错误报告功能不那么强大。实际上,在我使用这个工具的时候,我以为错误报告功能起作用,而实际上它没有。因此,您应当考虑使用断言(assertions)特性。断言允许 JMeter 用户审核数据库服务器的响应,并“断言”响应中确实存在某项数据。

在我们进行断言之前,需要知道我们想从查询中得到什么结果。我们可以在命令行处理器中运行查询,得到我们想要的结果,如图 9所示。


图 9. 示例查询

要添加断言,需要右击JDBC Request,然后选择Add => Assertions => Response Assertion,如图 10所示。


图 10. 添加断言

您可以在该屏幕中添加文本断言。单击Add,然后在Patterns to Test字段中添加文本Col1Test-20015,因为我们知道在返回结果中应当包含该文本(参见图 11)。


图 11. 将文本添加到测试中

现在,我们要添加一个监听器,以监听响应断言。右击JDBC Request,然后选择Add => Listener => Assertion Results,如图 12所示。


图 12. 添加断言监听器

这样您就可以看到断言结果屏幕(图 13),您甚至可以在该屏幕中指定一个数据文件,把断言数据写入数据文件。


图 13. 断言结果屏幕

现在,当您运行测试对象的时候,您应该看到用否定或肯定断言填充的断言结果屏幕,是肯定还是否定则取决于是否满足断言中的条件。

图 14显示的是成功的断言


图 14. 断言测试为肯定时的结果

如果修改断言,查找Col1Test-40000(我们知道数据库数据中没有这个文本),那么我们将得到类似图 15所示的屏幕。


图 15. 断言测试结果为否定时的结果
 

结束语

可以利用 JMeter 在系统、服务器和网络上模拟繁重的负载。本文中,我们用 JMeter 分析了 DB2 数据库的查询性能。我们只触及到 JMeter 功能中很表面的部分。可以用 JMeter 来建立相当复杂却很有意义的测试计划。JMeter 会以图形和活动曲线的形式,快速提供关于系统性能的可视反馈。您可以用 JMeter 提供的数据来确保能够在调整您的企业运作的情况下获得最佳性能。

致谢

感谢 IBM 多伦多实验室的 Larry Menard 和 Robert,感谢他们在 JDBC 上的专长,以及他们对本文的帮助。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网