Load Test 提供了许多自定义负载测试的方法。本主题解释如何自定义负载测试和可用的自定义项。在本章节中:
通过自定义要使用的场景自定义如何运行特定的测试。可以使用场景自定义以下参数:
若要自定义现有场景或创建新场景:
键入一个新的名称到 Name 字段,以更改场景名。
场景类型确定了如何配置场景的几个方面。可以为每个测试套件配置文件指定虚拟用户的确切数或每秒点击率。还可以将测试套件配置文件分布表示为一般比率,并允许 Load Test 根据指定的比率随机分配测试套件配置文件。
从场景类型下拉菜单中选择一个:
键入新值到 Duration 字段中。适用的持续时间限制如下:
受控参数设置确定测试是针对虚拟用户的数量进行控制,还是针对每秒点击数(点击率)进行控制。
从 Controlled Parameter 下拉菜单选择以下选项之一:
不规则分布设置确定受控参数的随机选择。
如果将受控参数设置为用户数,则 Load Test 将 根据下列分布随机化虚拟用户的思考时间:
如果将受控参数设置为 Hits per Second,则 Load Test 会根据下面的分布随机化 the inter-invocation time :
从 Vertical scale 下拉菜单选择一个值,进而设置 测试运行期间要摸您的最大用户数或点击数。许可证确定可以在场景中设置的最大值。若要查看许可详情,请选择 Help> About。
如果将受控参数设置为用户数量,则所应用的负载则是所选场景中所有机器上的用户数量和点击数。
如果将受控参数设置为点击配置数量,则为给定测试实现的每秒点击数和运行测试的机器数量确定所应用的负载。配置文件延迟选项将不可用,并且将忽略任何预先存在的延迟设置。若要确定许可允许执行的每秒点击数,则授权您的虚拟用户数量除以 10。例如,如果您被授权使用 100 个虚拟用户,则您将可能以每秒 10 次的速度执行测试。
图表是一个可视的代表形式,表示如何配置 Load Test ,以应用一段时间内的用户数量或点击率。配置图的接口因是直接配置配置文件还是配置加权配置文件不同而不同。
启用 Machine Independent 选项,将相同的设置应用于所有测试机器(默认)。只有当有多台机器可用时,此选项才可用。图表将显示标记为所有机器(All Machines)的一根线。该选项允许同时更改所有机器行的位置和形状。禁用该选项,将不同的设置应用于不同的测试机器。也可以单独启用机器。
如果直接配置配置文件(将 Scenario Type 设置为 Direct Profiles),并且很多测试套件配置文件都可用,则您可以显示启用 All 选项以显示所有配置文件,或是启用单个配置文件。
有关更改图表比例的更多详情,请查阅 Vertical Scale 。
可以修改图表上的点来更改其形状。
也可以单击图表中的拖拽点。
若要让虚拟用户数量或点击率保持平稳,则请确保这条线是平的,然后拖住这条线向上或向下移动,直到它对应于整个测试持续时间所需的用户数量或每秒点击率。
也可以右键单击图表中的行,并选择 Add point 来创建其他的节点。
可以点击和拖动点,或右键单击并选择 Edit point 来指定虚拟用户的确切数量或每秒点击率。 Load Test 将自动确定每个时间间隔的虚拟用户数量或每秒点击率,它没有一个特定的点通过画出每个点之间的斜率。
也可以单击 More points 来自动将创建的点数加倍。
新点将在现有点之间定期添加。若要删除一个点,则右键单击特定点并选择 Remove point。单击 Less points 来删除那些不是拐点的点。
也可以将图表设置为预设置形状。
可以指定 Load Test 将在测试持续时间中任一点上选择特定配置文件的机会。分配到配置文件的比率越高,它就越可能被选中。只有在测试套件配置文件可用时,才可使用加权配置文件。
可以通过右键单击要保存的图表,然后从快捷菜单选择 Save Image 将任何场景的图表(配置图表和测试进程图表)保存为 GIF。 |
负载测试 QoS(Quality of Service,质量服务)分析功能允许用户通过将 QoS 度量应用于负载测试结果对服务/应用程序的性能进行评估。根据这些度量, Load Test 会评估性能,以确定负载测试是成功还是失败。当服务/应用程序必须满足特定的性能需求之后才能考虑部署时,QoS 分析尤其重要。
QoS 度量允许为负载测试定义一组回归测试。在随后的负载测试上,所有指标都将成功通过。任何失败的度量都是服务/应用程序性能回归的迹象。
QoS 功能可以从负载测试树中访问。每个 Scenario 节点(Bell, Buffer Test, Linear Increase, Steady Load)下都对应一个 QoS 节点。选择 QoS 节点之后, Summary 和 Details 选项卡将显示在右侧 GUI 面板中。
Summary 选项卡显示 QoS 度量的全局视图,其在 Details 选项卡中配置。Summary 选项卡包括度量及其说明列表。在 Summary 选项卡 Metric 列表中有五中默认的度量:
每个上述度量都将跟其类型分组(如,Statistic、Count、Throughput、Loss)。配置的任何其他度量也将显示在 Summary 选项卡中。
Description 列表包含根据该度量指定的参数自动生成的每个度量正在验证的内容的说明。
Details 选项卡显示为所选定场景配置的可用度量。Details 选项卡还显示从 Metric 列表中选择的度量的名称、参数和注意事项。
若要创建新的 Qos 度量,请完成以下项:
从 Add Metric 向导选择所需的 QoS 度量,并单击 Finish。
QoS 度量将在其参数显示在右侧面板的 Details 选项卡中时添加到左侧面板。
每个度量对完整的负载测试结果执行不同的验证集。负载测试运行后, QoS Report Summary 将显示在测试消息报告中,同时还将提供一个单独的、更详细的 QoS 报告。
在 QoS Metric Machines、Profiles 和 Tests 过滤器面板中的测试树选择面板(如 测试树选择面板导航和选项中所述)中做的选择会影响用于计算度量值的数据集。这将随后影响度量的成功或失败结果。可以在负载测试报告的相关部分中预览下面列出的度量类型计算中使用的数据。
同时,有关基于当前度量值对度量进一步的阐述,请查阅 QoS 度量视图参数(Paramenters)面板中显示的工具提示。
若要更改任意 QoS 度量,请从 Details 选项卡的左窗格中的列表中选择一个度量,并在 Details 选项卡右窗格中相应地配置其参数。选项将随所选定度量变化而变化。但是,如果您将光标放在右侧窗格的参数上,则工具提示将显示关于参数配置的消息。
也可以从列表选择一个或多个(CTRL-click)度量,然后右键单击选择项,并根据需求从快捷菜单中 Cut、Copy、Paste 或 Delete 。在从列表中右键单击一个或多个(CTRL-click)度量时,可以选择 Save Metrics As 来将所选定度量保存为 QoS 度量集(.ms 文件),同时也可选择 Load Metrics 来加载之前已保存的度量集。也可以通过将所需的度量拖拽到所需的序列中更改列表排序。
关于包含大量配置文件和/或大量图表点的场景,对 User 和 Profiles 选项卡的每个图表中的各种选项进行配置和跟踪可能变得很困难。在这种情况下,对于每个场景来说,使用 Summary Table 和 Details Table 可能变得更容易。
若要查看 Summary Table 和 Details Table,请选择所需的 Scenario 节点和在右侧 GUI 面板中显示 Summary Table and Details Table 选项卡。
在 Summary Table 和 Details 表视图中,可以编辑绿色的字段(类似于每个机器的用户数量和每个配置文件的配置文件权重)。在这些绿色字段中所做的更改将反映到相应的 Users 和 Profiles 选项卡中,反之亦然。例如,如果要将默认用户的配置文件权重从 1 更改为 5,则该更改将反映到 Profiles 选项卡中。相似地,在 Profiles 选项卡中相同的更改将反应到 Summary Table 选项卡或 Details Table 选项卡中。
基于是将 Weighted Profiles 还是 Direct Profiles 选择为场景类型, Summary Table 视图提供了提供不同的信息。
基于是将 Weighted Profiles 还是 Direct Profiles 选择为场景类型, Detail Table 视图提供了提供不同的信息。
环境是可以在负载测试配置中引用的变量集合。 运行测试时, Load Test 将使用活跃环境中那些变量的值替换项目配置中变量的名称。 通过更改活跃的环境,您可以快速轻松地更改负载测试使用的值。
通过 Environments 选项卡完成环境的创建和切换。若要访问该选项卡:
将 Environments 选项卡分成两个部分, Environments List 面板(左侧)和 Environment Details 面板(右侧)。
环境列表面板包含以下管理环境的按钮:
添加:单击添加新环境到项目中。添加按钮也可通过单击按钮右侧的向下箭头向下拉。可使用以下选项。
*.env
文件中现有的环境加载到项目中。对 *.env
文件的后续更改将不会反映到您的项目中。*.env
文件中现有的环境引用到您的项目中。对 *.env
文件的后续更改将不会反映到您的项目中。创建和/或选择环境后, Environment Details 面板将显示一张表和用于管理环境变量的按钮。
若要编辑现有的环境变量,可以双击某个值,也可以只单击以突出显示该值并键入重写它。
如果正在用于负载测试的 SOAtest 项目包含具有回调工具和异步测试功能(或消息桩工具)的测试,则将需要启动 Load Test 中的 SOAtest 服务器,以便处理与 SOAtest 项目相关联的异步消息传递。
可以通过以下两种方式启动 SOAtest 服务器:
如果正在以命令行模式或负载测试服务器模式运行带有 SOAtest 异步工具的负载测试,则将需要在这些机器上启用自动 SOAtest 服务器启动(因为在命令行模式中,SOAtest 服务器只能自动启动)。
如果 SOAtest .tst 文件引用数据源,则可以配置是否在负载测试期间使用这些数据源。
若要配置数据源选项:
如果 SOAtest .tst 文件使用安装或卸载测试,则可以配置如何在负载测试期间使用这些数据源。
若要配置安装/卸载选项:
每次创建虚拟用户,都是基于一份可用的配置文件。虚拟用户在负载测试开始时创建,每次虚拟用户完成测试运行并且指定的负载测试持续时间尚未超过时,就会创建虚拟用户。
可配置任意数量的配置文件或机器,但是虚拟用户的数量或每秒使用的点击率受到许可证的限制。例如,如果您只被授权运行 100 个虚拟用户,则您可以配置任意数量的配置文件,但只有基于这些配置文件的 100 个虚拟用户才可以在任何给定时间处于活跃状态。如果有 20 个配置文件,但都只被授权运行一个虚拟用户,则所有 20 个配置文件最终都将在测试期间使用(前提是测试有足够的持续时间),而只有一个配置文件在任何给定时间处于活跃状态。
若要自定义默认的配置文件或创建新配置文件:
如果希望不同的测试使用不同的延迟,则可以在 SOAtest(在测试套件配置面板中的 Execution Options> Test Flow Logic 选项卡中)的测试级别上配置延迟。测试级别上配置的任何延迟都将覆盖 Load Test 配置文件中指定的延迟。对于个别延迟的测试,将不会应用 Load Test 的 Begin-to-Begin/End-to-Begin 选项。 |
在将虚拟用户选择作为受控参数的负载测试场景中,有时需要限制每秒点击率。在虚拟用户模式中限制每秒点击数有以下两种方法:
下面图片显示的是在场景概要表视图中配置每秒点击节流的一个示例:
场景控制面板的 Report Settings 选项卡允许您配置负载测试期间记录什么数据。
可用选项包括:
在这种情况下,将不会记录单独点击数据(报告的分散视图部分),然而测试执行详情仍可通过负载测试报告图表视图的右键单击菜单选项 Show Recorded Details 获得。
有关在负载测试报告中查看成功和错误详情的更多信息,请查阅 详细报告。
场景控制面板的 Stop Settings> Stop Sequence 区域允许在生成负载测试停止事件和负载测试活动的实际停止之后,配置负载测试行为。(我们将使用术语“负载测试停止时间”来表示生成负载测试停止事件和所有负载测试活动实际停止之间的时间。)
如果像下面这样做,将生成负载测试停止事件:
生成负载测试停止事件后, Load Test 会停止常见虚拟用户,并等待现有虚拟用户退出程序。快速停止和正常停止选项控制虚拟用户是在当前测试完成后退出,还是在完成所有预定的测试之后退出。
如果停止程序需要花费很长时间,则使用负载测试停止进程对话框中的“强制停止(Force Stop)”按钮。(请查阅 提示:Load Test Procedure#tipStopping a Test ,获得更多详情)。 |
可以使用功能 Java、JavaScript 或 Jython 脚本自定义如何停止负载测试。对于可能造成意外结果的特别情况,此功能在自动停止负载测试时特别有用。例如,在负载测试夜间运行期间,如果达到一定数量的错误或 CPU 使用率达到特定临界值时,您可能希望停止负载测试。
您定义的脚本通过 com.parasoft.api.loadtester
API 与负载测试人员通信,并接收 LoadTestScriptArgs
和 Context
作为参数,还可以返回 LoadTestScriptAction
。返回的 LoadTestScriptAction.Action_Stop
与在负载测试期间按下负载测试 GUI 中的 Stop 按钮具有相同的效果。
您可以在机器上的以下目录中找到可用的示例脚本:[Load_Test/SOAtest_installation_dir]\[version number]\examples\loadtest\LoadTesterScripting。 |
若要使用脚本自定义负载测试停止操作:
在高吞吐量模式下,可将更高级别的负载应用于正在测试的系统,同时最小化生成此类负载所需的硬件。
每个加入负载测试的 Load Test 机器都可以配置为在高吞吐量模式下进行。在这种模式下,将禁用测试响应验证以及不重要的附加工具。因此,运行负载测试要求更少的系统资源,如 CPU 周期。这一点允许高吞吐量模式中的机器以每秒更高的测试执行速度运行。
若要启用此模式,在 Load Test Configuration 树中的 Machines 节点上选择合适的机器,然后启用 High Throughput Mode 选项。
通常,用户选择一些计算机以常规“已验证”模式运行,而另一些机器则以“未经验证的高吞吐量”模式运行。以“已验证”模式运行的机器同时充当负载生成器和测试结果收集器,而未经验证的机器只充当负载生成器。负载测试完成后,以验证模式收集到的结果将被用来估计未经验证模式下机器的错误计数区间,以及整个负载测试的总错误计数估计区间。
下面是一些典型的问答,可以帮助更好地理解如何应用高吞吐量模式功能:
如果没有足够的硬件来生成所需的负载,则应该使用高吞吐量模式。例如,如果您的负载生成机器正在以或高于 75-80% 的 CPU 利用率运行。
吞吐量增长将随着功能测试结构变化而变化。在功能测试配置中,附加到测试的工具越多,在高吞吐量模式下的性能增益就越大。
误差估计的计算是使用 Wilson 的方法计算 "Binomial proportion confidence interval" 的基础上进行的。关于本主题更多信息,可通过下面的链接获取:
一般而言,在已验证模式下运行的测试越多,得到的误差估计区间就越小。根据经验,在已验证模式下,每个测试的运行次数应该至少在中间十位,比如 40-60。
Parasoft 负载测试可以配置为为其虚拟用户使用多个 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 地址。
虚拟用户(VUs)将以循环方式分配 IP 地址。例如,如果将机器“localhost”配置为使用两个 IP 地址,如下图所示,那么 Vus 将按照以下顺序分配 IP 地址:
一旦一个 IP 地址被分配给一个虚拟用户,它将在该虚拟用户必须执行的所有测试中使用。
在 Load Test 中使用的 SOAtest 项目可以具有外部依赖关系,其形式是由负载测试的虚拟用户在执行 SOAtest 测试时使用的文件。SOAtest 项目测试的正确功能取决于负载测试控制器机器和运行负载生成器的远程机器上这些外部资源的可用性。负载测试自动化了将外部依赖项转移到远程机器的过程。
有关如何确保项目所需的所有外部资源在远程计算机上可用的详细信息,请查阅 Transferring Project External Dependencies to Remote Machines。