Load Test 提供了许多自定义负载测试的方法。本主题介绍如何自定义负载测试和可用的自定义项。章节目录:
通过自定义要使用的场景自定义如何运行特定的测试。可以使用场景自定义以下参数:
若要自定义现有场景或创建新场景:
在名称字段输入新的名称来更改场景名。
场景类型确定了如何配置场景的几个方面。可以为每个测试套件配置文件指定虚拟用户的确切数或每秒点击率。还可以将测试套件配置文件分布表示为一般比率,并允许 Load Test 根据指定的比率随机分配测试套件配置文件。
从场景类型菜单中选择:
在持续字段中输入新值。适用的持续时间限制如下:
受控参数设置确定测试是针对虚拟用户的数量进行控制,还是针对每秒点击数(点击率)进行控制。
从受控参数菜单选择以下选项之一:
不规则分布设置确定受控参数的随机选择。
如果将受控参数设置为用户数,则 Load Test 将根据下列分布随机化虚拟用户的思考时间:
如果将受控参数设置为每秒点击,则 Load Test 会根据下面的分布随机分配两次调用的间隔时间:
从垂直刻度菜单选择一个值,进而设置测试运行期间要模拟的最大用户数或点击数。可以在场景中设置的最大值取决于您的许可证。若要查看许可证详情,请前往帮助> 关于。
如果将受控参数设置为用户数量,则所应用的负载则是所选场景中所有机器上的用户数量和点击数。
如果将受控参数设置为点击配置数量,则为给定测试实现的每秒点击数和运行测试的机器数量确定所应用的负载。配置文件延迟选项将不可用,并且将忽略任何预先存在的延迟设置。若要确定许可允许执行的每秒点击数,则授权您的虚拟用户数量除以 10。例如,如果您被授权使用 100 个虚拟用户,则能够以每秒 10 次点击的速度执行测试。
图表直观地显示了对负载测试进行配置后所应用的随时间变化的用户数量或点击数。配置图表的界面根据您是直接配置配置文件还是配置权重配置文件而异。
启用单独的机器选项,将相同的设置应用于所有测试机器(默认)。只有当有多台机器可用时,此选项才可用。图表将显示标记为“所有机器”的一根线。该选项允许同时更改所有机器的线的位置和形状。禁用该选项,将不同的设置应用于不同的测试机器。也可以单独启用机器。
如果直接配置配置文件(将场景类型设置为直接的配置文件),并且很多测试套件配置文件都可用,则您可以启用所有选项以显示所有配置文件,或是启用单个配置文件。
有关更改图表刻度的详情,请参阅Vertical Scale。
可以修改图表上的点来更改其形状。
也可以点击图表中的拖拽点。
若要让虚拟用户数量或点击率保持平稳,则请确保这条线是平的,然后拖住这条线向上或向下移动,直到它对应于整个测试持续时间所需的用户数量或每秒点击数。
也可以右键点击图表中的行,并选择添加点来创建其他的节点。
可以点击和拖动点,或右键点击并选择编辑点来指定虚拟用户的确切数量或每秒点击数。负载测试将通过绘制各点之间的斜率,自动确定没有特定点的每个时间间隔的虚拟用户数或每秒点击数。
也可以点击更多点来自动将创建的点数加倍。
新的点将在已有的点之间以规律的间隔添加。若要删除一个点,则右键点击特定点并选择删除点。点击较少点来删除那些不是拐点的点。
可以将图表设置为预设形状。
可以指定 Load Test 在测试持续时间内任一时间点选择特定配置文件的概率。分配给配置文件的比率越高,它就越可能被选中。只有在测试套件配置文件可用时,才可使用权重配置文件。
可以通过右键点击要保存的图表,然后选择保存图像将任何场景的图表(配置图表和测试进程图表)保存为 GIF。 |
负载测试服务质量(QoS)分析功能允许用户通过将 QoS 指标应用于 Load Test 结果对服务/应用程序的性能进行评估。根据这些指标,Load Test 会评估性能,以确定负载测试是成功还是失败。当服务/应用程序必须满足特定的性能需求之后才能考虑部署时,QoS 分析尤其重要。
QoS 指标允许为负载测试定义一组回归测试。在随后的负载测试上,所有指标都将成功通过。任何失败的指标都是服务/应用程序性能回归的迹象。
QoS 功能可以从负载测试树中访问。每个场景节点(Bell、缓冲区测试、线性增加、稳定负载)下都对应一个 QoS 节点。选择 QoS 节点之后,概要和明细选项卡将显示在右侧 GUI 面板中。
概要选项卡显示 QoS 指标的全局视图,其在明细选项卡中配置。概要选项卡包括指标及其说明列表。在概要选项卡度量指标列表中有五种默认的指标:
上述每个指标都将根据类型分组(如,统计、计数、吞吐量、损耗)。配置的任何其他指标也将出现在概要选项卡中。
描述列表包含根据该指标指定的参数自动生成的每个指标正在验证的内容的说明。
明细选项卡显示为所选定场景配置的可用指标。明细选项卡还显示从指标度量列表中选择的指标的名称、参数和注意事项。
新建 Qos 指标步骤:
从添加指标向导选择所需的 QoS 指标,并点击完成。
QoS 指标将添加到明细选项卡的左侧面板中,其参数将显示在右侧面板中。
每个指标对完整的负载测试结果执行不同的验证集。负载测试运行后,QoS 报告概要将显示在测试消息报告中,同时还将提供一个单独的、更详细的 QoS 报告。
在 QoS 指标机器、配置文件和测试过滤器面板中的测试树选择面板(如测试树选择面板导航和选项中所述)中做的选择会影响用于计算指标值的数据集。随后,这将影响指标的成功或失败结果。可以在 Load Test 报告的相关部分中预览下面列出的指标类型计算中使用的数据。
同时,有关基于当前指标值对指标进一步的阐述,请参阅 QoS 指标视图参数面板中显示的工具提示。
若要更改任意 QoS 指标,请从明细选项卡的左窗格中的列表中选择一个指标,并在明细选项卡右窗格中相应地配置其参数。选项将随所选定指标变化而变化。但是,如果您将光标放在右侧窗格的参数上,则工具提示将显示关于参数配置的消息。
也可以从列表选择一个或多个(CTRL-点击)指标,然后右键点击选择项,并根据需求从快捷菜单中剪切、复制、粘贴或删除。在从列表中右键点击一个或多个(CTRL-点击)指标时,可以选择指标另存为来将所选定指标保存为 QoS 指标集(.ms 文件),同时也可选择 Load 度量指标来加载之前已保存的指标集。也可以通过将所需的指标拖拽到所需的序列中更改列表排序。
关于包含大量配置文件和/或大量图表点的场景,对用户和配置文件选项卡的每个图表中的各种选项进行配置和跟踪可能变得很困难。在这种情况下,对于每个场景来说,使用概况表和细节表可能会更方便。
要查看概况表和细节表,请选择所需的场景节点,右侧 GUI 面板中将显示概况表和细节表选项卡。
在概况表和细节表视图中,可以编辑绿色的字段(类似于每个机器的用户数量和每个配置文件的配置文件权重)。在这些绿色字段中所做的更改将反映到相应的用户和配置文件选项卡中,反之亦然。例如,如果要将默认用户的配置文件权重从 1 更改为 5,则该更改将反映到配置文件选项卡中。类似地,在配置文件选项卡中相同的更改将反应到概况表选项卡或细节表选项卡中。
根据权重配置文件或直接的配置文件场景类型,概况表视图提供了提供不同的信息。
根据权重配置文件或直接的配置文件场景类型,细节表视图提供了提供不同的信息。
环境是可以在负载测试配置中引用的变量集合。 运行测试时,Load Test 将使用活动环境中变量的值替换项目配置中变量的名称。通过更改活动环境,您可以快速轻松地更改 Load Test 使用的值。
通过环境选项卡完成环境的创建和切换。若要访问该选项卡:
将环境选项卡分成两个部分,环境列表面板(左侧)和环境详情面板(右侧)。
环境列表面板包含以下管理环境的按钮:
添加:点击该选项,将一个新的环境添加到项目中。点击按钮右侧的向下箭头,查看以下选项:
*.env
文件中现有的环境加载到项目中。对 *.env
文件的后续更改将不会反映到您的项目中。*.env
文件中现有的环境引用到您的项目中。对 *.env
文件的后续更改将会反映到您的项目中。创建和/或选择环境后,环境详情面板将显示一张表和用于管理环境变量的按钮。
若要编辑现有的环境变量,可以双击某个值或点击该值并突出显示后键入新值。
如果正在用于负载测试的 SOAtest 项目包含具有回放工具和异步测试功能(或消息桩工具)的测试,则将需要启动 Load Test 中的 SOAtest 服务器,以便处理与 SOAtest 项目相关联的异步消息传递。
可以通过以下两种方式启动 SOAtest 服务器:
如果正在以命令行模式或 Load Test 服务器模式运行带有 SOAtest 异步工具的负载测试,则将需要在这些机器上启用自动 SOAtest 服务器启动(因为在命令行模式中,SOAtest 服务器只能自动启动)。
如果 SOAtest .tst 文件引用数据源,则可以配置是否在负载测试期间使用这些数据源。
若要配置数据源选项:
如果 SOAtest .tst 文件使用 setup 或 teardown 测试,则可以配置如何在负载测试期间使用这些数据源。
若要配置 setup/teardown 选项:
每次创建虚拟用户,都是基于一份可用的配置文件。虚拟用户在负载测试开始时创建,每次虚拟用户完成测试运行并且指定的负载测试持续时间尚未超过时,就会创建虚拟用户。
可配置任意数量的配置文件或机器,但是虚拟用户的数量或每秒使用的点击率受到许可证的限制。例如,如果您只被授权运行 100 个虚拟用户,则您可以配置任意数量的配置文件,但只有基于这些配置文件的 100 个虚拟用户才可以在任何给定时间处于活跃状态。如果有 20 个配置文件,但都只被授权运行一个虚拟用户,则所有 20 个配置文件最终都将在测试期间使用(前提是测试有足够的持续时间),而只有一个配置文件在任何给定时间处于活跃状态。
若要自定义默认的配置文件或创建新配置文件:
如果希望不同的测试使用不同的延迟,则可以在 SOAtest(在测试套件配置面板中的执行选项> 测试流程逻辑选项卡中)的测试级别上配置延迟。测试级别上配置的任何延迟都将覆盖 Load Test 配置文件中指定的延迟。对于个别延迟的测试,将不会应用 Load Test 的开始到开始/结束到开始选项。 |
在将虚拟用户选择作为受控参数的负载测试场景中,有时需要限制每秒点击率。在虚拟用户模式中限制每秒点击数有以下两种方法:
下面的图片显示了在场景概况表视图中配置每秒点击节流的示例:
场景控制面板的报告设置选项卡允许您配置负载测试期间记录什么数据。
可用选项包括:
注意记录个体点击细节选项可以在禁用记录个体点击选项时使用。在这种情况下,将不会记录单独点击数据(报告的分散视图部分),然而测试执行详情仍可通过 Load Test 报告图表视图的右键点击菜单选项显示记录详情获得。
有关在 Load Test 报告中查看成功和错误详情的更多信息,请参阅详细报告。
场景控制面板的停止设置> 停止队列区域允许在生成 Load Test 停止事件和负载测试活动的实际停止之后,配置负载测试行为。(我们将使用术语“负载测试停止时间”来表示生成负载测试停止事件和所有负载测试活动实际停止之间的时间。)
执行以下操作时将生成负载测试停止事件:
生成负载测试停止事件后,Load Test 会停止创建虚拟用户,并等待现有虚拟用户退出程序。快速停止和正常停止选项控制虚拟用户是在当前测试完成后退出,还是在完成所有预定的测试之后退出:
如果停止程序需要花费很长时间,则使用负载测试停止进程对话框中的强制终止按钮。(更多详情请参阅提示:停止测试)。 |
可以使用功能 Java、JavaScript 或 Jython 脚本自定义如何停止负载测试。对于可能造成意外结果的特别情况,此功能在自动停止负载测试时特别有用。例如,在负载测试夜间运行期间,如果达到一定数量的错误或 CPU 使用率达到特定临界值时,您可能希望停止负载测试。
您定义的脚本通过 com.parasoft.api.loadtester
API 与负载测试人员通信,并接收 LoadTestScriptArgs
和 Context
作为参数,还可以返回 LoadTestScriptAction
。返回的 LoadTestScriptAction.Action_Stop
与在负载测试期间点击负载测试 GUI 中的停止具有相同的效果。
您可以在机器上的以下目录中找到可用的示例脚本:[Load_Test/SOAtest_installation_dir]\[version number]\examples\loadtest\LoadTesterScripting。 |
若要使用脚本自定义 Load Test 停止操作:
在高吞吐量模式下,可将更高级别的负载应用于正在测试的系统,同时最小化生成此类负载所需的硬件。
每个加入负载测试的 Load Test 机器都可以配置为在高吞吐量模式下进行。在这种模式下,将禁用测试响应验证以及不重要的附加工具。因此,运行负载测试要求更少的系统资源,如 CPU 周期。这一点允许高吞吐量模式中的机器以每秒更高的测试执行速度运行。
若要启用此模式,在 Load Test 配置树中的机器节点上选择合适的机器,然后启用高流通量模式。
通常情况下,用户选择一些机器以常规验证模式运行,而另一些机器则以未经验证的高流通量模式运行。以验证模式运行的机器同时充当负载生成器和测试结果收集器,而未经验证的机器只充当负载生成器。负载测试完成后,以验证模式收集到的结果将被用来估计未经验证模式下机器的错误计数区间,以及整个负载测试的总错误计数估计区间。
下面是一些典型的问答,可以帮助更好地理解如何应用高吞吐量模式功能:
如果没有足够的硬件来生成所需的负载,则应该使用高吞吐量模式。例如,如果您的负载生成机器正在以或高于 75-80% 的 CPU 利用率运行。
吞吐量增长将随着功能测试结构变化而变化。在功能测试配置中,附加到测试的工具越多,在高吞吐量模式下的性能增益就越大。
误差估计的计算是使用 Wilson 的方法计算“二项分布比例的置信区间”的基础上进行的。关于本主题更多信息,可通过下面的链接获取:
一般而言,在已验证模式下运行的测试越多,得到的误差估计区间就越小。根据经验,在已验证模式下,每个测试的运行次数应该至少在中间十位,比如 40-60。
Parasoft Load Test 可以配置为,为其虚拟用户使用多个 IP 地址。配置此虚拟 ip 涉及两个步骤:
下面的 SOAtest 工具和传输支持多个 IP 地址功能:
若要在 Windows 机器上设置 IP 别名:
ipconfig
命令,查看可用网络接口的列表、及其 IP 地址和掩码。netsh
命令添加或删除 IP 地址。若要添加 IP 地址,请运行与下面示例类似的 netsh
命令(替换您自己的网络接口名称、IP 地址和掩码)。
netsh -c Interface ip add address name="Local Area Connection" addr=10.10.29.9 mask=255.0.0.0 |
若要删除 IP 地址,请运行与下面的示例类似的 netsh
命令(替换您自己的网络接口名称、IP 地址和掩码)。
netsh -c Interface ip delete address name="Local Area Connection" addr=10.10.29.9 |
若要在 Linux 机器上设置 IP 别名:
ip
命令向网络接口添加或删除 IP 别名。下面的例子向 eth0 接口添加了一个 IP 别名:
# ip address add 10.10.29.9 dev eth0
下面的示例删除了一个 IP 别名。
# ip address del 10.10.29.9 dev eth0
配置虚拟用户使用多个 IP 地址:
机器网络接口和 IP 配置视图如下图所示:
在负载测试执行期间,机器上的每个虚拟用户将从该机器的 IP 地址列表中分配一个 IP 地址。
虚拟用户(VU)将以循环方式分配 IP 地址。例如,如果将机器“localhost”配置为使用两个 IP 地址,如下图所示,那么 VU 将按照以下顺序分配 IP 地址:
一旦一个 IP 地址被分配给一个虚拟用户,它将在该虚拟用户必须执行的所有测试中使用。
在 Load Test 中使用的 SOAtest 项目可以具有外部依赖关系,其形式是由负载测试的虚拟用户在执行 SOAtest 测试时使用的文件。SOAtest 项目测试的正确运行取决于负载测试控制器机器和运行负载生成器的远程机器上这些外部资源的可用性。Load Test 自动化了将外部依赖项转移到远程机器的过程。
有关如何确保项目所需的所有外部资源在远程计算机上可用的详细信息,请参阅将项目外部依赖项转移到远程计算机。