本主题解释如何配置不同的消息响应程序,发送与传入的请求消息相关的响应消息。消息响应程序可以从流量文件创建,该文件捕获了实际行为,或从 本主题解释如何配置不同的消息响应程序,发送与传入的请求消息相关的响应消息。消息响应程序可以从通讯报文文件创建,该文件捕获了实际行为,或从 WSDL、OpenAPI/Swagger/RAML 定义和 XML 模式类似的定义生成。还可以手动创建。
...
这些选项仅适用于转换为 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。您可以输入值或单击 Browse 按钮。如果没有 WSDL,则可以将该字段保留为空。
- Constrain to WSDL 确定某些工具参数包含的值是否来自 Schema 而非手动输入。 如果启用该选项,则禁用掉某些参数(例如,路由器端点、SOAP 操作、SOAP 主体和头参数)并从 WSDL 中获取它们的值。如果禁用该选项,则 Refresh WSDL 按钮也将被禁用。
- WSDL 文档: Documentation:(如果可用,自动完成):说明给定 WSDL URI 的服务。
- For Schema 服务定义模式Service Definition Mode
- Schema URL:说明可访问该服务的 Schema URL。您可以输入值或单击 Browse 按钮。如果没有 schema,则可以将该字段保留为空。
- 对 Constrain to Schema 的约束::确定某些工具参数包含的值是否来自 Schema 而非手动输入。 如果启用该选项,则禁用掉某些参数并从 schema 中获取它们的值。如果禁用该选项,则 Refresh Schema 按钮也将被禁用。
- XML 消息类型: Message Type:确定响应选项卡的表单输入控件是针对 SOAP 消息还是纯 XML 消息。如果选择纯 XML,则表单输入模式将直接表示消息。如果选择 SOAP,则表单输入中配置的 XML 将用 SOAP 信封包装起来,并且视图将提供 SOAP 头部分,允许在需要时配置 SOAP 头。
...
您可以通过在以下 Responder Correlation 选项卡区域指定消息响应程序接收的消息:
- 传输:Transport:允许您在消息中指定 HTTP 头、JSM 消息属性或 MQ 消息字段,这些字段将确定消息是否由此特定响应程序处理。有关更多详情,请查阅 Transport Correlation 。
- 请求体:Request Body:允许您在消息中指定 XPath,这将确定是否处理该消息。有关更多详情,请查阅 Request Body Correlation 。
- URL 参数(用于 RESTful 服务):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 多选框。
- 点击 编辑 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 下输入其值。
...
- http://myvirtserver:9080/MyAsset/MyPath/segment1/
- http://myvirtserver:9080/MyAsset/MyPath/segment3/segment1/segment2
在 * 匹配 0 或更多字符以及 ** 匹配 0 或更多路径的地方可使用 Ant 风格的通配符。使用此格式:或更多路径的地方可使用任何风格的通配符。使用此格式:
/**/abc
匹配/abc
或/this/that/abc
/abc/**
匹配/abc
或/abc/this/that/theother
/ab**
DO NOT 匹配 不匹配/abc/d
(它被解释为您使用了单个星号/ab*
); 不匹配/absolutely
/**bc
DO NOT 匹配 不匹配/0/abc
(它被解释为您使用了单个星号/*bc
);不匹配/abc
...
- 确保在 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 参数。
...
- 单击 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 模式有以下选项:
...
允许指定如何返回消息。例如,模拟工作或有故障的服务。若要使用默认值 200 OK,则选择 Use Default Return Status 多选框。如果未选择此选项,则可使用以下选项:
- 返回状态:Return Status:输入自定义返回状态值。如果数据源可用,则可参数化该值。
- 返回消息:Return Message:输入自定义返回消息。如果数据源可用,则可参数化该值。
...
性能
允许设置与消息响应程序执行时间关联的以下选项:
- 性能组: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。有关更多详情,请查阅 使用附件。
...
- 在消息响应程序工具的 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()。
...
- 选择 Message Responder 节点并单击 添加响应程序或输出 按钮。将显示 添加输出 向导。 Add responder or output 按钮。将显示 Add Output 向导。
- 在添加输出向导中,从左窗格选择 传入附件 ,右窗格选择 附件处理器 ,然后单击 完成 Incoming Attachment,右窗格选择 Attachment Handler ,然后单击 Finish。
- 双击 AttachmentHandler 节点,然后在工具配置面板汇总对工具进行配置。
- (可选项)选择 Message Responder 节点下的 Attachment Handler 节点,然后单击 Add Responder or Output 按钮。将显示 Add Output 向导,您可以从中添加一个编写文件工具,将附件作为二进制文件输出。
...