

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

# 覆盖系统行为操作
<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 函数，一次是为了验证客户的账户状态，另一次是为了检索他们的订单历史记录。你想测试你的流程如何处理每个呼叫的不同响应。

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

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

![测试用例设计器显示了三个交互组，其中按顺序配置了 Lambda 函数重写。](http://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 函数。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/test-action-override-lambda.png)


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

修改工时检查的行为方式，无论实际时间如何，您都可以测试工时和 out-of-hours场景。

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

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

**模拟响应：**返回预定义的结果，而不检查实际工时。

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

![操作块配置显示了使用模拟响应选项覆盖的操作时间。](http://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 机器人
+ **目标资源**-从下拉列表中选择或输入要覆盖的 Lex 机器人的 ARN 和别名
+ **选项**-选择 “替代资源”
+ **替代资源** — 从下拉列表中选择或提供替换 Lex 机器人资源的 ARN 和别名

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

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

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


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

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

**替代资源：**重定向转移到不同的队列。

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

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

配置选项：
+ **选项**-选择 “模拟响应”
+ **响应**-选择 “队列满员” 或 “错误”

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