jMeter - 监控测试计划
在本章中,我们将讨论如何使用 JMeter 创建测试计划来监控 Web 服务器。监控测试的用途如下 −
监控器对于压力测试和系统管理非常有用。
与压力测试一起使用时,监控器可提供有关服务器性能的其他信息。
监控器可让您更轻松地查看服务器性能与客户端响应时间之间的关系。
作为系统管理工具,监控器可让您轻松地从一个控制台监控多个服务器。
我们需要 Tomcat 5 或更高版本进行监控。出于测试目的,我们将监控 Tomcat 7.0.42 服务器。您可以测试任何支持 Java 管理扩展 (JMX) 的 servlet 容器。让我们编写一个测试用例来监控 Tomcat 服务器。让我们首先设置我们的 tomcat 服务器。
设置 Tomcat 服务器
我们首先打开 Tomcat 服务状态。为此,请编辑用户配置文件 <TOMCAT_HOME>/conf/tomcat-users.xml。此文件包含一个 tomcat-users 部分(已注释),如下所示 −
<tomcat-users> <!-- <role rolename = "tomcat"/> <role rolename = "role1"/> <user username = "tomcat" password = "tomcat" roles = "tomcat"/> <user username = "both" password = "tomcat" roles = "tomcat,role1"/> <user username = "role1" password = "tomcat" roles = "role1"/> --> </tomcat-users>
我们需要修改此部分以添加管理员角色、manager、manager-gui 并分配用户"admin"。修改后的文件如下 −
<tomcat-users> <role rolename = "manager-gui"/> <role rolename = "manager-script"/> <role rolename = "manager-jmx"/> <role rolename = "manager-status"/> <user username = "admin" password = "admin" roles = "manager-gui,manager-script,manager-jmx,manager-status"/> </tomcat-users>
现在启动 Tomcat 服务器 <TOMCAT_HOME>/bin/startup.sh(Linux)和 <TOMCAT_HOME>/bin/startup.bat(Windows)。启动后,通过在浏览器中输入以下链接 − 来检查 Tomcat 监管是否有效
http://localhost:8080/manager/status?XML=true
浏览器中出现身份验证窗口。输入关联的 Tomcat 登录名和密码(在我们的例子中是管理员)。然后,浏览器会显示 Tomcat 的执行状态,如下所示 −

从上面的截图中,我们可以注意到一些事情 −
在 URL 中,请注意 XML = true(注意区分大小写)可以清晰显示 JMeter 运行所需的监控 Tomcat。
还请注意,默认有两个连接器。 AJP 连接器通常与 mod_jk Apache HTTPD 前端模块和 HTTP 连接器配合使用,后者是通过 8080 端口直接访问 Tomcat 的常用连接器。
编写 JMeter 测试计划
让我们通过编写测试计划来监控 Tomcat 服务器 −
重命名测试计划
单击 /home/manisha/apache-jmeter2.9/bin/jmeter.sh 打开 JMeter 窗口。
单击测试计划节点。
按照下一步中的说明添加线程组。
添加线程组
右键单击 测试计划 → 添加 →线程(用户)→ 线程组。线程组将添加到测试计划节点下。
将循环计数更改为永远(或某个大数字),以便生成足够的样本。

HTTP 授权管理器
通过选择添加 → 配置元素 → HTTP 授权管理器将 HTTP 授权管理器添加到线程组元素。此元素管理浏览器请求的身份验证以查看 Tomcat 服务器状态。
选择 HTTP 授权管理器。
编辑以下详细信息 −
用户名 − admin(取决于 tomcat-users.xml 文件中的配置)
密码 − admin(取决于 tomcatusers.xml 文件中的配置)
其他字段留空。

添加采样器 - HTTP 请求
现在我们已经定义了用户,是时候定义他们将要执行的任务了。我们添加 HTTP 请求元素。
右键单击鼠标按钮以获取添加菜单。
选择添加 → 采样器 → HTTP 请求。
然后,在树中选择 HTTP 请求元素。
如下图所示编辑以下属性 −
在此元素中输入以下详细信息 −
名称 −服务器状态
服务器名称或 IP − localhost
端口 − 8080
路径 − /manager/status
参数 − 添加一个大写名为"XML"的请求参数。 给它一个小写的"true"值。
可选任务 −选中采样器底部的"用作监视器"。

添加常量计时器
要定期请求服务器的状态,请添加一个常量计时器,该计时器将允许每次请求之间有一个时间间隔。通过选择"添加 → 计时器 → 常量计时器",将计时器添加到此线程组。
在线程延迟框中输入 5000 毫秒。通常,使用短于 5 秒的间隔可能会给服务器增加压力。在生产环境中部署监视器之前,找出可接受的间隔。

添加监听器
您需要添加到测试计划中的最后一个元素是监听器。我们添加了两种类型的监听器。一种将结果存储在文件中,另一种显示结果的图形视图。
选择线程组元素。
添加简单数据写入器监听器添加 → 监听器 →简单数据写入器。
指定输出文件的目录和文件名(在我们的例子中,它是 /home/manisha/work/sample.csv)

让我们通过选择测试计划元素添加 → 监听器 → 监控结果来添加另一个监听器。

运行测试计划
现在将上述测试计划保存为 monitor_test.jmx。使用运行 → 执行此测试计划启动选项。
查看输出
结果将保存在 /home/manisha/work/sample.csv 文件中。您还可以在监控结果监听器中看到图形结果,如下图所示。


请注意,图表两侧都有标题。左侧是百分比,右侧是死/健康。如果内存线快速上升和下降,则可能表示内存抖动。在这些情况下,最好使用 Borland OptimizeIt 或 JProbe 对应用程序进行分析。您想要看到的是负载、内存和线程的常规模式。任何不稳定的行为通常表明性能不佳或存在某种错误。