Load Test 工具提供了许多自定义负载测试的方法。本主题解释如何自定义负载测试和可用的自定义项。在本章节中:
自定义测试套件场景
通过自定义要使用的场景自定义如何运行特定的测试。可以使用场景自定义以下参数:
- 测试持续时间
- 虚拟用户随时间和机器的分布
- 点击率随时间和机器的分布
- 用户配置文件随时间的分布
若要自定义现有场景或创建新场景:
- 通过从 Load Tests 选项卡中执行其中一个以下步骤,打开或创建要自定义的场景:
- 若要打开现有场景:单击 Scenarios 分支中的合适节点。如果配置文件不可见,则双击 Scenarios 已展开该分支。
- 若要创建新场景:右键单击 Scenarios 节点,然后从快捷菜单中选择 New Scenario 。
- 使用右侧 GUI 面板中的控件自定义场景。以下部分说明了可用的自定义控件。
场景名
键入一个新的名称到 Name 字段,以更改场景名。
场景类型
场景类型确定了如何配置场景的几个方面。可以为每个测试套件配置文件指定虚拟用户的确切数或每秒点击率。还可以将测试套件配置文件分布表示为一般比率,并允许 Load Test 工具根据指定的比率随机分配测试套件配置文件。
从场景类型下拉菜单中选择一个:
- Weighted Profiles。该类型允许您将测试套件配置文件分布指定为权重比。虚拟用户以随机加权的方式(它允许任意的总负载图和配置文件分布的“数据统计”跟踪)分布在配置文件中。
- Direct Profiles。该类型允许直接为每个测试套件配置文件指定(虚拟用户或每秒点击的)实际负载。可以为所有机器或未每个单个机器指定负载。无法直接指定 VU/HPS 的总数,但是它是一台机器所有配置文件的总和。
测试持续时间
键入新值到 Duration 字段中。适用的持续时间限制如下:
- Days:30
- 小时:23
- 分:59
- 秒:59
受控参数
受控参数设置确定测试是针对虚拟用户的数量进行控制,还是针对每秒点击数(点击率)进行控制。
从 Controlled Parameter 下拉菜单选择以下选项之一:
- Number of Users。 Load Test 工具将尝试实现指定的虚拟用户数量,并试图改变进程中的每秒点击数。
- Hits per Second、 Hits per Minute、 Hits per Hour or Hits per Day。 Load Test 工具将尝试通过根据需要改变虚拟用户的数量。
不规则分布
不规则分布设置确定受控参数的随机选择。
如果将受控参数设置为用户数,则 Load Test 工具将 根据下列分布随机化虚拟用户的思考时间:
- Uniform:如果虚拟用户认为配置文件中指定的时间是 Tprof.,则实际虚拟用户认为时间将是一个随机值,均匀分布在 0 到 2*Tprof 区间,取 Tprof 的平均值。
- Poisson:如果虚拟用户认为配置文件中指定的时间是 Tprof.,则实际虚拟用户认为时间将是一个随机值,具有钟形分布和 Tprof 的均值。
- None:没有应用不规则分布。
如果将受控参数设置为 Hits per Second,则 Load Test 工具会根据下面的分布随机化 the inter-invocation time :
- Uniform:如果负载测试场景中指定的每秒点击率是 Nhps.,则 Load Test 工具将生成请求序列,该序列具有随机内部调用时间(介于子序列请求之间的时间),均匀分布在 0 和 2*1/Nhps. 秒区间,取 1/Nhps 秒的平均值。
- Poisson:如果负载测试场景中指定的每秒点击率是 Nhps,则 Load Test 工具将生成请求序列,该序列具有随机内部调用时间(介于子序列请求之间的时间),其具有钟形分布和 1/Nhps 秒 的均值。
垂直比例
从 Vertical scale 下拉菜单选择一个值,进而设置 测试运行期间要摸您的最大用户数或点击数。许可证确定可以在场景中设置的最大值。若要查看许可详情,请选择 Help> About。
如果将受控参数设置为用户数量,则所应用的负载则是所选场景中所有机器上的用户数量和点击数。
如果将受控参数设置为点击配置数量,则为给定测试实现的每秒点击数和运行测试的机器数量确定所应用的负载。配置文件延迟选项将不可用,并且将忽略任何预先存在的延迟设置。若要确定许可允许执行的每秒点击数,则授权您的虚拟用户数量除以 10。例如,如果您被授权使用 100 个虚拟用户,则您将可能以每秒 10 次的速度执行测试。
- 右键单击面板右上角的行,并选择比例选项。可以在场景类型设置为直接配置文件时,为每个配置文件设置比例。如果您正在以加权配置文件的模式设置比例,则按每台机器设置比例。
- 提示时指定缩放因素。
更改图表
图表是一个可视的代表形式,表示如何配置 Load Test 工具,以应用一段时间内的用户数量或点击率。配置图的接口因是直接配置配置文件还是配置加权配置文件不同而不同。
指定机器
启用 Machine Independent 选项,将相同的设置应用于所有测试机器(默认)。只有当有多台机器可用时,此选项才可用。该图将显示一行标记为"所有机器"。该选项允许同时更改所有机器行的位置和形状。禁用该选项,将不同的设置应用于不同的测试机器。也可以单独启用机器。
显示配置文件
如果直接配置配置文件(将 Scenario Type 设置为 Direct Profiles),并且很多测试套件配置文件都可用,则您可以显示启用 All 选项以显示所有配置文件,或是启用单个配置文件。
更改垂直比例
有关更改图表比例的更多详情,请查阅 Vertical Scale 。
更改形状
可以修改图表上的点来更改其形状。
- 右键单击面板右上角的行,并选择 Edit graph。
- 提示时指定 Y 字段中的值。
- 单击 Next 来编辑图表上的下一个点,或单击 Previous 来编辑上一个点。也可以按住 Alt-左箭头或 Alt-右箭头 来使用键盘快捷键。
- 指定 X 字段的值并单击 Apply。
- 如果需要,重复步骤 2 和 3 来配置其他的点,并在完成时单击 OK 。
也可以单击图表中的拖拽点。
若要让虚拟用户数量或点击率保持平稳,则请确保这条线是平的,然后拖住这条线向上或向下移动,直到它对应于整个测试持续时间所需的用户数量或每秒点击率。
也可以右键单击图表中的行,并选择 Add point 来创建其他的节点。
可以点击和拖动点,或右键单击并选择 Edit point 来指定虚拟用户的确切数量或每秒点击率。 Load Test 工具将自动确定每个时间间隔的虚拟用户数量或每秒点击率,它没有一个特定的点通过画出每个点之间的斜率。
也可以单击 More points 来自动将创建的点数加倍。
新点将在现有点之间定期添加。若要删除一个点,则右键单击特定点并选择 Remove point。单击 Less points 来删除那些不是拐点的点。
使用预设置的形状
也可以将图表设置为预设置形状。
- 右键单击面板右上角中的行表现形式,并选择 Set Gragh Shape。
- 选择图表形状并设置峰值。
- 单击 OK 将形状应用于所选定图表。
设置配置文件加权
可以指定 Load Test 工具将在测试持续时间中任一点上选择特定配置文件的机会。分配到配置文件的比率越高,它就越可能被选中。只有在测试套件配置文件可用时,才可使用加权配置文件。
- 从 Vertical scale 中选择值来更改配置文件的最大比率。确定 Load Test 工具如何随时间分布用户配置文件时,值越高,可以使用的比值区间就越多。用户配置文件的比率确定负载测试在测试持续时间中任一点上选择特定配置文件的可能性。
- 右键单击面板右上角中线的表现形式,并从快捷菜单选择 Scale Graph 来缩放线条的形状,以表示配置文件比率的不同范围。
- 提示时输入缩放因素。
- 如果希望用户配置文件的比率保持平稳,则请确保线是平的,并将拖住每个配置文件的水平线向上或向下移动,知道它对应于所有时间间隔所需的配置文件权重。
- 若要改变用户配置文件的比率,则为每个时间间隔创建一个“点”,以便指定配置文件权重(请查阅 Changing the Shape),然后该点拖至所需位置。 Load Test 工具将自动确定每个时间间隔的配置文件权重,它没有一个特定的点;它通过绘制每个点之间的斜率来做到这一点。
- 可以通过单击 More points自动加倍所创建的点的数量。新点将在现有点之间定期添加。可以通过右键单击并选择 Remove point来删除点。若要删除没有拐点的点,则单击 Less points 按钮。
提示
自定义场景的 QoS 度量
负载测试 QoS(质量服务)分析功能允许用户通过将 QoS 度量应用于负载测试结果对服务/应用程序的性能进行评估。根据这些度量, Load Test 工具会评估性能,以确定负载测试是成功还是失败。当服务/应用程序必须满足特定的性能需求之后才能考虑部署时,QoS 分析尤其重要。
对 Qos 度量的介绍
QoS 度量允许为负载测试定义一组回归测试。在随后的负载测试上,所有指标都将成功通过。任何失败的度量都是服务/应用程序性能回归的迹象。
QoS 功能可以从负载测试树中访问。每个 Scenario 节点(Bell, Buffer Test, Linear Increase, Steady Load)下都对应一个 QoS 节点。选择 QoS 节点之后, Summary 和 Details 选项卡将显示在右侧 GUI 面板中。
Summary 选项卡显示 QoS 度量的全局视图,其在 Details 选项卡中配置。 Summary 选项卡包括度量及其说明列表。在 Summary 选项卡 Metric 列表中有五中默认的度量:
- Low Execution Time:验证其平均执行时间是否低于特定的临界值。
- Low Server Time:验证其平均服务时间是否低于特定的临界值。
- No Failures:负载测试期间发生的失败总数必须为 0。
- Fast Hit Rate:负载测试期间实现的吞吐量必须高于定义的水平。
- 100% Success:随后的请求消息测量百分比必须精确到 100%。
每个上述度量都将跟其类型分组(如,Statistic、Count、Throughput、Loss)。配置的任何其他度量也将显示在 Summary 选项卡中。
Description 列表包含根据该度量指定的参数自动生成的每个度量正在验证的内容的说明。
Details 选项卡显示为所选定场景配置的可用度量。Details 选项卡还显示从 Metric 列表中选择的度量的名称、参数和注意事项。
新建 Qos 度量
若要创建新的 Qos 度量,请完成以下项:
- 单击 Metrie List 下的 New 按钮。将显示 Add Metric 向导。
从 Add Metric 向导选择所需的 QoS 度量,并单击 Finish。
QoS 度量将在其参数显示在右侧面板的 Details 选项卡中时添加到左侧面板。
每个度量对完整的负载测试结果执行不同的验证集。负载测试运行后, QoS Report Summary 将显示在测试消息报告中,同时还将提供一个单独的、更详细的 QoS 报告。
Filter 选择对 QoS 度量计算的影响
在 QoS Metric Machines、Profiles 和 Tests 过滤器面板中的测试树选择面板(如 测试树选择面板导航和选项中所述)中做的选择会影响用于计算度量值的数据集。这将随后影响度量的成功或失败结果。可以在负载测试报告的相关部分中预览下面列出的度量类型计算中使用的数据。
- Statistic Metric – 请查阅报告的 Statistics 部分。注意 Avg。(平均)Statistic Metric 的参数是根据为该度量所选定的每个测试运行次数来计算的。可以在负载测试报告的 Statistics 部分的 Run Count 列看到这些数字。
- Count Metric, Loss Metric – 请查阅报告的 Statistics 部分。
- Throughput – 请查阅 Detailed Report 部分的 Gragh 选项卡。
- Percentile Metric, Latency Metric – 请选择详细报告视图的 Gragh 选项卡中的 Show Individual Hits 。
- Error Ratio Metric – 请选择详细报告视图的 Gragh 选项卡中的 Show Recorded Details 。请查阅选择后出现的表(Table)视图的详情(Details)列。
同时,有关基于当前度量值对度量进一步的阐述,请查阅 QoS 度量视图参数面板中显示的工具提示。
配置 QoS 度量参数
若要更改任意 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 选项卡中。
Summary Table
基于是将 Weighted Profiles 还是 Direct Profiles 选择为场景类型, Summary Table 视图提供了提供不同的信息。
- Summary Table 视图为 Weighted Profiles 提供了两张独立的表:一张表用于机器,一张表用于配置文件。
- Summary Table 视图为 Direct Profiles 提供了一张表,您可以在该表中为每个机器更改用户数量。
Detail Table
基于是将 Weighted Profiles 还是 Direct Profiles 选择为场景类型, Detail Table 视图提供了提供不同的信息。
- Detail Table 视图为 Weighted Profiles 提供了两个独立的表:一张表用于机器,一张表用于配置文件。
- Detail Table 视图为 Direct Profiles 提供了一张表,您可以在该表中为每个机器更改 Time/Value。
对环境进行配置
环境是可以在负载测试配置中引用的变量集合。 运行测试时, Load Test 工具将使用活跃环境中那些变量的值替换项目配置中变量的名称。 通过更改活跃的环境,您可以快速轻松地更改负载测试使用的值。
通过 Environments 选项卡完成环境的创建和切换。若要访问该选项卡:
- 请选择负载测试配置树中的 Profiles 节点。
- 打开 Environments 选项卡。
将 Environments 选项卡分成两个部分, Environments List 面板(左侧)和 Environment Details 面板(右侧)。
对环境列表进行配置
环境列表面板包含以下管理环境的按钮:
Add:单击添加新环境到项目中。添加按钮也可通过单击按钮右侧的向下箭头向下拉。可使用以下选项。
- Import...:单击该选项,将
*.env
文件中现有的环境加载到项目中。对*.env
文件的后续更改将不会反映到您的项目中。 - Reference...:单击该选项,将
*.env
文件中现有的环境引用到您的项目中。对*.env
文件的后续更改将不会反映到您的项目中。
- Import...:单击该选项,将
- Remove:单击该选项,从您的项目中删除所选定环境。
- Set:单击该选项,让所选定的环境成为活跃环境。
对环境详情面板进行配置
创建和/或选择环境后, Environment Details 面板将显示一张表和用于管理环境变量的按钮。
- Add:单击该选项,添加一个新的环境变量。
- Remove:单击该选项,删除所选定环境。
若要编辑现有的环境变量,可以双击某个值,也可以只单击以突出显示该值并键入重写它。
对异步测试进行配置
如果正在用于负载测试的 SOAtest 项目包含具有回调工具和异步测试功能(或消息桩工具)的测试,则将需要启动 Load Test 工具中的 SOAtest 服务器,以便处理与 SOAtest 项目相关联的异步消息传递。
可以通过以下两种方式启动 SOAtest 服务器:
- Manually:在工具栏中选择 View> Show Server 。 Server 选项卡将出现在负载测试 GUI 的左侧面板中。然后,右键单击 Server 节点并选择 Start Server。
- Automatically:在负载测试首选项中,选择 Start-Up 部分并启用 Start server on Parasoft Load Test start-up 选项。 保存首选项之后,将需要重启 Load Test 工具,然后该设置才会生效。
如果正在以命令行模式或负载测试服务器模式运行带有 SOAtest 异步工具的负载测试,则将需要在这些机器上启用自动 SOAtest 服务器启动(因为在命令行模式中,SOAtest 服务器只能自动启动)。
对数据源使用进行配置
如果 SOAtest .tst 文件引用数据源,则可以配置是否在负载测试期间使用这些数据源。
若要配置数据源选项:
- 请选择负载测试配置树中的 Profiles 节点。
- 打开 Data Sources Options 选项卡。可用的数据源将列出在左侧面板中:
- 若要配置数据源选项,将其应用到整个测试套件中,请选择要配置的测试套件,然后根据需求在右侧面板中自定义以下选项:
- Stop load test after all rows have been used: 如果数据源行在其使用完后变得无效,请启用该选项,然后指定希望在何时停止负载测试 — 在第一台机器耗尽行时,还是所有机器耗尽行时。这一点有助于对您的负载测试持续时间进行管理。
- Report recommended partition sizes:确定 Parasoft Load Test 工具是否(基于负载测试结果)生成报告,该报告包含为每台机器上每个数据源的推荐分区大小。
- 若要配置用于特定数据源的选项,则选择要配置选项的数据源,然后在右侧面板根据需求自定义以下项:
- Use each row only once (i.e., data becomes invalid after use):确定数据源行中的值在测试期间是否可多次使用。如果启用该选项,SOAtest 随后将遍历数据源值;不允许对数据源值进行随机遍历。对于某些数据类型只能输入到应用程序一次的 Web 应用程序(如,社会保险号、唯一身份证号等等),该选项特别有用。
- Different users can use the same row concurrently:确定该数据源中的值是否一次只被一个虚拟用户使用。如果希望 SOAtest 从该数据源分配登录用户名/密码对,而您的站点禁止每个用户同时多次登录,则禁用该选项特别有用。如果禁用该选项,SOAtest 将报告测试期间尝试使用数据源的虚拟用户数量是否超过可用行数。如果这样,那么应该确保数据源中的行数超过了将使用数据源的虚拟用户数量,然后重新运行测试。该选项仅在未选中“每一行仅使用一次(如,数据源使用后无效)”选项时可用。
- Virtual users iterate through dat;确定 SOAtest 对数据进行的是随机遍历还是有序遍历。该选项仅在未选中“每一行仅使用一次(如,数据源使用后无效)”选项时可用。
- 在有序模式下,SOAtest 在整个测试数据中重复遍历数据。它使用所有数据源值,以数据源第一行中的值启动,并按顺序遍历数据源行直到最后一行。一旦 SOAtest 使用数据源最后一行的值,则将它从第一行的值重新开始。
- 在随机模式下,SOAtest 在每次需要数据源的时候随机选择数据源行。
- 在有序模式下,SOAtest 在整个测试数据中重复遍历数据。它使用所有数据源值,以数据源第一行中的值启动,并按顺序遍历数据源行直到最后一行。一旦 SOAtest 使用数据源最后一行的值,则将它从第一行的值重新开始。
- Virtual users iterate through all rows for each test:确定虚拟用户是否在运行下一个测试之前遍历该数据源的所有行。如果未选中此选项,则虚拟用户将一次只执行一行,然后运行下一个测试等。该选项仅在未选中“每一行仅使用一次(如,数据源使用后无效)”选项时可用。
- Partitions:允许自定义数据源的分区方式,以便分布加载测试服务器机器。
- 在启用 Use each row only once 选项或禁用 Different virtual users can use the same row concurrently 选项时,将对数据源进行分区。
- 若要自定义数据源的分区方式,以便分布加载测试服务器机器,请启用 Use custom data source partitions,然后输入在表中指定所需的分布。
- 若要指定给定机器不应该接受数据源行,则请在 First 行和 Last 行单元格都输入 0。所有数据源行 必须 分布到一台负载测试服务器机器上。
对安装/卸载测试执行进行配置
如果 SOAtest .tst 文件使用安装或卸载测试,则可以配置如何在负载测试期间使用这些数据源。
若要配置安装/卸载选项:
- 请选择负载测试配置树中的 Profiles 节点。
- 打开 Setup/Teardown Options 选项卡。
- 选择所需选项:可用选项包括:
- Run once per virtual user:每个虚拟用户将运行一次安装和卸载测试。
- Run once per machine:每个负载测试运行一次安装和卸载测试。
- Run once per load test:每个负载测试将运行一次安装和卸载测试。
自定义配置文件
每次创建虚拟用户,都是基于一份可用的配置文件。虚拟用户在负载测试开始时创建,每次虚拟用户完成测试运行并且指定的负载测试持续时间尚未超过时,就会创建虚拟用户。
可配置任意数量的配置文件或机器,但是虚拟用户的数量或每秒使用的点击率受到许可证的限制。例如,如果您只被授权运行 100 个虚拟用户,则您可以配置任意数量的配置文件,但只有基于这些配置文件的 100 个虚拟用户才可以在任何给定时间处于活跃状态。如果有 20 个配置文件,但都只被授权运行一个虚拟用户,则所有 20 个配置文件最终都将在测试期间使用(前提是测试有足够的持续时间),而只有一个配置文件在任何给定时间处于活跃状态。
若要自定义默认的配置文件或创建新配置文件:
- 执行以下步骤之一,打开、禁用、启用或创建要自定义的配置文件:
- 若要打开现有配置文件:单击 Profiles 分支中的合适节点。如果配置文件不可见,则双击 Profiles 以展开该分支。
- 若要禁用或启用现有配置文件:右键单击 Profiles 分支中的合适节点,并从快捷菜单选择 Disable/Enable 。如果禁用配置文件,则配置文件将不会和负载测试一起运行,直到再次启用它。
- 若要创建新配置文件:右键单击 Test Suite Profiles 节点,然后从快捷菜单中选择 New Profile 。
- 使用右侧 GUI 面板中的控件自定义配置文件选项。可用选项包括:
- Name:确定配置文件名称。
- Profile Runnables:确定执行的是什么测试或自定义操作。选中表示要使用的测试的复选框。至少选择一个测试。如果希望子测试假设父测试的设置(启用还是禁用),请选择 Propagate Selection 选项。如果添加多个测试套件,它们将按照在此面板中列出的顺序执行。
- Delay:指示您希望在此配置文件的测试迭代之间模拟延迟的长度和类型。如果在控制每秒点击数(而不是虚拟用户数量)测试的场景中使用该配置文件,则将忽略所有延迟选项。延迟选项包括:
- End-to-Begin:提示 Load Test 工具测试从上次虚拟用户调用结束到后续虚拟用户调用开始的延迟。
- Begin-to-Begin:提示 Load Test 工具测试从上次虚拟用户调用开始到后续虚拟用户调用开始的延迟。
- Minutes:确定延迟时间,以分为单位。在文本字段输入分钟数,或相应地移动滑块。
- Seconds:确定延迟时间,以秒为单位。在文本字段输入分钟数,或相应地移动滑块。
- Milliseconds:确定延迟时间,以毫秒为单位。在文本字段输入分钟数,或相应地移动滑块。
提示
如果希望不同的测试使用不同的延迟,则可以在 SOAtest(在测试套件配置面板中的 Execution Options> Test Flow Logic 选项卡中)的测试级别上配置延迟。测试级别上配置的任何延迟都将覆盖 Load Test 工具配置文件中指定的延迟。对于个别延迟的测试,将不会应用 Load Test 工具的 Begin-to-Begin/End-to-Begin 选项。
在虚拟用户模式中限制每秒点击数
在将虚拟用户选择作为受控参数的负载测试场景中,有时需要限制每秒点击率。在虚拟用户模式中限制每秒点击数有以下两种方法:
- Set the appropriate delays in the Virtual User profile configuration:这是首选的方法。每秒点击率与虚拟用户测试调用之间的时间成反比。该时间由测试执行时间和虚拟用户延迟时间组成。例如,将虚拟用户配置文件 Begin-to-Begin 延迟设置为 1 秒,将导致 4 个虚拟用户负载测试场景的每秒点击率保持在或低于每秒 4 次。有关虚拟用户配置文件延迟的更多信息,请查阅文档的“自定义配置文件(Customizing Profiles)”部分。
- Configure Hit per Second throttling in the Scenario Summary Table view:在将虚拟用户选择作为受控参数的负载测试场景的加权配置文件模式中,可以在负载测试配置中直接为每个机器设置每秒点击限制。负载测试场景视图(见下面的截图)的概要表包括:允许在测试配置中为任何机器启用每秒点击节流;允许为该机器设置每秒点击限制。使用此模式时,请注意负载测试的 HPS 节流控制器对强制虚拟用户延迟的应用程序部分具有优先级,因此,为了降低每秒点击率,虚拟用户配置文件延迟时间极可能被忽略掉。
下面图片显示的是在场景概要表视图中配置每秒点击节流的一个示例:
自定义数据录制参数
场景控制面板的 Report Settings 选项卡允许您配置负载测试期间记录什么数据。
可用选项包括:
- Record Graphs:记录负载测试图表,可在负载测试报告的详细报告部分中使用功能。
- Record Individual Hits:记录所有单独点击,可在负载测试报告的详细报告部分中以“分散”视图的形式使用。
- Record Individual Hit Details:记录单独点击执行的错误和/或成功详情。错误和成功详情取决于负载测试组件类型。对于 SOAtest 组件,将以下内容记录为错误/成功详情:
- Error Details:包含所有测试的错误描述字符串,以及下列 SOAtest 工具测试的测试流量:SOAP 客户端、浏览器测试、REST 客户端、消息传递客户端。
- Success Details:包含下列 SOAtest 工具的流量:SOAP 客户端、浏览器测试、REST 客户端、消息传递客户端。
- Recording limit:限制负载测试报告中记录的错误和/或成功数据的数量。限制可以设置为受控制测试执行详情的最大数,也可以设置为详情数据的大小。
若要通过设置 录制详情最大数限制报告大小,请选择录制限制面板中的 Details 选项:
若要通过 最大允许录制的数据大小限制报告大小,则选择录制限制面板中的 Kbytes(kilobytes)(kilobytes) 选项。
注意 Record Individual Hit Details 选项可以在未选中 Record Individual Hits 选项时使用。在这种情况下,将不会记录单独点击数据(报告的分散视图部分),然而测试执行详情仍可通过负载测试报告图表视图的右键单击菜单选项 Show Recorded Details 获得。
有关在负载测试报告中查看成功和错误详情的更多信息,请查阅 详细报告。
自定义负载测试停止程序
自定义负载测试停止序列
场景控制面板的 Stop Settings> Stop Sequence 区域允许在生成负载测试停止事件和负载测试活动的实际停止之后,配置负载测试行为。(我们将使用术语“负载测试停止时间”来表示生成负载测试停止事件和所有负载测试活动实际停止之间的时间。)
如果像下面这样做,将生成负载测试停止事件:
- 通过单击 Stop 工具栏按钮,负载测试用户手动停止负载测试。
- 负载测试持续时间达到其计划的时间长度。
- 负载测试停止操作“fires”(请查阅以下 Customizing Load Test Stop Actions 部分)。
生成负载测试停止事件后, Load Test 工具会停止常见虚拟用户,并等待现有虚拟用户退出程序。快速停止和正常停止选项控制虚拟用户是在当前测试完成后退出,还是在完成所有预定的测试之后退出。
- Quick Stop (默认选项)- 如果选中该选项,则每个虚拟用户将在当前测试完成后立即退出。选择该选项将造成负载测试快速停止;然而,发出 Stop 命令时处于活动状态的虚拟用户可能并未完成配置文件中所预定的所有的测试或数据源迭代。
- Formal Stop - 如果选中该选项,则虚拟用户将执行它们在虚拟用户配置文件中预定的的所有测试和数据源迭代。选择此选项可能会导致负载测试停止时间增加(相对于快速停止序列而言)。如果虚拟用户测试列表或数据源迭代列表很长,则此处的增长可能很显著。
提示
如果停止程序需要花费很长时间,则使用负载测试停止进程对话框中的“Force Stop”按钮。(请查阅 提示:Load Test 过程Stopping 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 Tests 选项卡中选择 Scenarios 节点,并在右侧配置面板中选择 StopSettings 选项卡。
- 从 Language 下拉列表中选择 Java、JavaScript或 Jython ,指出您的脚本正在或将要使用的语言。
- 在实现(Implementation)框中定义要实现的脚本。
- 针对 Java 方法,在 Class 字段中指定合适的类。注意,选定类必须在类路径上。
- 针对 JavaScript 和 Jython 脚本,可以使用现有文件作为方法的源代码,也可以在 Load Test 工具中创建方法。
- 若要使用现有文件,选择 File 单选按钮并单击 Browse。从打开的文件选择器中选择文件,然后单击 OK 完成选项。
- 若要在负载测试中从头开始创建方法,选择 Text 单选按钮,并将代码键入、剪切或粘贴到相关量的文本框中。
- 若要选择合法且可运行的特定脚本,右键单击 文件 或 文本 字段(单击要用来指定脚本的一个),然后从快捷菜单中选择 Evaluate 。 Load Test 工具将报告找到的任何问题。
- 从 Methos 下拉列表中选择合适的参数。这个列表将由脚本中包含的任何定义组成。由于脚本中可以包含多个参数,所以可以选择要在此方法中使用的一个参数。
- 运行负载测试。
您定义的脚本在负载测试期间每三秒被调用一次(负载测试输出频率采集)。如果满足脚本中指定的任何标准,负载测试将停止。如果脚本导致负载测试停止,则用户定义的负载测试停止操作的说明将反映到负载测试报告中。任何脚本错误都将在负载测试进程视图的 Log 选项卡中进行报告。
自定义机器选项
使用高吞吐量模式
在高吞吐量模式下,可将更高级别的负载应用于正在测试的系统,同时最小化生成此类负载所需的硬件。
每个加入负载测试的 Load Test 工具机器都可以配置为在高吞吐量模式下进行。在这种模式下,将禁用测试响应验证以及不重要的附加工具。因此,运行负载测试要求更少的系统资源,如 CPU 周期。这一点允许高吞吐量模式中的机器以每秒更高的测试执行速度运行。
若要启用此模式,在 Load Test Configuration 树中的 Machines 节点上选择合适的机器,然后启用 High Throughput Mode 选项。
通话情况下,用户选择一些机器以常规验证模式运行,而另一些机器则以未经验证的高吞吐量模式运行。以验证模式运行的机器同时充当负载生成器和测试结果收集器,而未经验证的机器只充当负载生成器。负载测试完成后,以验证模式收集到的结果将被用来估计未经验证模式下机器的错误计数区间,以及整个负载测试的总错误计数估计区间。
下面是一些典型的问答,可以帮助更好地理解如何应用高吞吐量模式功能:
应该什么时候使用高吞吐量模式?
如果没有足够的硬件来生成所需的负载,则应该使用高吞吐量模式。例如,如果您的负载生成机器正在以或高于 75-80% 的 CPU 利用率运行。
可以希望什么类型的吞吐量增加?
吞吐量增长将随着功能测试结构变化而变化。在功能测试配置中,附加到测试的工具越多,在高吞吐量模式下的性能增益就越大。
误差估计是如何计算的?
误差估计的计算是使用 Wilson 的方法计算 "Binomial proportion confidence interval" 的基础上进行的。关于本主题更多信息,可通过下面的链接获取:
- National Institute of Standards and Technology: http://www.itl.nist.gov/div898/handbook/prc/section2/prc241.htm
- Wikipedia: http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval
在已验证模式和未验证模式下运行测试比例应该是多少?
一般而言,在已验证模式下运行的测试越多,得到的误差估计区间就越小。根据经验,在已验证模式下,每个测试的运行次数应该至少在中间十位,比如 40-60。
从多个 IP 地址生成网络流量
Parasoft 负载测试可以配置为为其虚拟用户使用多个 IP 地址。配置此虚拟 ip 涉及两个步骤:
- 在负载测试机上设置 IP 别名,如下面的合适部分所述:
- 将虚拟用户配置为使用多个 IP 地址,如 Configuring Load Test Machines to use Multiple IP Addresses
支持 Parasoft SOAtest 组件
下面的 SOAtest 工具和传输支持多个 IP 地址功能:
- SOAP 客户端- HTTP & HTTPS
- 消息传递客户端 - HTTP & HTTPS
- REST 客户端- HTTP & HTTPS
- 浏览器工具 - HTTP & HTTPS
- FTP 客户端 - 仅 FTP,无 FTPS
- 传播工具
Windows 配置
若要在 Windows 机器上设置 IP 别名:
- 使用
ipconfig
命令,查看可用网络接口的列表、及其 IP 地址和掩码。 - 在 DOS 提示窗口(Dos shell)或批处理脚本中使用
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 配置
若要在 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 地址:
- 请从 Load Test Configuration 的 Machines 节点中选择适当的机器。
- 在 Machine Configuration 视图的 Machine IP Configuration 面板中,选择 Custom 并选择要使用的网络接口。您可以选择使用所选接口的所有 IP,也可以选择特定的 IP 地址。
机器网络接口和 IP 配置视图如下图所示:
在负载测试执行期间,机器上的每个虚拟用户将从该机器的 IP 地址列表中分配一个 IP 地址。
虚拟用户(VUs)将以循环方式分配 IP 地址。例如,如果将机器“localhost”配置为使用两个 IP 地址,如下图所示,那么 Vus 将按照以下顺序分配 IP 地址:
- VU 1 – 10.10.201.237
- VU 2 – 10.10.201.238
- VU 3 – 10.10.201.237
- VU 4 – 10.10.201.238
一旦一个 IP 地址被分配给一个虚拟用户,它将在该虚拟用户必须执行的所有测试中使用。
同步远程机器
在 Load Test 工具中使用的 SOAtest 项目可以具有外部依赖关系,其形式是由负载测试的虚拟用户在执行 SOAtest 测试时使用的文件。SOAtest 项目测试的正确功能取决于负载测试控制器机器和运行负载生成器的远程机器上这些外部资源的可用性。负载测试自动化了将外部依赖项转移到远程机器的过程。
有关如何确保项目所需的所有外部资源在远程计算机上可用的详细信息,请查阅 Transferring Project External Dependencies to Remote Machines。