...
在 Definition 选项卡中指定选项,以允许 SOAtest 使用让你更能轻松指定响应消息的项填充 Response 选项卡。可以指定与服务定义或 schema 相关的以下设置,其中定义了预期的请求和输出响应:
- 服务定义:Service Definition:指定响应程序是否与服务定义(RAML、OpenAPI/Swagger、WSDL 或 Schema)相关联。对于纯 XML,请选择 None。当指定了服务定义,并且该工具受到了 WSDL 或 schema 的约束,则将自动向可应用的表单视图中填充合适的字段值和控件(例如,布尔值的单选按钮、数字与整数的不同控件,枚举的下拉列表)。它也防止输入无效的消息(例如,消息缺失必要值、不正确类型的值、schema 中未指定的方法/资源/响应代码等等)。编辑将受到限制,以确保消息符合相关的模式(例如,将无法对树节点进行插入、删除、重命名、复制或粘贴操作)。
- 针对 For RAML 服务定义模式Service Definition Mode
- RAML URL:特定的 RAML URL,或引用 RAML URL 的变量。
- RAML URL:特定的 RAML URL,或引用 RAML URL 的变量。
- 针对 For OpenAPI/Swagger 服务定义模式Service Definition Mode
- OpenAPI/Swagger URL:特定的 OpenAPI/Swagger URL,或引用 OpenAPI/Swagger URL 的变量。
- 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 的服务。
- WSDL URL:说明可访问该服务的 WSDL URL。你可以输入值或单击 Browse 按钮。如果没有 WSDL,则可以将该字段保留为空。
- 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 头。
...
如果存在多个 Xpath 或 URL 参数匹配响应,则 SOAtest 将返回列表中第一个匹配的响应(使用 Up 和 Down 按钮指定所需顺序或响应)。如果为每个响应提供的 XPath 或 URL 参数导致唯一匹配,则相应的顺序将无关紧要。
脚本化 XML 视图
脚本化 XML Scripted XML 视图允许指定复杂的逻辑。有关更多详情信息,请查阅 Using Scripted Logic。
...
可以通过在以下 Test Correlation 选项卡区域输入值,指定消息桩函数接收的消息:
- 传输:Transport:允许在消息中指定 HTTP 数据头、JMS 消息属性或 MQ 消息字段,这些字段将确定消息是否被处理。
- 请求体:Request Body:允许在消息中指定 XPath,这将确定是否处理该消息。
- URL 参数(用于 RESTful 服务)Parameters (for RESTful services):允许指定 URL 参数,这将确定是否处理该消息。URL 参数可以是重复的(你可以拥有设置为不同值的相同参数)。
- 自定义:Custom:允许指定自定义测试关联性,该关联性基于自定义方法的返回值。关于使用自定义关联性的更多详情,请查阅以下提示框。
...
- 选择 Enable correlation 多选框。
- 单击 添加 按钮。将显示一个新的条目行。 Add 按钮。将显示一个新的条目行。
- 输入要指定的消息关联性的 Name 和 Value 。
请求体关联性
...
- 选择 Enable correlation 多选框。
- 点击 编辑 Edit 按钮。将显示一个编辑 XPath 函数对话框。
- 从 Element 树选择元素,从 Function 下拉菜单选择函数,然后单击 OK。
...
- 选择 Enable correlation 多选框。
- 单击 添加 Add 按钮。将显示一个新的条目行。
- 输入要指定的消息关联性的 Parameter Name 和 Value 。
...
- 确保在 SOAtest 中配置了数据源,并可用于消息桩函数。
- 在 Data Source Correlation 选项卡中合适的地方单击 添加 Add 按钮,提供 XPath 和/或 URL 参数然后选择合适的列名。在执行部署的桩函数时,SOAtest 将从请求中提取特定值,然后在指定列中搜索与提取值对应的匹配项。如果找到匹配项,将使用相应数据源行中的数据填充响应
- 如果提供服务定义,则可使用 编辑 按钮生成 Edit 按钮生成 XPath。该对话框实时验证 XPath 表达式和列名。
- 如果选择自定义它们而不是使用可视的 编辑 选项,则 Edit 选项,则 SOAtest 在键入或编写 XPath 表达式的时候会对 XPath 语法进行验证。
- 可以在数据源列中使用通配符。
- 通过引用同一数据源中的其他数据源列(例如,表单输入、表单 XML 等),对消息桩函数的响应区域进行参数化。你可以向列名映射中添加多个 XPath 或 URL 参数。
...
Attachment 选项卡允许在不使用脚本的情况下,发送二进制或 HTTP 附件。若要发送附件,请执行附件选项卡中的以下操作:
- 单击 添加 按钮。将在附件表中显示一个 Add 按钮。将在附件表中显示一个 XML Attachment 条目。
- 双击 XML Attachment 条目。将显示一个 Edit Attachments 对话框。
- 在编辑附件对话框中,从 Mode 下拉菜单中选择 XML 或 Binary 。
XML 模式有以下选项:
- 查看:Views:从下拉菜单中选择所需视图并相应地进行配置。选项有 文字 Literal XML, 表单 Form XML, 脚本化 XML, 和 表单输入。Scripted XML 和 Form Input。
Binary 模式有以下可用选项:
- Base 64 Encoding:启用 Base 64 编码,对二进制值进行编码。
- 数据源列:Data Source Column:选择发送来自数据源列的值。
- 文件:File:选择发送来自文件的值。通过单击 Browse 按钮选择所需的文件。如果要将该文件的路径作为当前配置文件的相对路径来保存,则选择 作为相对路径保存 Persist as Relative Path 选项。
- 文本:Text:选择发送文本值。
- 内容类型:Content type:指定内容类型。如果想对附件头信息进行添加/更改或删除操作,请单击 Edit Headers 按钮。
...
Service Options 选项卡允许配置如何处理消息。可使用以下选项:
- 消息切换(Message Exchange)模式:Message Exchange Pattern:选择只征求响应或通知。
- 返回状态:Return Status:允许指定如何返回消息。例如,模拟工作或有故障的服务。若要使用默认值 200 OK,则选择 Use Default Return Status 多选框。如果未选择此选项,则可使用以下选项:
- 返回状态:Return Status:输入自定义返回状态值。如果数据源可用,则可参数化该值。
- 返回消息:Return Message:输入自定义返回消息。如果数据源可用,则可参数化该值。
- 运行(Run)模式: Run Mode: 确定此工具是否无限期运行。
- 请求处理:Request Handling:如果需要转换请求消息之后,再由数据源关联性或多响应“如果请求匹配”条件逻辑进行处理,则选择 Apply incoming request tools on the message before responding 。在 XML 必须更改为让其适用于相关性(或消息不完全是 XML,并要求桩函数发送请求的合适响应给原始调用者之前需要进行一些转换)时,这一点很重要。
- 时间(Time)选项:Time Options:允许设置与执行时间(注意,消息桩函数的执行时间是从 servlet 完成接收请求到开始发送响应的时间计算的)相关联的以下选项:
- 超时时间(以毫秒为单位):Timeout after (milliseconds):指定 SOAtest 应该考虑消息超时后的延迟长度(以毫秒为单位)。 Default 设置是 30000。 Custom 设置允许输入超时。可以输入负值来指定无限超时。
- Fail the test on Timeout;选择该选项,以在发生指定超时时测试失败。
- Pass the test only if a Timeout occurred:选择该选项,以在发生指定超时时测试通过。
- 判断时间:Think Time:输入想要消息延迟模拟的时间(以毫秒为单位)。这可以用于模拟慢速服务。如果数据源可用,则也可以参数化该值。 Think Time 值大于 Timeout 值将不会强制超时。只有在消息没有成功关联并且消息桩函数处于空闲状态时才会发生超时,而无法完成测试。
- 超时时间(以毫秒为单位):Timeout after (milliseconds):指定 SOAtest 应该考虑消息超时后的延迟长度(以毫秒为单位)。 Default 设置是 30000。 Custom 设置允许输入超时。可以输入负值来指定无限超时。
- 风格Style/使用:Use::这些选项允许选择消息的正文风格和编码:
- 正文风格Body Style:可以选择 document,也可以选择 rpc。
- 使用:Use:可以选择 encoded,也可以选择 literal。
- 编码风格 URI:Encoding Style URI:(如果可用,自动完成)列出用来发送请求的编码风格 URI。
- 目标对象 Target Object URI:指定目标对象 URI
- 附件封装格式:Attachment Encapsulation Format:指定是否使用 Default 或 Custom 封装格式。 Default 选项指定在首选项面板的 SOAP 客户端选项卡中的附件封装格式(有关更多信息,请查阅主 SOAtest 用户指南的 "Preference Settings> SOAP Client Options” 主题)。 Custom 选项允许选择 MIME、DIME、MTOM Always 或 MTOM Optional。
- 数据头:Headers:允许在响应中添加自定义数据头。
添加自定义数据头
若要添加自定义数据头:
...
- 在消息桩函数工具的 Definition 选项卡中输入定义。。
- 右键单击 Message Stub 节点,然后选择 Add Output。将显示 添加输出 向导。 Add Output 向导。
- 在添加输出向导中,从左窗格选择 传入请求 ,右窗格选择 XML 数据库 ,然后单击 完成 Incoming Request ,右窗格选择 XML Data Bank ,然后单击 Finish。
- 双击 Message Stub 节点下的 Incoming Request> XML Data Bank 节点。XML 数据库配置面板将显示在右侧 GUI 面板中。
- 在右侧 GUI 面板中,添加想要在脚本中访问的值的 XPath。
- 双击 Message Stub 节点。消息桩函数配置面板将显示在右侧 GUI 面板中。
- 在 Response 选项卡中,选择 Scripted 视图。
- 启用 Use Data Source 选项。
指定逻辑。以下是访问数据源和数据库值的基本模板:
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
- 从 Method 组合框中选择合适的方法。你选择的方法应该是你的入口点。在上述示例中,方法是 customLogic()。
...
将附件处理程序添加到消息桩函数中,以便在发送邮件附件时测试附件处理,这可能很有用。若要向消息桩函数添加附件处理器:
- 选择 Message Stub 节点并单击 添加测试或输出 按钮。将显示 添加输出 向导。 Add test or output 按钮。将显示 Add Output 向导。
- 在添加输出向导中,从左窗格选择 Incoming Attachment ,右窗格选择 Attachment Handler ,然后单击 Finish在添加输出向导中,从左窗格选择 传入附件 ,右窗格选择 附件处理器 ,然后单击 完成。
- 双击 Attachment Handler 节点,然后在工具配置面板中对工具进行配置。
- (可选项)选择 Message Stub 节点下的 Attachment Handler 节点,然后单击 添加测试Add Test/添加输出Add Output 按钮。将显示 Add Output 向导,你可以从中添加一个编写文件工具,将附件作为二进制文件输出。