jMeter - 监控测试计划


在本章中,我们将讨论如何使用 JMeter 创建测试计划来监控网络服务器。监视器测试的用途如下 -

  • 监视器对于压力测试和系统管理很有用。

  • 与压力测试一起使用,监视器提供有关服务器性能的附加信息。

  • 监视器可以更轻松地查看服务器性能和客户端响应时间之间的关系。

  • 作为一种系统管理工具,监视器提供了一种从一个控制台监视多个服务器的简单方法。

我们需要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 登录名和密码(在我们的例子中是 admin)。然后,浏览器显示 Tomcat 的执行状态如下:

Tomcat 管理器状态

从上面的屏幕截图中,我们可以注意到一些事情 -

  • 在 URL 中,请注意XML = true(注意区分大小写)允许清晰显示 JMeter 运行所需的监控 Tomcat。

  • 另请注意,默认有两个连接器。AJP 连接器通常与 mod_jk Apache HTTPD 前端模块和 HTTP 连接器配合使用,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 请求。

  • 然后,选择树中的 HTTP 请求元素。

  • 编辑以下属性,如下图所示 -

  • 在此元素中输入以下详细信息 -

    • 名称- 服务器状态

    • 服务器名称或 IP - localhost

    • 端口- 8080

    • 路径- /manager/status

    • 参数- 添加一个名为“XML”的大写请求参数。给它一个小写的“true”值。

    • 可选任务- 检查采样器底部的“用作监视器”。

监控测试采样器

添加恒定计时器

要定期请求服务器的状态,请添加一个常量计时器,该计时器将允许每个请求之间有一个时间间隔。通过选择“添加”→“计时器”→“常量计时器”,将计时器添加到该线程组。

在“线程延迟”框中输入 5000 毫秒。一般来说,使用短于 5 秒的间隔可能会增加服务器的压力。在生产环境中部署监视器之前,了解可接受的间隔是多少。

监控恒定定时器

添加监听器

您需要添加到测试计划中的最后一个元素是侦听器。我们添加两种类型的侦听器。第一个将结果存储在文件中,第二个显示结果的图形视图。

  • 选择线程组元素。

  • 添加简单数据写入器监听器 添加 → 监听器 → 简单数据写入器。

  • 指定输出文件的目录和文件名(在我们的示例中为 /home/manisha/work/sample.csv)

监控简单数据写入器
  • 让我们通过选择测试计划元素添加→侦听器→监视结果来添加另一个侦听器。

监控结果

运行测试计划

现在将上述测试计划保存为monitor_test.jmx。使用“运行”→“开始”选项执行此测试计划。

查看输出

结果将保存在 /home/manisha/work/sample.csv 文件中。您还可以在监视器结果侦听器中看到图形结果,如下图所示。

监控测试结果1

监控测试结果2

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