本章包含:
前言
您可以在消息工具和响应程序中的 Input Mode 下拉列表中指定输入消息的形式(比如, Request, Response, Payload)。通过表单输入,您可以在 UI form 字段中输入参数,它提供了查看和使用现有消息的简单方法(例如,来自开发人员的示例、来自服务器的跟踪、等等)。消息被复制到文本视图后,表单输入视图将以 schema 感知和 schema 约束的方式填充,这种方式更易于编辑、管理和参数化消息。
从文本填充表单输入视图 查看
如果您想查看和处理现有 XML 消息的简单方法(如:来自开发人员的样品、来自服务器和来自遗留测试工具的追踪等等),您可以将其复制到文本视图中,然后打开表单输入视图。一旦消息被复制到文本视图中,则表单输入视图将以 schema 感知和 schema 约束的方式填充,这种方式更易于编辑、管理和参数化。
常规选项
表单输入视图顶部提供了一个操作下拉菜单,列出了可调用和使用的可用方法及操作。
在输入有效 WSDL URI 时自动创建操作列表。您可以通过从列表中选择一个操作来选择要使用的操作。
主面板包含消息的可扩展表示形式。基于 SOAP 的工具具有用于 SOAP Body 和 SOAP Header的子选项卡。有关 Header 子选项卡的消息,请查阅 Adding SOAP Headers。 如果您在 WSDL 选项卡中选择了纯 XML 消息类型,则 SOAP Body 和 SOAP Header 选项卡不可用。可用控件允许您指定如何为树中每个节点指定参数值。选项包含:
- 固定:如果要通过完成表单字段输入文字值(如字符串),请使用此选项。如果选中 Fixed ,其在 Value 选择框中,请在大开的空间中为工具参数输入文字值。控件的性质将随方法的不同而变化。有关更多详情,请查阅 Specifying Literal Values。
参数化:使用此选项可使用数据源中指定的值。必须首先将正确的数据源添加到响应程序套件。
Auto 使用此选项可以自动生成参数值。当您希望评估服务的约束并决定哪种类型的数据将失败时,自动参数生成特别有用。如果选择了 Auto,您就不许在向控件右侧输入任何内容。值将自动生成。此选项不适用于表单 JSON。
脚本:如果希望脚本在运行时生成参数,请使用此选项。如果选择 Script,请单击 Edit Script,然后在打开的对话框中输入方法的位置(或方法本身)。方法应为返回对象(或包含默认构造方法的 Java 类)静态的 Java 方法,并且满足 Web 服务期望的签名。Parasoft 将转换方法为 SOAP 参数,并在工具执行时将其作为 SOAP 调用发送。有关添加方法的常规指南,请查阅 扩展和脚本基础。
- 输入:如果此工具链接到其他工具,并且您希望将第一个工具的结果用作第二个工具的参数,请使用此选项。
指定文字值
如果根据方法(可能会有许多不同的选项可用)选择了 Fixed ,其在 Value 选择框中,您可以将文字值作为消息的一部分发送。
您可以配置将简单参数作为文字值发送的选项,也可以配置将嵌套参数发送到复杂类型对象(例如数组)中的选项。
配置简单参数
当配置一个简单的参数时,该选项将根据工具中是否指定了数据源以及 WSDL 的 XML 模式是否包含任何 nillable 元素而有所不同。
在为简单参数配置值时,可以使用以下选项:
- nil: 确定工具是否发送 nil 属性。如果启用此选项,工具则将会发送 nil 属性。如果没有启用此选项,工具则将不会发送 nil 属性。请注意,对于表单 JSON,这个字段应为 null 而非 nil。
- 固定值/参数化值:(仅在未选中 nil 多选框和选中“optional”多选框[如果存在]时可用)确定工具发送的值。如果工具中指定了数据源,则您将有机会选择 Fixed 或 Parameterized 值。如果数据源不可用,则仅可输入固定值。
- Fixed 值是通过在可用的文本字段中编写输入指定的文字值。
请注意,在上述示例中,第二和第三个固定项左侧的复选框表示该项是可选的。选中该框后,将在消息中发送该元素。如果未选中该框,它将被忽略。 - Parameterized 值是来自数据源列的值。在配置参数化值时,将出现一个包含来自数据源的列名的下拉框。这些列名对应于工具中指定的数据源。工具将所选定数据源列的所有值作为文字值发送。
如果从资源库数据源进行参数化,请确保使用记录列表列参数化复杂元素,并使用基元或基元列表列参数化简单元素。
- Fixed 值是通过在可用的文本字段中编写输入指定的文字值。
配置嵌套参数
如果工具中指定的 WSDL 包含对象数组,则值框下的 GUI 将显示 Index 列和 Value 列。您将能够嵌套该工具作为消息的一部分发送的参数值。
使用来自数据资源库数据源的分层数据进行参数化
您可以参数化来自 Parasfot 数据资源库数据源列复杂的 XML 元素,它可以引用零个、一个或多个分层记录值。
添加 Parasoft 资源库数据源,如 创建资源库数据源中所述。
- 参数化所需列,如 Hierarchical Parameterization with Form Views中所述。
高级选项
可在表单输入视图中执行以下高级选项。
使用 Excel 电子表格来生成动态数组或序列值
手工创建用于参数化大型且复杂的消息可能非常耗时和乏味。您可以配置 SOAtest 和/或 Virtualize 基于要参数化的消息结构自动生成 CSV 数据源模板。
有关如何做到这一点的详细信息,记载于生成用于在 Virtualize 中填充消息元素的数据源模板。
发送简洁美观的信息
您可以右键单击消息传递工具中的根元素并选择 Beautify 来格式化消息以提高可读性。还可以通过右键单击节点并禁用 Beautify 选项来发送简洁消息(格式化为适合单行的消息)
Schema 类型执行
默认情况下,SOAtest 和/或 Virtualize 检查以保证输入的参数值符合其指定的 schema 类型(将光标悬停在元素上时显示)。如果希望使用不符合 schema 的值,请通过右键单击元素然后选中 Enforce Schema Type禁用掉 schema 类型执行。若要禁用用于子元素的 schema 执行,请右键单击父元素,然后选中 Ignore Schema Type of Children。如果稍后希望重启 schema 类型执行,请选中正确的右键单击选项。
minoccurs 和 maxoccurs 执行
默认情况下,SOAtest 和/或 Virtualize 检查以确保输入的参数值符合 minoccurs 和 maxoccurs 约束。如果希望使用超出阈值的值,请右键单击该元素,然后选中 Enforce Occurrences。如果稍后希望重启 schema 类型执行,请重复相同操作。
Base 64 编码
Base 64 编码默认未启用。若要使用 base 64 编码,请右键单击希望编码的元素,然后从快捷菜单栏选中 Base 64 Encoding 。如果稍后希望禁用 base 64 编码,请重复相同操作。
XML 编码
默认情况下,XML 值编码为 unicode 字符,但是您可以右键单击元素并选中 XML Encoding> Unicode 或 ASCII 或 None 来改变该编码。
- 选中 Unicode 来保存 XML 规范支持的所有 unicode 字符。只编码受限制的 XML 字符,如 "<" and "&"。
- 选中 ASCII 来保护所有 ASCII 字符。编码非 ASCII unicode 字符和受限制的 XML 字符。
- 选中 None 来禁用 XML 编码。来自字段值的字符,包括受限制的 XML 字符 将在最终文档中按原样表示。
向数组添加多个值
要快速向数组添加多个值,右键单击相关元素,然后选择 Insert Multiple。在打开的对话框中,使用功能可用控件指定要使用的值。
用数据源值替换特定元素
您可以配置 SOAtest 和/或 Virtualize,以便在工具执行时使用来自数据源或 Xpath 的值替代整个元素(或仅其内容)。为此:
- 右键单击该元素,然后选择 Replace with Data Source Value。
- 在打开的替换设置对话框中,指定以下,然后单击 Next。
- 替换模式(整个元素或仅内容)。请注意,此选项不适用于表单 JSON,它替换整个对象或数组。
- 是否想使用数据源值或 XPath。
- 在下一个页面中,指定正确的数据源列或 XPath,然后单击 Finish。
如果稍后想停止使用功能数据源或 XPath 值,右键单击该元素并选择 Remove Replacement Setting。
从数据源值填充一组元素
填充特性允许您使用现有数据源(而不是手动指定值)中所存在的值自动填充一组表单字段。比如说,您可以通过每个元素一列来创建数据源,然后自动向所有可用元素添加相应的值。
若要使用数据源值填充元素的字段,请在表单输入视图中右键单击该字段,然后选中 Populate。保留启用的 Map parameter values to data source columns ,然后指定排除和 nillable 设置(如果适用)。
使用自动生成的值填充一组元素
填充特性还可为一组表单字段自动生成简单值。
若要使用简单自动生成的值填充元素的字段,请在表单输入视图中右键单击该字段,然后选中 填充。清除 Map parameter values to data source columns,然后指定排除和 nillable 设置(如果适用)。
取代元素
如果希望使用 schema 中定义的其他元素替换原始元素(比如,要使用原始元素名称等价的外语或使用原始元素的另一种变体),您可以使用取代元素特性。取代元素需要具有与原始元素相同的类型,除非原始元素的类型是 anyType。在这种情况下,可以用任何有效替换的元素替换它(属于被替换/替换的抽象元素定义的“替换组”的任何元素)。
若要取代一个元素,右键单击原始元素,然后从快捷菜单选择 Substitute Element 。在打开的对话框中,指定包含新元素的 schema,然后向取代列表中添加所需元素。
使用数据源值以确定是否已发送可选元素或属性
(仅适用于包含在 响应程序或测试套件 的数据源,以及 WSDL 或 schema 为该元素指定 minOccurs=0,不适用于资源库数据源)
当使用可选元素或属性处理消息时,您可以使用数据源来配置是否将可选元素或属性作为消息的一部分发送。正确配置后(如下描述),指定数据源列中的空字符串将告诉 SOAtest 和/或 Virtualize 不要在消息中包含可选元素或属性。如果数据源有一个实际值,则该值将作为消息的一部分发送。
使用数据源值来配置是否已发送可选元素
若要将值存储在数据源中,则指示是否为可选元素发送值:
- 右键单击元素的树节点。
- 选中 Use Data Source> Exclude Element with Empty String。
- 在工具配置面板中,确保在 Use data source中选择正确的数据源列:Exclude with empty string。
使用数据源值来配置是否发送可选属性
若要将值存储在数据源中,则指示是否为可选属性发送值:
- 右键单击父元素的树节点。
- 选择 Use Data Source> Exclude Attribute with empty string> [attribute you want to configure]。
- 在工具配置面板中,确保在 Use data source中选择正确的数据源列:Exclude [attribute] with empty string。
使用数据源值来配置是否使用 Nil 或 Null 属性
(仅适用于包含在响应程序或 测试套件 的数据源,以及未选中给定元素的 nil 复选框,不适用于资源库数据源
若要将值存储在数据源中,则指示是否对各种元素使用 nil 属性或实际值,请右键单击相关树节点,然后选择 Configure nil> Use Data Source: Set nil with empty string [element] (对于 JSON,标签为 Configure null> Use Data Source: Set null with empty string [element])。
当数据源存在空字符串时,将把 nil 属性作为消息的一部分发送。如果值已指定,将不会发送 nil 属性;反之,将使用指定值。
例如,假定您有以下数据源:
Element Value | Nil with Empty String |
---|---|
value | value |
value | |
value | |
Nil with Empty String 优先于 Element Value。因此,当 Nil with Empty String 具有空字符串时,将发送 xsi:nil="true"
,而不考虑元素值列中的值。
添加 SOAP 头文件
表单输入视图中 SOAP Header 子选项卡允许您指定头文件参数。若要添加头文件,请从表单输入视图的头文件子选项卡执行以下操作:
单击 Add 按钮。将显示 Add New SOAP Header 对话框。
- 选择 Custom, WS-Security, SAML 1.1 Assertion, SAML 2.0 Assertion, WS Addressing, WS ReliableMessaging,或 Import Schema Element作为可选响应头类型的响应头 ,单击 OK。有关可选项的更多详情,请查阅:
WS-Security 选项
如果从可选响应头类型选中 WS-Security ,通过右侧 GUI 面板中的 Timestamp、 Username Tokens、 BinarySecurityToken和 Optinals 的选项卡获得以下选项:
Timestamp 选项卡
在 Timestamp 选项卡中有以下选项:
选项 | 说明 |
---|---|
Send Timestamp | 选择添加时间戳值。 |
Dynamically generate timestamp | 选择在每次生成消息时生成时间戳值。 |
wsu:Created | (仅当未选中动态生成时间戳时可用)手动输入时间戳值。对于生成的每个消息,此值都是相同的。 |
Send Expires | 选择添加失效值。 |
Time Interval between Created and Expires | (仅当选中发送有效期时可用)手动输入要在创建的时间戳和失效时间戳之间发生的时间间隔。 |
Username Tokens 选项卡
在 Username Tokens 选项卡中有以下选项:
选项 | 说明 |
---|---|
Send Username Token | 选择添加用户名值。 |
wsse: Username | 输入用户名。 |
wsse: Password | 输入密码。 |
Add Nonce | 选择添加 nonce 值。 |
Dynamically generate Nonce | 选择在每次生成消息时生成 nonce 值。 |
wsse:Nonce | (仅当未选中动态生成 Nonce 时可用)手动输入 Nonce 值。对于生成的每个消息,此值都是相同的。 |
Add Timestamp | 选择添加时间戳值。 |
Dynamically generate timestamp | 选择在每次生成消息时生成时间戳值。 |
wsu:Created: | (仅当未选中动态生成时间戳时可用)手动输入时间戳值。对于生成的每个消息,此值都是相同的。 |
BinarySecurityToken 选项卡
在 Username Tokens 选项卡中有以下选项:
选项 | 说明 |
---|---|
Tokens | 从 Tokens 下拉列表中选择 BinarySecurityToken。 |
Add | 单击此选项添加一个新的 BinarySecurityToken。在显示的 Add BinarySecurityToken 对话框中,指定令牌的 wsuID 。 |
Remove | 单击此选项删除 BinarySecurityToken。 |
Options 选项卡
在 Options 选项卡中有以下选项:
选项 | 说明 |
---|---|
WS-Security URI | 从下拉菜单中输入或选择用户名令牌头文件的命名空间。默认值对应 OASIS 最新的 WS-Security 规范。 选择 WS-Security URI 还会相应地改变 WS-Security Utility URI 。但是,您可以更改 WS-Security Utility URI,使其与 WS-Security URI 不对应。 |
WS-Security Utility URI | 从下拉菜单中输入或选择用户名令牌头文件的实用程序命名空间。默认值对应 WS-Security URI 菜单中的选项。 |
WS Addressing 选项
如果选择了可用头文件类型的 WS Addressing ,将默认发送以下四个头文件类型:Action, To, MessageID, and Reply/To。以下头文件不是默认的:RelatesTo, From, FaultTo.这些头文件类型可以通过右侧 GUI 面板的 Action/To、 MessageID/ReplyTo和 RelatesTo/From/FaultTo 选项卡来配置。默认情况下,还使用 2004/08 命名空间(如 http://schemas.xmlsoap.org/ws/2004/08/addressing)。
Action/To 选项卡
在 Action/To 选项卡中有以下选项:
选项 | 说明 |
---|---|
wsa:Action | 指定 WS Addressing 操作值。 |
wsa:To | 指定 WS Addressing To 值。 |
WS-Addressing URI | 从下拉菜单输入或选择 WS-Addressing URI。 |
MessageID/ReplyTo 选项卡
在 MessageID/ReplyTo 选项卡中有以下选项:
选项 | 说明 |
---|---|
wsa:MessageID | 指定 WS Addressing MessageID。默认自动生成一个唯一值。 |
wsa:ReplyTo | 指定将返回消息发送到 WS Addressing ReplyTo 端点引用。
|
RelatesTo/From/FaultTo 选项卡
在 RelatesTo/From/FaultTo 选项卡中有以下选项:
选项 | 说明 |
---|---|
Send wsa:RelatesTo | 指定 WS Addressing RelatesTo 值。 |
Send wsa:From | 指定将返回消息发送到 WS Addressing From 端点引用。
|
wsa:FaultTo |
|
SAML 1.1 断言选项
如果选择了可用头文件类型的 SAML 1.1 Assertion 请查阅 Adding SAML Headers。
SAML 2.0 断言选项
如果选择了可用头文件类型的 SAML 2.0 Assertion ,将提供与 OASIS SAML 令牌配置文件对应的各种选项。有关更多详情,请查阅 http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security
WS Reliable Messaging 选项
如果选择了可用头文件类型的 WS ReliableMessaging ,将有以下选项:
选项 | 说明 |
---|---|
wsrm:Sequence | 指定 wsrm:Sequence 参数,如 Identifier 和 MessageNumber。 |
wsrm:AckRequested | 指定 wsrm:AckRequested 参数,如 Identifier 和 MaxMessageNumberUsed。这些选项仅当选中 Send AckRequested 复选框时可用。 |
自定义选项
如果选择了可用头文件类型的 自定义 ,将有以下选项:
选项 | 说明 |
---|---|
Views | 从下拉菜单中选择所需视图并相应地进行配置。 |
Populate | 填充 SOAP 数组和元素参数。单击此按钮还可设置任何元素 nil 为 false 并对它们进行扩展。只有从 WSDL 创建工具时才启用此按钮。 |
Import Schema Element as Header Options
如果选择了可用头文件类型的 Import Schema Element as Header ,将出现一个对话框,您可以从 schema 位置加载声明的元素。加载完元素后,您可以为 SOAP 头文件选择多个元素。一旦您单击 OK,将向工具中添加一个带有选定元素结构的头文件。
Adding SAML Headers
表单输入视图中的 Header 子选项卡允许您指定头文件参数。当添加 SAML 1.1 头文件时,您可以选择四种类型的 SAML 确认方法:
- Sender-Vouches: Unsigned:包含最小的 sender-vouches SAML 断言,请求消息创建中不包含可选元素。没有 SAML 断言所需的签名或证书。
- 请查阅 Sender-Vouches:SenderVouches Unsigned有关详情,请查阅Unsigned 。
- Sender-Vouches: Unsigned:SSL: 包含最小的 sender-vouches SAML 断言,而不需要签名,但是传输通过 SSL,因此需要证书,以便在传输层支持 SSAL。
- 请查阅 Sender-Vouches: 未签名的:表单输入有关详情,请查阅SSL 。
- Sender-Vouches: Signed: 包含 sender-vouches SAML 断言,而断言和实体元素都已签名,而用于验证签名的证书的引用将在头中提供。
- 请查阅 Sender-Vouches:SenderVouches Signed有关详情,请查阅Signed 。
- Holder-of-Key: 包含一个持有密钥的 SAML 断言,其中,使用发布方密钥存储在断言元素上有一个封装的签名,用于验证发布方签名的证书包含在断言签名中。然后使用用户证书署名实体,该证书被包含在断言的 SubjectConfirmation 元素。
- 请查阅 Sender-Vouches:SenderVouches Signed有关详情,请查阅Signed 。
Sender-Vouches: Unsigned:
若要添加 Sender-Vouches: Unsigned 确认方法, 在表单输入视图的头文件子选项卡执行以下操作:
- 单击 Add 按钮。将显示 Add New SOAP Header 对话框。
- 选择 SAML 1.1 Assertion 并单击 OK。将显示 SAML Assertion 向导。
- 选择 Sender-Vouches: Unsigned 并单击 Next 按钮。
- 选择所需的 SAML 语句类型并单击 Next。
- 完成 Authentication Statement 所需字段并单击 Finish。有关身份验证语句的更多详情,请查阅 Adding and Modifying SAML Statements。
Sender-Vouches: Unsigned:SSL
若要添加 Sender-Vouches: Unsigned:SSL 确认方法, 在表单输入视图的头文件子选项卡执行以下操作:
- 单击 Add 按钮。将显示 Add New SOAP Header 对话框。
- 选择 SAML 1.1 Assertion 并单击 OK。将显示 SAML 断言向导。
- 选择 Sender-Vouches: Unsigned:SSL 并单击 Next 按钮。
- 选择 Use Conditions(如果需要)。
- 如果选中 Use Conditions ,则选择所需条件类型或 None。
- 如果选中 Audience Restriction 并且输入了一个大于 0 的值,则单击 Next , Audience Restriction 控件会提示并相应地填充每个字段。
- 单击 Next 按钮。
- 选择所需的 SAML 语句类型并单击 Next。
- 完成 Authentication Statement 所需字段并单击 Finish。有关身份验证语句的更多详情,请查阅 Adding and Modifying SAML Statements。
Sender-Vouches: Signed
若要添加 Sender-Vouches: Signed 确认方法, 在表单输入视图的头文件子选项卡执行以下操作:
- 单击 Add 按钮。将显示 Add New SOAP Header 对话框。
- 选择 SAML 1.1 Assertion 并单击 OK。将显示 SAML Assertion 向导。
- 选择 Sender-Vouches: Signed 并单击 Next 按钮。
- 选择所需 Signature Options 并单击 Next 按钮。
- 选择 Use Conditions(如果需要)。
- 如果选中 Use Conditions ,则选择所需条件类型或 None。
- 如果选中 Audience Restriction 并且输入了一个大于 0 的值,则单击 Next , Audience Restriction 控件会提示并相应地填充每个字段。
- 单击 Next 按钮。
- 从 Issuer Key Store 下拉菜单中选择要用于断言和主体上的发布方签名的密钥存储库,然后单击 Next。
- 选择所需的 SAML 语句类型并单击 Next。
- 完成 Authentication Statement 所需字段并单击 Finish。有关身份验证语句的更多详情,请查阅 Adding and Modifying SAML Statements。
Holder-of-Key
若要添加 Holder-of-Key 确认方法, 在表单输入视图的头文件子选项卡执行以下操作:
- 单击 Add 按钮。将显示 Add New SOAP Header 对话框。
- 选择 SAML 1.1 Assertion 并单击 OK。将显示 SAML Assertion 向导。
- 选择 Holder-of-Key 然后单击 Next 按钮。
- 选择 Use Conditions(如果需要)。
- 如果选中 Use Conditions ,则选择所需条件类型或 None。
- 如果选中 Audience Restriction 并且输入了一个大于 0 的值,则单击 Next , Audience Restriction 控件会提示并相应地填充每个字段。
- 单击 Next 按钮。
- 选择用于断言元素上的发行者封装签名的密钥存储库,以及用户用于签名主体元素的密钥存储库,然后单击 Next。
- 选择所需的 SAML 语句类型并单击 Next。
- 完成 Authentication Statement 所需字段并单击 Finish。有关身份验证语句的更多详情,请查阅 Adding and Modifying SAML Statements。
添加和修改 SAML 语句
在创建断言期间必须添加 SAML 语句。以下可供选择:
- Authentication Statement
- Authorization Decision Statement
- Attribute Statement
创建断言之后,可以添加和修改 SAML 语句,以便扩展或自定义断言。为此:
- 选择 SOAP Header 选项卡中的 SAML 断言。
- 单击 Modify。
- 在打开的对话框中编辑断言和添加或编辑 SAML 语句。
- 当添加或修改语句时,请确保填写每个启用的字段。这些都是语句的最低要求。如果需要,将默认启用已禁用的字段,同时为它们填写字段。
- 默认情况下, wsse:Security 元素包括 SAML 断言元素(根据 WS-Security SAML 概要文件规范)。如果您想把它直接放在头文件下面(如:允许与期望 SAML 断言元素直接位于 SOAP 信封头之下且不知道 WS-Security 的系统兼容),则请跳转至 WS-Security Attributes 选项卡并禁用掉 Wrap with a wsse:Security 元素。