本主题解释如何配置不同的消息响应程序,发送与传入的请求消息相关的响应消息。消息响应程序可以从流量文件创建,该文件捕获了实际行为,或从 本主题解释如何配置不同的消息响应程序,发送与传入的请求消息相关的响应消息。消息响应程序可以从通讯报文文件创建,该文件捕获了实际行为,或从 WSDL、OpenAPI/Swagger/RAML 定义和 XML 模式类似的定义生成。还可以手动创建。
...
术语“消息响应程序”引用所有通过 HTTP、MQ、JMS 或其他/自定义协议发送响应的工具。自定义消息响应程序支持你正在使用的任何消息格式,例如,大型机消息格式、二进制消息格式或其他任何类型的私有自定义消息。自定义协议发送响应的工具。自定义消息响应程序支持您正在使用的任何消息格式,例如,大型机消息格式、二进制消息格式或其他任何类型的私有自定义消息。
消息响应程序可以通过其中一个支持的虚拟资产协议或 API 部署选项(即,HTTP、JMS、WebSphere MQ 或通过自定义扩展处理的协议或 API)接收并响应。(请查阅 使用自定义传输、报文格式和工具)。使用自定义消息响应程序选项,你可以自定义虚拟资产的行为(使用手动指定的不同的请求、响应用例,或者是通过数据源、错误条件、延迟时间等)。 )。使用自定义消息响应程序选项,您可以自定义虚拟资产的行为(使用手动指定的不同的请求、响应用例,或者是通过数据源、错误条件、延迟时间等)。
Info | ||
---|---|---|
| ||
消息响应程序发送与传入请求相关的响应消息,而 SQL 响应程序发送与 SQL 查询相关的结果集。 |
...
该项目包含一个 VirtualAssets.xml 文件,该文件为每个虚拟资产存储部署配置,包括每个虚拟资产 .pva 文件的位置、名称、HTTP 端点路径、全局报告设置、JMS 和 WebSphere MQ 传输设置。当修改虚拟资产部署设置时将自动更新此文件。
为可应用的消息格式配置响应程序
使用通用的消息响应程序框架创建并配置不同消息格式的消息响应程序。只要可行,所有类型的消息框架都可以共享配置选项。此外,如果适用,某些消息格式可以使用特殊的配置选项(例如,它们可能是你团队开发的自定义大型机或二进制格式扩展的自定义转换选项)。因此,不同格式的消息响应程序有时会提供不同的配置选项。使用通用的消息响应程序框架创建并配置不同消息格式的消息响应程序。只要可行,所有类型的消息框架都可以共享配置选项。此外,如果适用,某些消息格式可以使用特殊的配置选项(例如,它们可能是您团队开发的自定义大型机或二进制格式扩展的自定义转换选项)。因此,不同格式的消息响应程序有时会提供不同的配置选项。
可以配置消息响应程序为接收一种格式而响应另一种格式的消息(例如,接收 EDI 消息,使用 Fixed Length 消息进行响应)。这是通过 Request Handling 选项来配置的。
如果你想更改消息响应程序使用的消息格式(例如,如果你希望将固定长度更改为纯文本),则只需修改所选定的格式。 如果您想更改消息响应程序使用的消息格式(例如,如果您希望将固定长度更改为纯文本),则只需修改所选定的格式。
配置选项
基本配置
在工具顶部提供以下基本选项:
- 数据源:指定用于提供工具值要使用的数据源。此菜单仅在数据源被添加到项目时才可用(如 Parameterizing Tools with Data Source Values, Variables, and Extracted Values中所述)。
...
这些选项仅适用于转换为 XML 或从 XML 转换的格式。
- 格式:Format:选择用于响应负载的格式。
- 在表单输入或表单 XML 模式中,使用 XML 而不是 Respond with XML instead of [native format] 进行响应:when in Form Input or Form XML mode:如果禁用(默认),Virtualize 会在发送消息之前自动将 XML 模型转换为本机格式。 换句话说,Virtualize 会向服务器发送本机格式,这就是你在流量视图器中所看到的。会向服务器发送本机格式,这就是您在流量视图器中所看到的。
- 如果启用该选项,Virtualize 将发送你在 将发送您在 UI 中为响应配置的消息。 你可以通过使用文字或脚本视图以本机格式创建消息负载。 您可以通过使用文字或脚本视图以本机格式创建消息负载。 如果禁用该选项并在 UI(例如,使用表单输入视图)中创建 XML,则 Virtualize 将发送未更改的 XML。对于当前支持的格式,通常不希望这样做,但是 Virtualize 使此选项可用。
...
这些选项仅适用于转换为 XML 或从 XML 转换的格式。
消息类型:
- 消息类型:Message type:指定要使用的消息类型。这允许 Virtualize 填充表单输入视图。
- 模式 Schema URL:说明可访问该服务的模式 URL。可以输入值或单击 Browse 按钮。如果没有模式,则可以将该字段保留为空。
- 对模式的约束:Constrain to Schema:确定某些工具参数包含的值是否来自模式而非手动输入。 如果启用该选项,则禁用掉某些参数并从模式 中获取它们的值。如果禁用该选项,则 Refresh Schema 按钮也将被禁用。
...
在 Definition 选项卡中指定选项允许 Virtualize 使用让你更易指定响应消息的项填充 使用让您更易指定响应消息的项填充 Response 选项卡。你可以指定与 选项卡。您可以指定与 WSDL 或 schema 相关的以下设置,定义预期的请求和输出响应:
- 服务定义:Service Definition:指定响应程序是否与服务定义(RAML、OpenAPI/Swagger、WSDL 或 Schema)相关联。对于纯 XML,请选择 None。当指定了服务定义,并且该工具受到了 WSDL 或 schema 的约束,则将自动向可应用的表单视图中填充合适的字段值和控件(例如,布尔值的单选按钮、数字与整数的不同控件,枚举的下拉列表)。它也防止输入无效的消息(例如,消息缺失必要值、不正确类型的值、schema 中未指定的方法/资源/响应代码等等)。编辑将受到限制,以确保消息符合相关的模式(例如,将无法对树节点进行插入、删除、重命名、复制或粘贴操作)。
- 针对 For RAML 服务定义模式Service Definition Mode
- RAML URL:特定的 RAML URL,或引用 RAML URL 的变量。
- 针对 For OpenAPI/Swagger 服务定义模式Service Definition Mode
- OpenAPI/Swagger URL:特定的 OpenAPI/Swagger URL,或引用 OpenAPI/Swagger URL 的变量。
- For WSDL 服务定义模式Service Definition Mode
- WSDL URL: 说明可访问该服务的 WSDL URL。你可以输入值或单击 URL。您可以输入值或单击 Browse 按钮。如果没有 WSDL,则可以将该字段保留为空。
- Constrain to WSDL 确定某些工具参数包含的值是否来自 Schema 而非手动输入。 如果启用该选项,则禁用掉某些参数(例如,路由器端点、SOAP 操作、SOAP 主体和头参数)并从 WSDL 中获取它们的值。如果禁用该选项,则 Refresh WSDL 按钮也将被禁用。
- WSDL 文档: Documentation:(如果可用,自动完成):说明给定 WSDL URI 的服务。
- For Schema 服务定义模式Service Definition Mode
- Schema URL:说明可访问该服务的 Schema URL。你可以输入值或单击 URL。您可以输入值或单击 Browse 按钮。如果没有 schema,则可以将该字段保留为空。
- 对 Constrain to Schema 的约束::确定某些工具参数包含的值是否来自 Schema 而非手动输入。 如果启用该选项,则禁用掉某些参数并从 schema 中获取它们的值。如果禁用该选项,则 Refresh Schema 按钮也将被禁用。
- XML 消息类型: Message Type:确定响应选项卡的表单输入控件是针对 SOAP 消息还是纯 XML 消息。如果选择纯 XML,则表单输入模式将直接表示消息。如果选择 SOAP,则表单输入中配置的 XML 将用 SOAP 信封包装起来,并且视图将提供 SOAP 头部分,允许在需要时配置 SOAP 头。
响应选项卡
Response 选项卡允许你配置希望响应程序在接收相关请求时要传送的响应值。 选项卡允许您配置希望响应程序在接收相关请求时要传送的响应值。
该选项是否可用取决于视图菜单中选择的是什么选项。
表单输入、表单 XML 、文字、多响应、脚本化和表单 JSON 视图
...
注意
- 基于表单的视图允许你从数据源中构建响应和参数化值。基于表单的视图允许您从数据源中构建响应和参数化值。
- 如果在表单输入或表单 JSON 视图中启用操作选择器,则可以使用它为响应选择操作。当选择一个操作时,表单输入视图和表单 JSON 视图用合适的值和 UI 控件(例如,布尔值的单选按钮、数字和整数的不同控件等)进行填充。
- 在表单输入模式中,操作选择器将显示关联服务定义 1)将响应定义为 XML 2)指定 XML 模式的所有操作。
- 在表单 JSON 模式中,操作选择器将显示关联服务定义 1)将响应定义为 JSON 2)指定 JSON 模式的所有操作。
- 在多响应模式中,每个可能的响应都与传入请求、静态响应消息和性能(时间)选项有自己的关联。
...
Transport Header 选项卡允许指定将与响应消息一起返回的 HTTP、JMS 或 MQ 消息头。你可以使用表单视图或文字视图。消息头。您可以使用表单视图或文字视图。
对于 HTTP,这些头文件值将被附加到响应中生成的标准 HTTP 头中。对于 JMS,它们将作为 String 消息属性被设置到输出响应消息中。或者,如果所提供的头名称匹配其中一个现有消息属性名称,则它将被重写(例如:JMSCorrelationID)。对于 WebSphere MQ,还有一个 RFH2 头的部分也允许配置这些。
对于 JMS,你可以定义任何要设置到 JMS,您可以定义任何要设置到 javax.jms.Message 对象的其他属性值,然后将其发送到队列或发布到主题。例如,你可以定义 对象的其他属性值,然后将其发送到队列或发布到主题。例如,您可以定义 JMSPriority、JMSDeliveryMode、JMSExpiration 以及如下的其他属性:
...
响应程序关联选项卡
Anchor | ||||
---|---|---|---|---|
|
Responder Correlation 选项卡允许你指定此消息响应程序工具接收并处理哪些消息。将发送到虚拟资产 选项卡允许您指定此消息响应程序工具接收并处理哪些消息。将发送到虚拟资产 URL 的不同消息路由到基于此处设置的特定的消息响应程序工具(每一个都处理不同的操作)。例如,其中一个消息响应程序工具可能响应到客户注册消息,另一个可能响应到支付消息,而还有一个可能作为默认的“catch all”函数,当其他选项都不匹配时使用该函数。
你可以通过在以下 您可以通过在以下 Responder Correlation 选项卡区域指定消息响应程序接收的消息:
- 传输:允许你在消息中指定 Transport:允许您在消息中指定 HTTP 头、JSM 消息属性或 MQ 消息字段,这些字段将确定消息是否由此特定响应程序处理。有关更多详情,请查阅 Transport Correlation 。
- 请求体:允许你在消息中指定 Request Body:允许您在消息中指定 XPath,这将确定是否处理该消息。有关更多详情,请查阅 Request Body Correlation 。
- URL 参数(用于 RESTful 服务):允许你指定 URL 参数,这将确定是否处理该消息。你可以配置相关性以匹配包含特定参数(无论它们被设置为什么)的所有信息,或者,仅匹配设置为特定值的特定参数的消息)。URL 参数可以是重复的(你可以拥有设置为不同值的相同参数)。有关更多详情,请查阅 Parameters (for RESTful services):允许您指定 URL 参数,这将确定是否处理该消息。您可以配置相关性以匹配包含特定参数(无论它们被设置为什么)的所有信息,或者,仅匹配设置为特定值的特定参数的消息)。URL 参数可以是重复的(您可以拥有设置为不同值的相同参数)。有关更多详情,请查阅 URL Parameter Correlation 。
- URL 路径:允许你指定 Path:允许您指定 URL 路径,这将确定是否处理该消息。有关更多详情,请查阅 URL Path Correlation 。
- HTTP 方法:允许你指定 Methods:允许您指定 URL 方法,这将确定是否处理该消息。有关更多详情,请查阅 HTTP Method Correlation 。
- 自定义:允许你指定自定义响应程序关联性,其基于使用 Custom:允许您指定自定义响应程序关联性,其基于使用 Java 或脚本语言编写的自定义方法的返回值。有关更多详情,请查阅 Custom Correlation 。
- ISO 8583 关联性:允许你为 Correlations:允许您为 ISO 8583 消息指定关联性。有关更多详情,请查阅 使用 ISO 8583 。这些选项专门设计用于 SOAP、纯 XML 和文字消息响应程序。
你可以配置关联性的其中一个类型、多类型,或者配置为没有关联性。如果配置为没有关联系,则将处理消息中的所有内容。 您可以配置关联性的其中一个类型、多类型,或者配置为没有关联性。如果配置为没有关联系,则将处理消息中的所有内容。
传输关联性
若要配置传输关联性:
- 选择 Enable correlation 多选框。
- 单击 Add 按钮。将显示一个新的条目行。
- 输入 Header Name。
- 请进行下列其中一项操作:
- 如果想匹配此头文件设置特定值的消息:在 Value of Header下输入其值。
- 如果想匹配包含此头文件(不管值被设置为什么)的所有消息:选择 Correlate whenever the named header is present regardless of value。
...
- 选择 Enable correlation 多选框。
- 点击 编辑 Edit 按钮。将显示一个编辑 XPath 函数对话框。
- 从 Element 树选择元素,从 Function 下拉菜单选择函数,然后单击 OK。
- 请进行下列其中一项操作:
- 如果显示传入请求消息的树表示形式,则选从树中选择元素并从 Function 下拉菜单中选择函数。
- 如果没有可用的请求树表示形式,或者如果树形式没有完全显示提取和评估感兴趣的元素或属性,则手动提供一个 XPath 表达式。为了实现关联性,Virtualize 支持的 XPath 表达式基于 W3C 的标准 Xpath 1.0 标准。
- 如果希望制定任何额外的 XPath,则以相同的方式添加它们。
...
- 选择 Enable correlation 多选框。
- 如果希望关联性仅(不多不少)应用请求拥有此表中指定的 exact URL 参数的时候,则勾住 Correlate only when the list of parameters matches exactly。否则,任何包含列出的参数和其他参数的请求都将相互关联。无论该选项是启用的还是禁用的,缺乏其中一条指定参数的消息都将不匹配。
- 单击 Add 按钮。将显示一个新的条目行。
- 输入 参数名称 Parameter Name。
- 请进行下列其中一项操作:
- 如果想匹配设置此参数的特定值的消息:在 Value Value 下输入其值。
- 如果想匹配包含此参数(不管它被设置为什么值)的所有消息:选择 Correlate whenever the parameter name is present regardlessof value。
- 如果想匹配设置此参数的特定值的消息:在 Value Value 下输入其值。
...
/**/abc
匹配/abc
或/this/that/abc
/abc/**
匹配/abc
或/abc/this/that/theother
/ab**
不匹配/abc/d
(它被解释为你使用了单个星号 (它被解释为您使用了单个星号/ab*
); 不匹配/absolutely
/**bc
不匹配/0/abc
(它被解释为你使用了单个星号 (它被解释为您使用了单个星号/*bc
);不匹配/abc
示例 1:**/service/*
...
更多信息,可通过 Parasoft> Help> Extensibility API> CorrelationScriptingHookConstants获取。
正则表达式
例如,如果想使用基于正则表达式的纯文本消息,你可以使用:例如,如果想使用基于正则表达式的纯文本消息,您可以使用:
Code Block |
---|
from com.parasoft.api import CorrelationScriptingHookConstants from java.lang import * def match(context): strMessage = context.get(CorrelationScriptingHookConstants.MESSAGE_STR) return String(strMessage).matches("myRegularExpression") |
XML 元素
如果想使用 XML 消息中的元素,你可以使用:消息中的元素,您可以使用:
Code Block |
---|
from com.parasoft.api import CorrelationScriptingHookConstants from org.w3c.dom import * from javax.xml.parsers import * from javax.xml.xpath import * from java.io import * from java.lang import * def match(context): xmlDocument = context.get(CorrelationScriptingHookConstants.MESSAGE_DOM) if xmlDocument != None: xPathFactory = XPathFactory.newInstance(); xpath = xPathFactory.newXPath() expression = xpath.compile("//*[local-name(.)='someElement' and namespace-uri(.)='someNamespace'][1]/text()") elementValue = expression.evaluate(xmlDocument) return String(elementValue).matches("myRegularExpression") return 0 |
HTTP 方法
如果想在 HTTP 方法上进行关联,你可以使用:方法上进行关联,您可以使用:
Code Block |
---|
from com.parasoft.api import * def correlateHTTPMethod(context): method = context.get(CorrelationScriptingHookConstants.REQUEST_METHOD) return "GET" == method |
...
Anchor | ||||
---|---|---|---|---|
|
Data Source Correlation 选项卡允许你指定要在虚拟资产响应中使用的数据源行值。此处基于设置,Virtualize 选项卡允许您指定要在虚拟资产响应中使用的数据源行值。此处基于设置,Virtualize 在数据源中执行数据查询以找到数据行。然后,将此行用来使用来自数据源的参数化值填充响应(如响应选项卡中所定义)。
...
使用所需消息动态响应配置虚拟资产的另一个方法是使用数据源。 你可以轻松地填充数据源表(Excel 等),其中每行包含想要虚拟资产响应的传入消息(通常只需叶节点值)中的值,然后,另一列指定当满足指定条件时,你希望虚拟资产如何响应(有关更多详情,请查阅 您可以轻松地填充数据源表(Excel 等),其中每行包含想要虚拟资产响应的传入消息(通常只需叶节点值)中的值,然后,另一列指定当满足指定条件时,您希望虚拟资产如何响应(有关更多详情,请查阅 Using Existing Data Sources or Rapidly Creating Data Sources for Responses )。在那之后,你可以配置请求响应消息值之间的映射以及数据源中的列。 )。在那之后,您可以配置请求响应消息值之间的映射以及数据源中的列。
这允许在一个易于编辑的表(数据源)中轻松配置请求/响应用例,它允许在那里对它们进行管理,以便随着越来越多的消息进一步扩展,同时它还为响应消息提供了更大地灵活性(因为表单输入允许你固定一些值,参数化一些值,自动化一些值或脚本化一些值。)响应用例,它允许在那里对它们进行管理,以便随着越来越多的消息进一步扩展,同时它还为响应消息提供了更大地灵活性(因为表单输入允许您固定一些值,参数化一些值,自动化一些值或脚本化一些值。)
这个数据源关联非常灵活。你可以配置虚拟资产,以超出精确的匹配这个数据源关联非常灵活。您可以配置虚拟资产,以超出精确的匹配/关联的规则和逻辑响应传入的请求值。例如,你可以配置虚拟资产对信用卡号的最后 关联的规则和逻辑响应传入的请求值。例如,您可以配置虚拟资产对信用卡号的最后 4 位数、小于或大于给定值的数值或其他模式和表达式进行计算。
...
- 确保在 Virtualize 中配置了数据源,并可用于消息响应程序。
- 在 Data Source Correlation 选项卡中合适的地方单击 添加 按钮,提供 Add 按钮,提供 XPath、URL 参数、URL 路径和/或标准表达式,然后选择合适的列名。在执行部署的虚拟资产时,Virtualize 将从请求中提取特定值,然后在指定列中搜索与与提取值对应的匹配项。如果找到匹配项,将使用相应数据源行中的数据填充响应
- 如果多次指定相同的列名(例如,在 URL 参数和 URL 路径中),则将会设置一个值;前面的值将被重写。
- 如果提供 WSDL,则可使用 编辑 Edit 按钮生成 XPath。该对话框实时验证 XPath 表达式和列名。
- 如果你选择自定义它们而不是使用可视的 编辑 如果您选择自定义它们而不是使用可视的 Edit 选项,则 Virtualize 在键入或编写 XPath 表达式的时候对 XPath 语法进行验证。
- 可以在数据源列中使用通配符。
- 表达式(例如,
[> "55"], [like "alpha?beta*"], [like "*b*" 或类似 "*a*" 和类似 "*z*"]
) can be used as described in Criteria Expressions for Matching Values with the Message Responder. - 有关可用配置选项的更多详情,请查阅以下 Data Source Correlation Options 。
- 通过引用同一数据源中的其他数据源列(例如,表单输入、表单 XML 等),对消息响应程序的响应区域进行参数化。你可以向列名映射中添加多个 等),对消息响应程序的响应区域进行参数化。您可以向列名映射中添加多个 XPath 或 URL 参数。
数据源关联性选项卡
数据源关联性可使用以下配置选项。
...
在错误返回到请求器时,错误时间也将被记录到事件详情视图中(如果启用对虚拟资产的监视,如 获得对服务器事件的可见性中所述)。
请求体
此区域允许你指定一个或多个 此区域允许您指定一个或多个 Xpath 来运行传入消息,以便提取一个或多个值。提取到的值将与映射的数据源列匹配。
...
Info | ||
---|---|---|
| ||
数据源关联会在请求中不存在的字段上进行匹配。例如,假定你有一个响应器,它在请求体上 数据源关联会在请求中不存在的字段上进行匹配。例如,假定您有一个响应器,它在请求体上 XML 元素的文本值上使配置了数据源关联,但是该元素是可选的。 那么你可以在字段不存在时,使用同一数据源来用参数化值填充响应。为了做到这一点,你需要在数据源行中将相应字段的值设置为空字符串。由于 那么您可以在字段不存在时,使用同一数据源来用参数化值填充响应。为了做到这一点,您需要在数据源行中将相应字段的值设置为空字符串。由于 XPath 函数的属性,空字符串将匹配 XML 元素不存在的情况和 XML 元素为空时的情况。对于 URL 路径和 ISO 8583 消息的数据源关联来说,情况也是如此:若要匹配请求中不存在的字段,你可以使用空字符串作为数据源行中相对应的字段的值。消息的数据源关联来说,情况也是如此:若要匹配请求中不存在的字段,您可以使用空字符串作为数据源行中相对应的字段的值。 URL 参数数据关联的工作方式有些不同(以便处理参数值为空字符串的情况和参数完全不存在的情况):
|
...
- 单击 Add 按钮。将在附件表中显示一个 XML Attachment 条目。
- 双击 XML Attachment 条目。将显示一个 Edit Attachments 对话框。
- 在编辑附件对话框中,从 Mode 下拉菜单中选择 XML 或 Binary 。
- 配置附件
- XML 模式有以下选项:
- 查看:Views:从下拉菜单中选择所需视图并相应地进行配置。
- Binary 模式有以下选项:
- Base 64 编码 Encoding: 启用 Base 64 编码,对二进制值进行编码。
- 数据源列:Data Source Column:选择发送来自数据源列的值。
- 文件:File:选择发送来自文件的值。通过单击 Browse 按钮选择所需的文件。如果要将该文件的路径作为当前配置文件的相对路径来保存,则选择 作为相对路径保存 选项。
- 文本:选择发送文本值。
- Persist as Relative Path 选项。
- Text:选择发送文本值。
- Content type:内容类型:指定内容类型。如果想对附件头信息进行添加/更改或删除操作,请单击 Edit Headers 按钮。
- XML 模式有以下选项:
Options 选项卡
Options 选项卡允许你配置如何处理消息。可使用以下选项: 选项卡允许您配置如何处理消息。可使用以下选项:
请求模板
用于辅助参数选择的请求 URL 模板
允许你输入 允许您输入 URL,该 URL 是正在测试的应用程序将提供(并且响应器应该模拟)的 URL 的典型代表。如果响应程序是通过参数化流量向导(如 Creating Parameterized Message Responders from Traffic中所述)创建的,则此字段将填充一个 URL,该 URL 来自与此响应程序相对应的流量中的一个请求。
...
- 在从流量日志中创建消息响应程序时,将自动生成请求消息模板。为了实现此目的,将使用流量日志中已识别的最大请求消息。
- 在未从流量日志中创建消息响应程序时,模板将为空。在这种情况下,可以通过树或文字视图(如,复制与你配置的响应消息关联的示例请求消息)手动更改请求消息模板。在未从流量日志中创建消息响应程序时,模板将为空。在这种情况下,可以通过树或文字视图(如,复制与您配置的响应消息关联的示例请求消息)手动更改请求消息模板。
- 完整的请求消息模板用来填充消息响应程序中可用的编辑 Xpath 函数对话框中的 Tree/Literal/Element 视图。如果模板作为请求输出附加到消息响应器,那么 XML 数据库和 XML 转换器输出也将使用此模板。
...
允许指定如何返回消息。例如,模拟工作或有故障的服务。若要使用默认值 200 OK,则选择 Use Default Return Status 多选框。如果未选择此选项,则可使用以下选项:
- 返回状态:Return Status:输入自定义返回状态值。如果数据源可用,则可参数化该值。
- 返回消息:Return Message:输入自定义返回消息。如果数据源可用,则可参数化该值。
请求处理
这些选项允许你确定传入的消息是否在关联被处理前经过了更改(以及如何更改)。这些选项允许您确定传入的消息是否在关联被处理前经过了更改(以及如何更改)。
如果要在数据源或多响应相关标准执行该消息之前,链接一个更改请求消息的工具,则选择 Allow incoming request tools to modify the message before applying data source or multiple response correlations 。然而,如果你正在链接一个可能更改请求的工具(但不希望这样的更改影响到传递给数据源的消息和多响应相关标准),则不要选择该选项。在 。然而,如果您正在链接一个可能更改请求的工具(但不希望这样的更改影响到传递给数据源的消息和多响应相关标准),则不要选择该选项。在 XML 必须更改为让其适用于相关性(或消息不完全是 XML,并要求虚拟资产发送请求的合适响应给原始调用者之前需要进行一些转换)时,这一点很重要。
...
Convert incoming request to XML before applying responder correlation 确保在运行关联之前进行 XML 转换。如果启用此选项,关联将基于转换的 XML。
Info title 消息建模的影响 启动 Convert incoming request to XML before applying responder correlation 选项,你可以将示例本机格式的流量粘贴到文字选项卡(在请求消息模板以及响应程序关联和数据源关联控件的 选项,您可以将示例本机格式的流量粘贴到文字选项卡(在请求消息模板以及响应程序关联和数据源关联控件的 XPath 区域中), 并且 Tree/Element 选项卡将以消息格式指定的结构呈现该消息。例如,如果将 JSON 消息粘贴到 JSON 响应程序中的文字(Literal)选项卡,然后打开树(Tree)选项卡,则以表单 JSON 结构对消息进行呈现。
如果想要粘贴与响应不同格式的消息,请确保启用 Convert incoming request to XML using different message format than response 选项,并且指定消息格式。
- Convert incoming request to XML using different message format than response 允许将消息响应程序配置为与不同于配置为响应的格式接收消息。例如,如果想接收 EDI 消息和使用固定长度消息进行响应,则需要创建一个固定长度的消息响应程序,并将其配置作为 EDI 转换传入请求。
性能
允许设置与消息响应程序执行时间关联的以下选项:
- 性能组:Performance group:如果正在使用性能配置文件,则可以使用该控件设置或更改此响应程序的性能组。有关性能配置文件的更多详情,请查阅 Working with Performance Profiles。
- 判断时间:Think time:输入想要消息延迟模拟(如,模拟慢速服务)的时间(以毫秒为单位)。这个时间将被添加到 a)执行时间,即从服务器完成接收请求到响应开始发送请求的时间 b)性能配置文件指定的任何额外时间,如 Working with Performance Profiles中所述。如果数据源可用,则可参数化该值。
风格/使用
这些选项允许你选择消息的正文风格和编码:这些选项允许您选择消息的正文风格和编码:
- 正文风格:Body Style:启用 document 或 rpc。
- 使用:Use:启用 encoded 或 literal。
- 编码风格 URI:Encoding Style URI:(如果可用,自动完成)列出用来发送请求的编码风格 URI。
- 目标对象 URI:Target Object URI:指定目标对象 URI
附件封装格式
指定是否使用 Default 或 Custom 封装格式。Default 选项指定选择什么作为首选项面板中的附件封装格式。Custom 选项允许选择 MIME、 DIME、 MTOM Always或 MTOM Optional。有关更多详情,请查阅 使用附件。
...
启用 Use different encoding from request 选项,激活编码选项。在编码选项活跃时,你可以从下拉菜单选择 选项,激活编码选项。在编码选项活跃时,您可以从下拉菜单选择 Custom ,并从下拉菜单选择编码选项。还可以选择 Default 以使用响应程序套件中的编码设置。
转换选项选项卡
Options 选项卡允许你配置如何处理消息。这些选项仅适用于转换为 选项卡允许您配置如何处理消息。这些选项仅适用于转换为 XML 的消息格式,并且可用选项随格式的变化而变化。有关指定工具转换选项的更多详情,请查阅相关主题:
...
在数据源中指定响应值是添加大量请求/响应对非常有效的一种方式。
使用现有数据源
如果已经拥有为请求参数和需要的相应相应参数指定值的数据源,则你可以如下使用这些值:如果已经拥有为请求参数和需要的相应相应参数指定值的数据源,则您可以如下使用这些值:
- 添加数据源(请查阅 了解 Virtualize 如何使用数据源)。
- 使用合适的请求列配置消息响应程序的数据源映射(如 Data Source Correlation Tab中所述)。
...
- 在消息响应程序工具的 WSDL URL 字段中输入 WSDL。
- 右键单击 消息响应程序 节点,然后选择 添加输出。将显示 添加输出 向导。
- 右键单击 Message Responder 节点,然后选择 Add Output。将显示 Add Output 向导。
- 在添加输出向导中,从左窗格选择 Incoming Request ,右窗格选择 XML Data Bank ,然后单击 Finish在添加输出向导中,从左窗格选择 传入请求 ,右窗格选择 XML 数据库 ,然后单击 完成。
- 双击 Message Responder 节点下的 Incoming Request> XML Data Bank 节点。XML 数据库配置面板将显示在右侧 GUI 面板中。
- 在右侧 GUI 面板中,添加想要在脚本中访问的值的 XPath。
- 双击 Message Responder 节点。消息响应程序配置面板将显示在右侧 GUI 面板中。
- 在 Response 选项卡中,请选择 Scripted 视图。
指定逻辑。以下是访问数据源和数据库值的基本模板:
Code Block def customLogic(context): # Retrieve the data source value. "Data Source Name" should be replaced # with the name of your data source and "Column Name" should be the column # that your value is coming from. You can access many columns from the same # data source within this script. For Data Bank values, the table is always # named "Generated Data Source" so you only need to replace "Data Bank Column Name" dataSourceValue = context.getValue("Data Source Name", "Column Name") dataBankValue = context.getValue("Generated Data Source", "Data Bank Column Name") # add custom logic that uses value from data source # The following method tells what data source you will be using in this script. # "Data Source Name" should be replaced with the name of your data source def addDataSources(context): return "Data Source Name"
- 从 Method 组合框中选择合适的方法。你选择的方法应该是你的入口点。在上述示例中,方法是 组合框中选择合适的方法。您选择的方法应该是您的入口点。在上述示例中,方法是 customLogic()。
Anchor | ||||
---|---|---|---|---|
|
...
- 选择 Message Responder 节点并单击 添加响应程序或输出 按钮。将显示 添加输出 向导。 Add responder or output 按钮。将显示 Add Output 向导。
- 在添加输出向导中,从左窗格选择 传入附件 ,右窗格选择 附件处理器 ,然后单击 完成 Incoming Attachment,右窗格选择 Attachment Handler ,然后单击 Finish。
- 双击 AttachmentHandler 节点,然后在工具配置面板汇总对工具进行配置。
- (可选项)选择 Message Responder 节点下的 Attachment Handler 节点,然后单击 Add Responder or Output 按钮。将显示 Add Output 向导,你可以从中添加一个编写文件工具,将附件作为二进制文件输出。 向导,您可以从中添加一个编写文件工具,将附件作为二进制文件输出。
将消息转发给另一端点
可以将消息转发工具附加到消息响应程序工具上,以便将消息转发给另一个端点(例如,实际资源)。从端点返回的响应将用作消息响应程序返回的响应。
有关更多详情,请查阅 消息转发。
更新虚拟数据库值
SQL 响应程序操作工具允许你使用消息响应程序更新由 响应程序操作工具允许您使用消息响应程序更新由 .CSV 驱动的 SQL 响应程序表示虚拟数据库中的值。
...
有效负载转换为 XML 选项
如果正在使用自定义响应程序或 EDI/CSV 固定长度响应程序,你可以选择一个附加工具,将有效负载转换为 固定长度响应程序,您可以选择一个附加工具,将有效负载转换为 XML(传入请求)或将有效负载建模为 XML(输出响应)。这是标准有效负载选项的补充,它以其本机格式向有效负载添加工具。
...
为实现这一目标... | 要做到这一点... |
---|---|
响应程序触发数据库更新操作 例如:将行更新/远程/添加到关系数据库或运行一个 SELECT 查询请求。 | 将 DB 工具链接到消息响应程序的传入请求。 你还可以将 您还可以将 XML 数据库链接到 DB 工具的 XML 输出,并将这些数据库值引用到响应程序输出中,以便用从关系数据库中获得的值填充响应。 |
数据库数据手动构造响应消息。 例如:遍历返回的记录以生成所需的 XML 响应格式。 | 将 DB 工具链接到消息响应程序的输出响应中,并在其上附加 XML 转换器、XSTL 工具或扩展工具。这些工具的输出将代替消息响应程序编辑器的响应选项卡中配置的内容。这为手动构造消息提供了灵活性。 如果只想从数据库使用某个 select 值,则将 DB 工具链接到传入请求,如上所述。 |
响应程序调用另一个服务 | 将 SOAP 客户机或消息传递客户机链接到消息响应程序的传入请求。不支持将 SOAP 客户机或消息传递客户机链接到消息响应程序的输出响应。 |
响应程序调用另一个服务并使用它的一些输出来填充响应参数 | 将 SOAP/消息传递客户机链接到消息响应程序的传入请求,并将数据库附加到客户机的响应中。这些数据库值可在消息响应程序表单输入或表单 XML 视图中引用,以构造动态的响应消息。 如果你需要使用从响应程序接收到的请求中所提取到的参数调用该服务,则将 如果您需要使用从响应程序接收到的请求中所提取到的参数调用该服务,则将 XML 数据库链接到响应程序的传入请求中,然后将 SOAP/消息传递客户机链接到响应程序的传入请求,并使用你从请求中提取到的数据库值参数化其请求。注意,此处的顺序很重要:需要在客户机前建立数据库,以便客户机可以使用其值。消息传递客户机链接到响应程序的传入请求,并使用您从请求中提取到的数据库值参数化其请求。注意,此处的顺序很重要:需要在客户机前建立数据库,以便客户机可以使用其值。 |
MQ 字符集处理
Virtualize 将输出(响应)MQ 消息 characterSet 字段设置为与传入(请求)MQ 消息具有相同的值。
...