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