本主题揭示了如何从命令行界面运行负载测试。
Load Test 服务器必须在将运行测试的相同远程机器上运行。
若要在 Windows 机器上启动 Load Test 服务器,请按以下格式输入命令:
Windows: lt -loadtestserver [portnumber]
例如:lt -loadtestserver 10095
对于命令,请输入适合您的测试设置的端口号。 |
若要在 Linux/Mac 机器上启动 Load Test 服务器,请按以下格式输入命令:
loadtest -loadtestserver [portnumber]
例如:loadtest -loadtestserver 10095
对于命令,请输入适合你的测试设置的端口号。 |
在 GUI 模式下运行并提供用于控制负载测试界面的机器是 Load Test 控制器机器。 如果连接这些网络的网络设备允许在正在监听的负载测试服务器的端口号上的通讯,控制器可以与不同网络上的 Load Test 服务器进行通信。
例如,如果在网络 A 上运行您的 Load Test 控制器,并通过网络 B 上的“lt -loadtestserver 10095”命令在端口号 10095 上启动 Load Test 服务器,那么介于网络 A 和网络 B 之间在端口 10095 上的通信不会受网络设备的限制。允许该端口的任何 TCP 流量交换。告知系统或网络管理员有关网络配置的问题。
创建脚本,指定要打开的 .lt
文件并且该如何运行。每当您要运行测试时,请调用脚本。
脚本文件必须以 UTF-8 字符编码保存。系统可能使用另一种字符编码标准创建文本文件。如果在运行脚本时遇到了问题,请验证是否使用了正确的编码。创建包含以下格式命令行的文本文件:
open FilePath loadtest [-version] [-localSettings path_to_local_settings_file] [-env environment_name] [-minutes number] [-vus number | -hps number] [-teamServer path_inside_team_server] [-report path_to_report_file] [-html html_directory] ScenarioName |
loadtest
命令使用指定的场景运行测试套件负载测试。有关 loadtest 命令选项的列表和描述,请查阅 Load Test Command Reference ,如下表。
您可以在脚本中声明并使用变量。可采取以下方式声明变量:
var VariableName1 = VariableValue var VariableName2 = "Variable Value with Spaces" |
已声明的变量可以通过以下方式重新分配新名称:
var VariableName1 = NewVariableValue |
这是一个示例脚本(脚本中的注释前面有一个“#”符号):
# # Using script commands # var report-home = C:\CONTINUOUS_LOAD_TEST\ENTERPRISE_LOAD_TEST var minutes = 1 var scenario = "Steady Load" var base = tests/loadtester/accuracytest/tests var category = Accuracy var test-name = 1-Profile-HPS open ${base}/${test-name}.lt loadtest -minutes ${minutes} -allReports ${report-home}/%d/${category}/${test-name} ${scenario} |
在启用 Load Test 服务器时调用该脚本:
lt.exe -cmd -run your_command_file
loadtest -cmd -run your_command_file
请注意, -cmd
参数在命令行模式下启用负载测试,而 -run
参数执行指定的负载测试脚本。两个参数都要求从命令行中运行脚本。
以下命令允许您启动 Load Test 服务器并运行负载测试:
在 Windows 命令提示符或 Linux shell 中使用这些命令。
命令 | 说明 |
---|---|
Windows Linux/Mac | 在指定端口号上启动 Load Test 服务器。若要在端口 8999 上启动 Load Test 服务器,则您需要在命令行参数中指定端口号,例如:
|
命令 | 选项 & option arguments | 说明 |
---|---|---|
var | 格式: 声明变量名并为其赋值。使用 ${variable_name} 语法获取变量值。 | |
open | 格式: 在负载测试中打开指定的项目。加载项目之后,使用 loadtest 命令。 | |
loadtest | 格式: 使用指定的场景和选项运行测试套件负载测试。有关更多详情,请查阅以下行。 | |
-localSettings path_to_local_settings_file | 指定到本地设置文件的路径,该文件包含配置和首选项参数(请查阅 Local Settings Files)。 | |
-env environment_name | 设置活动环境。环境是负载测试使用的 SOAtest 项目的一部分。 | |
-minutes number | 指定以分钟为单位的测试持续时间。如果在此命令中指定测试持续时间,它将覆盖场景中指定的测试持续时间。 | |
-vus number | 将负载测试配置中每台机器的虚拟用户数量设置为给定的数量。执行模式切换为“加权概要文件”模式,负载测试配置中的每台机器都配置为运行具有指定数量虚拟用户的稳定负载。 | |
-hps number | 将负载测试配置中每台机器的每秒点击数量设置为给定的数量。执行模式切换为“加权概要文件”模式,负载测试配置中的每台机器都配置为运行具有指定每秒点击数量的稳定负载。 | |
-teamServer path_inside_team_server | 按照指定的路径向团队服务器发送必要的报告。使用在本地设置文件中指定的团队服务器。如果没有指定本地设置,则使用负载测试首选项中指定的团队服务器。有关更多详情和示例,请查阅 负载测试连续体 。-tcm path_inside_team_ser ver 已弃用,但仍支持。 | |
-report path_to_report_file | 指定要创建具有给定名称的二进制报告 | |
-html html_directory | 指定要在指定目录中创建具有给定名称的 HTML 报告。 | |
-allReports reportsPath | 指定要在给定目录路径下创建二进制、XML 和 HTML 报告。 | |
-trimReportSeconds headSeconds tailSeconds | 指定从 report* 开始到结束要进行修剪的持续时间(以秒为单位)。秒值必须是非负整数。如果 headSeconds 和 tailSeconds 值的总和大于报告的持续时间,则不应用 trim 操作。 | |
-trimReportPercentage headPercentage tailPercentage | 指定从 report* 开始到报告结束要进行修剪的持续时间(以相对于报表持续时间的百分比为单位)。百分比必须是非负整数。如果 headPercentage 和 tailPercentage 之和等于或大于 100,则不应使用 trim 操作。 |
*负载测试报告数据收集和保存大约每隔 3 秒。这个 trimReport…
命令将丢弃属于指定修剪间隔的所有报告集合点。由于报告集合点的时间和指定的修剪值可能不匹配,因此从报告开始和结束修剪的实际持续时间可能(在大多数情况下)超过命令行中指定的持续时间。从报告头部和尾部修剪的多余值不会超过数据收集间隔的持续时间。有关如何保存报告片段的详细信息,请参阅 Understanding Report Interval Selection。
本地设置文件可以控制各种负载测试选项。您可以为不同的项目创建不同的本地设置文件,然后使用 -localSettings
脚本选项,指示应将哪个文件用于当前命令行测试。
如果在这个文件中指定了一个参数,它将覆盖负载测试首选项中指定的相关参数。如果在此文件中没有指定参数,则负载测试工具将使用首选项中指定的参数。如果负载测试首选项中没有相关参数,则将使用默认值设置。
如果希望使用默认设置,请从文件中删除或注释掉该设置。该文件包含名称/值对,并使用以下格式:
nameString=valueString
每个名称/值对必须位于单独的行上。使用散列“#”符号来注释名称/值条目。
示例本地设置文件可能包含:
# This is a commment echo=false team.server.host=localhost team.server.port=18888 team.server.user= team.server.password= |
设置 | 说明 |
---|---|
echo=true|false | 如果为“true”,负载测试将把设置回显到控制台。默认状态为 true。如果使用此设置,则它必须是本地设置文件中的第一个条目。 |
| 在命令行模式下打开控制台日志。请参阅下面的 Console Logging 部分。默认是禁用的。 |
team.server.host=host_name | 团队服务器主机名。如果未指定此设置,则将使用负载测试首选项团队服务器设置。 |
team.server.port=port_number | 团队服务器端口号。如果未指定此设置,则将使用负载测试首选项团队服务器设置。 |
team.server.user=user | 团队服务器用户名。将此设置设置为空,以指定空用户名。如果未指定此设置,则将使用负载测试首选项团队服务器设置。 此团队服务器参数是可选的;大多数配置都不需要它。 |
team.server.password=password | 团队服务器密码将此设置设置为空,以指定空密码。如果未指定此设置,则将使用负载测试首选项团队服务器设置。 此团队服务器参数是可选的;大多数配置都不需要它。 |
控制台日志记录在测试运行时,以命令行模式提供负载测试状态信息。当启用控制台日志记录时(请参阅 console.log=enable
本地设置),应用程序将在控制台中打印主负载测试运行时参数。负载测试状态每 30 秒打印一行。其包含以下信息:
例如:
2011.04.21 17:54:56 MDT | 53% complete | 32/60 seconds | passed 245/failed 0 | avg. VUs 4 |avg. HPS 8 |