本主题解释如何使用负载测试连续体,您可以使用它(连同命令行接口)来设置自动化的连续性能测试流程,并轻松监视其结果。在本章节中:
前言
负载测试连续体是一个 Web 应用程序,它允许用户从多个负载测试运行中组织数据,并通过浏览器界面访问数据。
负载测试连续体 Web 应用程序与负载测试命令行脚本接口一起工作;这允许负载测试报告在负载测试完成后自动发送到负载测试连续体。
负载测试连续体 Web 应用程序,以及相关的负载测试命令行接口,允许软件开发和测试团队设置自动化的连续性能测试流程,并轻松监视其结果。
将性能测试纳入 SDLC,并持续进行性能测试,作为每日/每晚测试过程的一部分,可带来以下好处:
- 通过早期并以连续的自动化方式执行负载测试,消除 SDLC 的不确定性
- 在 SDLC 中跟踪服务/应用程序的性能,从而在问题成为问题之前发现并解决问题
- 为性能建立 QoS(服务质量)基线,然后在偏离基线时立即检测它们。
在 Tomcat 8 和 Java 8 上测试了负载测试连续体。
负载测试连续体设计用于许多现代服务器,但是服务器平台和 Java 版本的不同组合可能会影响 LTC 的性能或可用性。
部署负载测试连续体 Web 应用程序
负载测试连续体 Web 应用程序打包在 ltc.war 归档中,其可以在 SOAtest/LoadTest 根安装目录中找到。
若要在 Tomcat Web 服务器上部署负载测试连续体,请将 ltc.war 归档文件放置在 ${TOMCAT_HOME}/webapps 目录中。如果您使用的是另一个支持 Java Web 应用程序的 Web 服务器,请输入在服务器的适当 Web 应用程序部署目录中输入 ltc.war。
配置负载测试连续体数据根
负载测试连续体 Web 应用程序在安装它的机器上的特定文件路径中查找负载测试报告数据。默认情况下,该数据根路径被设置为 C:\\CONTINUOUS_LOAD_TEST。
一旦部署了负载测试连续体 Web 应用程序,就可以更改数据根路径。在文本编辑器中打开 ${TOMCAT_HOME}\webapps\ltc\WEB-INF\web.xml 文件,并将 data_source_location
参数的 param-value
设置到加载测试连续体应查找加载测试数据的路径。还可以解压 ltc.war。如果希望在多个负载测试连续体安装中重用此配置,请更改在 web.xml 中的 data_source_location
。
将报告发送到负载测试连续体
通过从命令行运行负载测试,可以将负载测试报告发送到负载测试连续体(如 Load Test 命令行界面 - cli中所述)。
下面来自负载测试脚本的示例命令将报告发送到负载测试连续体。重要的是,您要保持您的报告路径的顺序如下面的脚本所示:
${ltc-data-root}/${project-name}/%d/${category-name}/${test-name}
${ltc-data-root}
变量应指向负载测试连续体数据根(请查阅 Configuring the Load Test Continuum Data Root)。
将 ${project-name} 变量的值设置为项目的名称。该名称将出现在下面 Exploring Load Test Continuum 中所描述的项目选择视图中。
%D
是当前日期的通配符,它可以替换为 YYYY-MM-DD 格式的自定义日期(例如 2017-03-25
)。
您可以将 ${ltc-data-root}
和 ${project-name}
组合到单个变量:
var ltc-data-root = C:\CONTINUOUS_LOAD_TEST var project-name = YOUR_PROJECT_NAME var project-home = ${ltc-data-root}/${project-name}
或
var project-home = C:\CONTINUOUS_LOAD_TEST\YOUR_PROJECT_NAME
下面的例子展示了完整脚本的样子:
# # Set variable values according to your configuration # var ltc-data-root = C:\CONTINUOUS_LOAD_TEST var project-name = YOUR_PROJECT_NAME var project-home = ${ltc-data-root}/${project-name} var scenario = "Steady Load" var base = tests/loadtester/accuracytest/tests var category = BackComp.SOAtest.Accuracy var minutes = 1 var test-name = 1-Profile-HPS open ${base}/${test-name}.lt loadtest -minutes ${minutes} -allReports ${project-home}/%d/${category}/${test-name} ${scenario}
负载测试连续体将测试报告类别、报告和报告度量组织成树结构。报告类别可以组织成所需级别的子类别。这个 "."类别路径中的(点)字符被解释为类别/子类别分隔符。
例如,字符串 BackComp.SOAtest.Accuracy
将被解释为一个路径与 "BackComp
”作为顶级类别,"SOAtest
"作为一级分类和"Accuracy
"作为二级分类。它将在负载测试连续体项目视图中显示为一个三层树结构(请参见下面 Project View 部分的屏幕截图)。
您可以在本地设置文件中指定团队服务器设置。您可以为不同的项目创建不同的本地设置文件,然后使用 loadtest 命令的 -localSettings 选项,指示应将哪个文件用于当前命令行测试。有关更多详情,请查阅 Local Settings Files 。
探索负载测试连续体
在浏览器中打开负载测试连续体(比如,http://yourserver:yourport/ltc)以开始探索界面。
项目选择视图
在项目选择视图中,单击要查看其结果的项目的链接。将打开适当的负载测试连续体项目页面。
项目视图
负载测试连续体项目视图的顶部包含项目历史视图,其中包括:
- 报告日历
- 测试历史图
- 指标历史图
报告日历
主页左上角的日历视图显示一个月摘要视图。
若要在不同月份中循环,请按下箭头键:
若要重新载入报告内容,请单击“重新载入项目数据”图标:
红色和绿色高亮显示用于指示某一天的测试是失败还是成功。您可以单击突出显示的日期来查看当天的类别/测试/度量树视图。
每日报告摘要和树视图显示在项目历史视图下。您可以单击每个节点上的开合三角形来展开和收缩报告树。
默认情况下,负载测试报告指标是隐藏的。单击 Show Metrics 和 Hide Metrics 以打开和关闭度量数据。
在负载测试报告视图中,有用于测试报告和 QoS 度量图的各种链接。
测试报告
若要查看个别测试报告的详情,请单击合适的链接:
- History—查看特定测试的历史及其 QoS 指标。
- HTML—加载测试加载测试 HTML 报告。
- Binary—二进制负载测试负载测试报告。
单个 QoS 度量图
如果 QoS 指标状态详细信息字符串包含一个数字,则该指标被视为“数值”指标。每个数值 QoS 指标都有一个数值历史图。
若要查看单个测试的数值度量历史,请单击要查看的度量旁边的“度量历史图”图形图标:
数值历史图将显示:
数值 QoS 度量图页面显示页面中心的度量值图和值图下方的导航图。导航图显示所有可用的数据,并突出显示一个滑动窗口,该窗口定义了数据图的时间边界。若要浏览这些图表,您可以:
- 通过单击值图上方面板中 Last 7|15|30 days 和 Last 12|26|52 weeks 链接中的一个来更改滑块窗口宽度。
- 拖动页面底部导航图突出显示的滑动窗口;鼠标释放后,值图将重新加载。如果滑动窗口突出显示整个导航图,则选择较小的时间窗口间隔。
多个 QoS 度量图
如果将具有特定名称的 QoS 度量应用于多个测试,则可以看到该度量用于所有测试的历史图表……都在一页纸上。
若要查看多个测试的历史图表,请单击要查看的图表旁边的“此指标的所有图表”图标:
多个同名 QoS 度量图显示:
当您想查看某个度量如何应用于所有测试时,这种类型的视图非常有用。例如,“平均执行时间”度量或“故障计数”度量。您可以单击每个摘要图查看进一步的详细信息和导航选项。
若要查看某个测试的所有度量图,请单击“此测试的所有图”图标:
同一测试显示的多个 QoS 度量图:
您可以单击每个摘要图查看进一步的详细信息和导航选项。
测试历史和度量历史图
这些图位于负载测试连续体主页顶部的报表日历图旁边。这些图提供了所有测试和 QoS 指标如何随时间执行的高级视图。
您可以单击这些图,并以与单个和多个 QoS 度量图相同的方式导航它们。