

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 覆盖系统行为操作
<a name="testing-simulation-action-override"></a>

覆盖系统行为操作为控制联系流中特定资源在测试执行期间的运行方式提供了一种强大的方法。当你覆盖资源时，你是在临时更改其行为以进行测试，而无需修改实际的联系流配置。

## 资源覆盖的工作原理
<a name="testing-simulation-action-override-how"></a>

当您为资源（例如 Lambda 函数、队列、Lex 机器人或运行时间）配置替代时，替代仅对该特定资源应用一次。这意味着下次在测试期间调用该特定资源时，它将使用您的替代配置。在那次使用之后，覆盖将被消耗，后续调用将正常运行，除非你配置了额外的替代。

**重要**  
在任何给定时间，每个特定资源只允许一个主动替代。如果您按顺序为同一个资源配置多个覆盖，它们的工作原理就像 “队列”（先进先出）。最近配置的替代优先，但以后的替代仍然可用，并将随着每次覆盖的使用顺序按顺序激活。

这种一次性使用行为使您可以最大限度地灵活地覆盖测试流程中不同点的资源，从而允许您使用相同的资源在不同时间点的行为不同的情况下测试各种场景。但是，最佳做法是在观察资源时重写资源，以简化测试配置逻辑。

## 简单示例：测试不同的 Lambda 响应
<a name="testing-simulation-action-override-example"></a>

让我们来看一个实际的例子来说明它是如何工作的。

场景：您的联系流程两次调用特定的 Lambda 函数，一次用于验证客户的账户状态，另一次用于检索他们的订单历史记录。你想测试你的流程如何处理每次调用的不同响应。

测试配置：
+ **第一个互动小组 ** — 观察：测试已开始
  + 操作：使用返回 “活动ValidateAccount” 的模拟响应覆盖 Lambda 函数 “”
+ **第二个交互组 ** — 观察：Lambda 函数 “ValidateAccount” 启动
  + 操作：使用模拟响应返回 “已暂停ValidateAccount” 来覆盖 Lambda 函数 “”
  + 之所以使用第一个替代（返回 “Active”），是因为它是最近在交互组中配置的
  + 您的流程处于 “活跃” 状态。
+ **第三个交互组 ** — 观察：Lambda 函数 “ValidateAccount” 再次启动
  + 现在使用最新的替代（返回 “已暂停”）
  + 您的流量处于 “已暂停” 状态。

会发生什么：尽管您为同一 Lambda 函数配置了两个覆盖，但每个覆盖仅按配置顺序使用一次。通过顺序覆盖，您可以测试您的流程如何在测试的不同点处理来自同一资源的不同响应。

![测试用例设计器显示了三个交互组，这些交互组按顺序配置了 Lambda 函数覆盖。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/test-action-override-example.png)


## 覆盖支持的资源和操作
<a name="testing-simulation-action-override-resources"></a>

### Lambda 函数覆盖
<a name="testing-simulation-action-override-lambda"></a>

控制 Lambda 函数调用在测试期间的行为。您可以重定向到不同的 Lambda 函数或提供模拟响应。

**替代资源：**将 Lambda 调用重定向到使用其他函数，这在您想使用 Lambda 函数的测试版本时很有用。

配置选项：
+ **操作 **-选择 “模拟资源行为”
+ **资源类型 ** — Lambda 函数
+ **目标资源 ** — 从下拉列表中选择或输入要覆盖的 Lambda 函数的 ARN
+ **选项 ** — 选择 “替代资源”
+ **替代资源 ** — 从下拉列表中选择或提供替换 Lambda 函数的 ARN

**模拟响应：**提供预定义的响应，无需实际调用任何 Lambda 函数，用于隔离测试。

成功响应的配置选项：
+ **选项 ** — 选择 “模拟回复”
+ **响应 **-选择 “成功”
+ **延迟 ** — 指定返回响应之前要等待多少秒
+ **原始 JSON**（可选）— 输入应返回的数据（采用 JSON 格式）

错误响应的配置选项：
+ **选项 ** — 选择 “模拟回复”
+ **响应 **-选择 “错误”
+ **延迟 ** — 指定返回响应之前要等待多少秒

![显示使用模拟响应选项覆盖 Lambda 函数的操作块配置。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/test-action-override-lambda.png)


### 超时运行时间
<a name="testing-simulation-action-override-hours"></a>

修改工时检查的行为，无论实际时间如何，您都可以测试工作时间内和非工作时间场景。

**替代资源：**重定向到不同的工时资源。

配置选项：
+ **操作 **-选择 “模拟资源行为”
+ **资源类型 **-工作时间
+ **目标资源 **-从下拉列表中选择或输入要改写的工时的 ARN
+ **选项 ** — 选择 “替代资源”
+ **替代资源 **-从下拉列表中选择或提供操作资源替换时间的 ARN

**模拟响应：在不检查实际工时的情况下**返回预定义的结果。

响应的配置选项：
+ **选项 ** — 选择 “模拟回复”
+ **响应 ** — 选择 “InHours” 或 “OutOfHours” 或 “错误”

![操作块配置显示了使用模拟响应选项替代操作时间。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/test-action-override-hours.png)


### Lex 机器人超控
<a name="testing-simulation-action-override-lex"></a>

在测试期间控制 Lex 机器人的交互，允许您使用测试机器人。

**替代资源：**重定向到另一个 Lex 机器人。

配置选项：
+ **操作 **-选择 “模拟资源行为”
+ **资源类型 ** — Lex bot
+ **目标资源 **-从下拉列表中选择或输入要覆盖的 Lex 机器人的 ARN 和别名
+ **选项 ** — 选择 “替代资源”
+ **替代资源 ** — 从下拉列表中选择或提供替换 Lex 机器人资源的 ARN 和别名

**模拟响应：**提供预定义的机器人响应，无需调用实际机器人。

响应的配置选项：
+ **选项 ** — 选择 “模拟回复”
+ **响应 **-选择 “成功” 或 “错误” 或 “已超过时间限制”
+ **延迟 ** — 指定返回响应之前要等待多少秒
+ **原始 JSON**（可选）— 输入应返回的数据（采用 JSON 格式）

![操作块配置显示带有模拟响应选项的 Lex 机器人覆盖。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/test-action-override-lex.png)


**Lex V2 机器人意图分辨率在模拟过程中可能会有所不同**  
在仿真过程中， Text/Utterance 输入将客户的话语作为文本发送给 Lex V2 机器人。在真正的语音通话中，机器人使用语音优化路径。此路径可能会为相同的单词产生不同的置信度分数。因此，机器人可能会`FallbackIntent`在模拟过程中返回，以获得在真实通话中正确解析的话语。  
要获得确定性结果，请使用 “**模拟响应**” 选项。这绕过了实时 Lex 调用并提供一致的测试结果。

### 队列覆盖
<a name="testing-simulation-action-override-queue"></a>

修改队列传输行为以测试不同的队列场景或传输失败。

**替代资源：**将传输重定向到其他队列。

配置选项：
+ **操作 **-选择 “模拟资源行为”
+ **资源类型 **-队列
+ **目标资源 **-从下拉列表中选择或输入要覆盖的队列的 ARN
+ **选项 ** — 选择 “替代资源”
+ **替代资源 **-从下拉列表中选择或提供替换队列资源的 ARN

**模拟响应：**模拟传输失败以进行错误路径测试。

配置选项：
+ **选项 ** — 选择 “模拟回复”
+ **响应 ** — 选择 “满负荷排队” 或 “错误”

![操作块配置，显示带有模拟响应选项的队列覆盖。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/test-action-override-queue.png)
