重新启动JMeter,向测试计划添加Java Request元件,并从下拉菜单中选择mytest.EJBTest。缺省情况下,JMeter提供的是“SleepTest”和“JavaTest”。现在,我们可以向测试计划添加线程组、循环和监听器并运行测试计划。
测试数据库
Jmeter所支持的另一个功能是评价数据库服务器的性能。用户可以使用软件提供的JDBC Request元件,也可以使用脚本或Java类来创建自己的测试。例如,使用一些与前面类似的示例可以测试存储过程的调用。许多数据库优化技术都可以使用,包括使用特定供应商优化(如查询的并行处理),使用联结或索引。此外,当用多个boolean评价创建查询时,数据组织知识很有用。在处理大量数据时,应用程序中的数据库和查询优化是特别关键的,JMeter是一个可以在这类评价中提供某些评测的工具。例如,可以在数据或查询优化前后执行性能或负载测试并对结果进行比较。
我们通过创建MySQL实例的测试计划来演示样本数据库性能测量计划是如何工作的。首先,从MySQL网站下载JDBC驱动程序,并复制到/lib目录以便JMeter可以访问数据库。现在启动JMeter,创建线程组,并设置循环数和相应的线程数。添加JDBC Connection Configuration、JDBC Query Defaults和JDBC Request元件。在这些对话框中,我们需要配置数据库连接和查询。输入数据库URL值,它们的形式类似于:jdbc:mysql://hostname/databaseName,然后为JDBC Driver Class输入com.mysql.jdbc.Driver。针对这个试验,我们创建了数据库customers,它带有包含下列三个字段的customer表格:名称、地址和帐户。在Query框中键入查询,例如,从客户中选择名称。
为了使结果可视化,可以添加带有响应时间的图表,或者,如果要检验响应是否匹配特定模式,可以添加响应断言。例如,在Response Assertion中添加文本模式“Smith”。在Assertion Result窗口将显示如“Test failed, text expected to contain /Smith/”之类的错误,或者,如果由于设置错误而没有连接,则显示“Response was null”。如果测试成功,将不返回任何内容。除了图表和断言监听器,我们还可以使用Aggregate Report,它以表格的形式显示样本数、平均值、中间值和吞吐量的摘要。
结束语
JMeter是一个十分灵活的工具,它不仅能够测试HTTP服务器,而且还能够对Web services进行负载测试。有经验的开发人员可以编写自己的脚本来模拟或自定义客户端请求,或者为测试结果添加自定义的可视化效果。Web Services和SOAP取样器是JMeter的新功能,希望它们能够随着Web services而发展,在行业和开发人员中获得更广泛的认可。
使用JMeter现有的功能和它所提供的用户界面,可以模拟5个并发线程,以10和5 ms延迟点击服务器。本教程说明了该工具能够用于对Web services的响应时间进行测量的原理。例如,利用JMeter脚本,可以查找客户端的身份认证和授权。所测试的应用程序服务器和JMeter客户端都本地安装在同一个工作站,然而同样的设置也可以用于测试远程服务器。
所得到的结果和图表还不能提供有价值的性能报告;它们只能说明WebLogic Server对Web Services请求响应时间的简单分布。要了解是否实现了优化,应当在优化前后针对两个不同的服务器,或针对客户端线程变量数的不同负载来运行相同的负载测试。换句话说,只有比较的结果才具有实用价值,它能够帮助了解服务器性能,进而基于这些评测做出判断。