已知问题 - 自定义 API 测试活动

相关项: API 测试

常规

本部分介绍在运行 API 测试时需要注意的常规问题。

UFT One 15.0.2 或更高版本中运行早期版本中的自定义活动

UFT One 15.0.2 使用 log4net.dll 的更新版本。

如果自定义活动是由早期版本的“活动向导”创建的,则必须使用“<Unified Functional Testing 安装>/bin”文件夹中的 log4net.dll 重新编译这些活动,然后才能在 API 测试中使用它们。可以使用随 UFT One 15.0.2 或更高版本安装的活动向导来重新编译活动。

返回页首

Web Service

命名约定

不能导入其名称受 Windows 操作系统限制的 WSDL 文件。

此列表包括: CONPRNAUXNULCOM1COM2COM3COM4COM5COM6COM7COM8COM9LPT1LPT2LPT3LPT4LPT5LPT6LPT7LPT8LPT9

变通方法: 在导入之前重命名 WSDL 文件。

不支持的 WSDL

不支持以下 WSDL:

  • WSDL 版本 2.0

  • 包含 <appInfo> 元素的 WSDL。

  • 配置为异步 Web Service 的 RPC 编码的 WSDL。

  • Apache 服务器上的 HTTP 摘要验证的 WSDL。

使用同一 Web Service 进行多次测试

在同一个解决方案中使用一个或多个相同的 Web Service 打开很多测试时,UFT One 可能会导致内存泄漏。

变通方法: 将 Web Service 移至文件系统或 ALM 存储库。

执行以下操作:

  1. 导入 Web Service。

  2. 在“工具箱”窗格中,右键单击该 Web Service 活动并执行以下操作之一:

    移至 > 文件系统活动

    ALM 活动

导入为服务器响应的 Web Service

对于导入为服务器响应的 Web Service:

  • RPC 类型的 WSDL 不能导入为服务器响应。如果您尝试从 RPC 编码的 WSDL 中更新服务,它将创建重复条目。

  • 如果在添加绑定后在侦听阶段结束 UFT One.exe 进程,将不会从系统中删除绑定。

    变通方法: 使用实用程序 (例如 httpcfg.exenetsh.exe) 手动删除绑定。

  • 当使用 SSL 时,不支持文件中提供的证书。如果将测试移动到另一台计算机,证书将不随测试一起保存。

    变通方法: 在侦听器启动之前将证书添加到本地计算机存储,在侦听进程结束时将其删除。

返回页首

Web Service 安全性

从 UDDI 导入的 Web Service 从 UDDI 导入的 Web Service,不支持身份验证和代理服务器安全性。
WCF 类型的 Web Service

在处理 WCF 类型的 Web Service 时,UFT One 存在下面的已知问题:

  • 不支持为位于同一端口上的操作配置不同的安全设置。

  • 将不调用某些用户事件处理程序 (例如 AfterProcessRequestSecurityBeforeProcessResponseSecurityOnSendRequestOnReceiveResponse 事件)。

  • 在使用采用 STS (安全令牌服务) 的联合类型场景时,不能更改 SOAP 版本。

消息级别安全性

在测试需要消息级别安全性的 Web Service 时,Web Service 安全场景仅支持 SOAP V1.1。

对于 SOAP 1.2,请使用 WCF 类型的场景。

SAML 安全令牌

在处理 SAML 安全令牌时,UFT One 存在下面的已知问题:

  • 在使用 SAML 安全令牌来实现 Web Service 安全性时,用户提供的内容可能包含创建和到期时间戳。

    要延长测试的有效期,建议将到期日期硬编码为遥远的未来。在无法实现这一点的情况下,请通过实现 OnBeforeApplyProtocolSettings 事件来更改时间戳。

  • 在使用 SAML 安全令牌来实现 Web Service 安全性时,如果在网格模式下编辑值,它们可能不会在 UFT One 中发生更新。

    变通方法: 要更新值,请切换到文本模式,并保存测试。

  • 使用 SAML 令牌与来自文件系统的证书时,不支持 Web Service 步骤。

    变通方法: 将证书安装到 Windows 存储中,并从存储中选择证书。

SOAP 1.2

在处理 SOAP 1.2 时,UFT One 存在下面的已知问题:

  • 在配置消息级别安全性时只能选择用户名或 X509 令牌。

  • 在为消息签名配置规范化算法和转换算法时,不能使用以下格式: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform

返回页首

更新 Web Service

当比较 REST 步骤与其原型时,不会将请求/响应正文内容中的差异视为冲突。

因此,当解析其内容与原型正文内容不符的 REST 步骤时,正文内容将不受影响。

返回页首

异步 Web Service 测试

