本主题解释了如何从 WSDL 或 XML 模式中创建虚拟资产。
本章包含:
概要
Virtualize 可以通过分析服务的定义文件为服务构造虚拟资产。它自动为 WSDL 或 XML 模式中定义的操作和错误消息生成消息响应器,并用适当的消息填充这些工具。
如果要虚拟化的服务不可用于实时录制,而你拥有访问描述它的定义文件的权限,则这一点尤其有用。
虚拟化定义文件中的应用程序行为中涉及两个主要步骤:
- 从该定义文件中创建消息响应程序
- 对那些消息响应程序进行部署。
从定义文件中创建消息响应程序
若要自动从 WSDL 或 XML 模式文件创建消息响应器,请完成以下操作:
- 在一个可用的 project/.pva/Responder 套件创建向导中选择 SOA> WSDL or SOA> XML Schema 选项。
- 有关访问该向导的更多详情,请查阅 添加项目、虚拟资产和响应程序套件。
- 完成 WSDL/XML 模式向导。请确保指定适当的 WSDL 或 XML 模式位置。
然后,Virtualize 将为定义的操作和错误消息创建消息响应器。然后可以使用可用控件指定响应消息。有关审查和自定义所创建工具中的选项的更多详情,请查阅 消息响应程序概要。
提示
在使用模式时,最好有一个与你正在配置的响应消息相关的示例请求消息。将此示例请求粘贴到 Options > Request Template> Request Message Template 区域(在文字视图中)。这使得配置响应程序和数据源关联更加容易。
部署虚拟资产
如果 .pva 直接在 VirtualAssets 项目中创建,则它将自动部署。否则,部署虚拟资产最简单的方式是将包含的 .pva 文件复制到 VirtualAssets 项目中。
或者,可以右键单击 Virtualize 服务器视图的 Local machine 节点,选择 Add Virtual Asset,指定包括要部署的虚拟资产的 .pva 文件,然后单击 Finish。完成向导后,Virtualize 将自动复制 .pva 文件到 VirtualAssets 项目中。
有关部署过程和选项的更多详细讨论,请查阅 Deploying Virtual Assets。
自定义虚拟资产
关于如何自定义消息响应程序行为的更多详情,请查阅 消息响应程序概要。
检查和定制 SOAP 错误消息
如果你从 WSDL 创建虚拟资产,Virtualize 将为 WSDL 操作定义的任何自定义 SOAP 错误响应生成消息响应程序,以及单个通用错误响应,但没有在 detail/Detail 元素中指定类型(即模式“xsd:any”类型)。
可以在消息响应器中的 Response 选项卡查看和定制这些 WSDL 错误消息。若要查看特定的错误消息,请从 Operation中选择。
SOAP 错误在不同的 SOAP 版本中是不同的;因此,如果更改 SOAP 版本(在 Service Options> SOAP 版本区域或在 Virtualize 首选项中),SOAP 故障格式将会更改。
SOAP 1.2 示例
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <faultcode xmlns=""></faultcode> <faultstring xmlns=""></faultstring> <detail xmlns=""> <ns1:exception xmlns:ns1="http://www.themindelectric.com/exceptions/"></ns1:exception> </detail> </Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
SOAP 1.1 示例
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <confirmResponse xmlns="http://www.parasoft.com/wsdl/store-01/"> <Result>true</Result> </confirmResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
视频教程:从 WSDL 中创建虚拟资产
本视频描述如何从 WSDL 服务描述创建虚拟资产。