对于导入为服务器响应的 Web Service:

  • 启用 SSL 选项时,UFT One 临时将 SSL 证书绑定到系统 http.sys 级别上的指定端口。添加绑定后,如果您在侦听阶段从任务管理器结束 UFT One.exe 进程,则不会自动从系统中删除绑定。

    变通方法: 使用实用程序 (例如 httpcfg.exenetsh.exe) 手动删除绑定。

  • 当使用 SSL 时,不支持文件中提供的证书。如果将测试移到其他计算机,证书将不可用。

    变通方法: 运行测试前,将证书添加到本地计算机存储中。使用完测试后,根据需要删除证书。

返回页首

REST 服务

导入架构

将架构导入到 REST、HTTP 或 SOAP 检查点中会删除输入属性的链接。

属性之间的链接

如果在同一个 REST 方法的输入和输出属性之间建立链接,然后删除输入属性而不删除链接,则链接表达式将仍然保留在输出属性中。

如果您以这种状态保存测试,则可能将无法重新打开它。

变通方法: 在删除链接的源属性之前或之后,立即显式删除链接。

REST 方法原型

在“添加/编辑 REST 服务”对话框中定义 REST 方法原型以使用剪裁忽略停止测试选项时,在“检查点”窗格的验证列中选中相应的复选框。

检查点

在处理检查点和 REST 服务时,UFT One 存在下面的已知问题:

  • HTTP 和 REST 活动不支持 XPath 检查点。
  • 使用运行步骤命令运行 REST 方法时,将忽略方法中已链接到其他属性值 (输入或输出) 的动态属性值的检查点。
JSON 内容中的数据类型

在构建 JSON 内容并将其加载到 OData 和 Swagger 的 XML 网格模型中时,除 String 之外的所有其他数据类型都作为值包含在 JSON 内容中。

从早期版本的 UFT One 升级

如果您已升级到 UFT One 14.03 或更高版本,并且正在处理在早期版本的 UFT One 中创建的测试,即使您不使用 Swagger 服务,也可能会在上下文菜单中看到针对本地 REST 活动的“更新 Swagger 服务”选项。

在类似情况下,可以忽略此选项。

解决冲突

如果 REST 服务的 URL 或源文件的操作名称或相对 URL 发生了变更,则无法使用“解决冲突”向导解决这些冲突。

而是需要从头开始导入源并手动更新步骤。

返回页首

Web 应用程序服务

导入 WADL 时不支持以下元素。UFT One 不会将这些元素导入测试内部的 WADL 层次结构:

  • Grammars 元素

  • Resource_type 元素

  • Link 元素

UFT One 还会忽略这些元素的所有子元素且不会将其添加到测试的 WADL 中。

此外,如果使用 href 属性链接到其他元素,则必须引用同一个 WADL 文件中的元素。不支持 WADL 文件之间的链接。

返回页首

网络捕获活动

从网络捕获文件添加到测试的步骤不包括:

  • 针对 Web Service 调用和 SOAP 请求的安全设置

  • 任何类型步骤的 Web 身份验证信息

  • HTTP 请求的 Cookie 数据

  • 作为 Web Service 调用一部分发送的附件

返回页首

.NET 程序集活动

不支持导入或添加对 64 位 .NET 程序集的引用。

返回页首

使用 API 测试扩展性创建的自定义活动

在处理自定义活动和 API 测试扩展性时,UFT One 存在下面的已知问题:

Visual Studio 版本

必须在 UFT One 所安装的同一台计算机上装有 Visual Studio 2012 才能使用活动向导创建自定义活动。

签名文件位置

如果将签名文件放在插件文件夹的子文件夹之下,则可能会出现以下错误。

Service Test 无法拖放活动: 未声明类型“http://hp.vtd.schemas/types/v1.0:GeneralPropertiesType”。

变通方法: 修改 Types 架构的相对路径。

例如:

.schemaLocation="../../dat/schemas/Types.xsd"。

签名文件修改

如果您修改签名文件中的活动结构,则将无法使用该活动打开测试。

要修改活动结构,请执行以下操作:

  1. 使用新结构创建新活动。
  2. 替换所有使用旧活动的测试步骤。
  3. 删除旧的活动实现。
从早期版本的 UFT One 升级

运行测试时,在 UFT One 12.00 之前的版本中创建的自定义 Java 活动将失败。

变通方法:

  1. 从创建自定义 Java 活动的项目中删除 ServiceTestCall.java 接口。

  2. 将项目包名称更改为 hp.st.ext.java 之外的名称。

  3. ServiceTestCall.jar 文件添加到类路径。此文件位于“<UFT 安装路径>\Addins\ServiceTest\JavaCall\Java Interface\bin”中。

  4. 重新编译 Java 项目。

返回页首