Page tree

Skip to end of metadata
Go to start of metadata

Parasoft Selenic 分析定位器在您的 Selenium 测试中的使用,并提供更新定位器以维持测试稳定性的建议。执行测试并处理结果后,您可以查看 Parasoft 报告中的建议或将它们加载到您的 IDE 中。

本部分:

在 IDE 中查看建议

Selenic 建议视图是一个用于提高 Selenium 测试可维护性的界面。它包含有关测试中使用的元素定位器的信息,以及您可以用来查看和更新定位器的操作。本节演示了在 Eclipse 中查看建议,除此之外在 IntelliJ 中提供了相同的功能。 


Selenic 将在执行 Selenic 运行配置后生成建议并将其加载到 IDE 中。默认情况下,Selenic 仅为失败的元素定位器生成建议,但您可以配置运行配置以在Selenic 运行配置 屏幕中为所有定位器生成建议。

您还可以从自动测试运行生成的报告中导入建议。单击导入建议链接并指定 JSON 报告文件的位置。

报告加载后,您可以通过点击转到定位器 图标来查看页面对象文件中的定位器。

如果您的测试不遵循页面对象模型,您可以单击转到方法图标以打开测试文件中定位器标识的测试方法。

如果您的测试执行 Cucumber feature 文件,您可以点击转到 Step 定义图标以打开包含 step 定义的文件。 

手动更新

  1. 点击 Selenic 建议视图中的 查看建议定位器链接以访问建议定位器。有关了解定位器的信息,请参阅关于定位器建议
  2. 选择您要使用的定位器并将其复制到剪贴板。 

  3. 如果您的测试遵循页面对象模型,您可以关闭覆盖图并单击转到定位器图标。如果您的测试不遵循页面对象模型,请单击转到方法图标以打开由测试文件中的定位器标识的测试方法。
  4. 当页面或测试文件打开时,您可以将建议的定位器粘贴到文件中以进行更新。如果您的测试不遵循页面对象模型,您将需要在测试方法中手动定位错误定位器以进行更新。 

快速修复更新

单击 Selenic 建议视图中的更新定位器链接以访问建议的定位器。您可以为您的测试选择最佳定位器,然后单击更新以立即更新测试。有关了解定位器的信息,请参阅关于定位器建议。 

您还可以将定位器复制到剪贴板并手动将其粘贴到测试中。 

查看报告

如果启用了执行后打开 HTML 报告选项,则在 IDE 中运行 Selenic 后将打开报告(请参阅Selenic 运行配置 )。如果报告无法启动,您可以从 <ECLIPSE_WORKSPACE>/.metadata/.plugins/etc 目录打开它。

会话摘要

开始字段标志着开始分析。

待审核测试链接中的值表示在运行期间与执行的测试总数相比有多少测试失败。点击链接打开该详情 - 待审核的测试部分。 

单击执行摘要链接以查看该详情 - 执行摘要部分。执行摘要部分包括测试名称、执行时间和其他详细信息。 

摘要 - 待审核的测试

本节概述了通过和失败的测试,以及启用自我修复选项后解决的任何问题。

如果您的团队使用 Applitools 进行可视化测试,可视化更改将记录在问题中。有关与 Applitools 集成的信息,请参阅 命令行

如果您使用性能基准测试功能,超出的执行时间将记录在问题中。您可以在 Selenic 运行配置(请参阅Selenic 运行配置设置)或命令行(请参阅 -performanceBenchmarking)中启用性能基准测试。  

详情 - 待审核的测试

此部分显示所有失败测试的名称以及导致失败的问题的描述。  

如果在执行期间启用了屏幕截图选项,则将提供指向与失败相关的屏幕截图的链接。

点击失败的测试以打开测试详细信息视图,其中显示以下信息:

  • 修复问题的建议
     
  • 测试失败的堆栈跟踪
     
  • 控制台错误(如果已记录)

如果您的团队使用 Applitools 进行视觉测试,则此部分将出现视觉变化。Applitools Web 应用程序的链接也将包括在内。有关与 Applitools 集成的信息,请参阅命令行

如果您正在使用性能基准测试功能,本节还将包含有关超过平均执行时间的测试的信息。有关启用性能基准测试的信息,请参阅命令行 。  

详情 - 执行摘要

本节显示有关执行中每个测试的通过/失败状态的详细信息,以及每个测试的持续时间。此信息旨在帮助您确定测试或应用程序性能的基准。

平均时间列显示以前通过的测试运行的平均值,不包括最近的运行。如果至少有一种测试方法失败,则整个测试类将标记为失败。 

如果您正在使用性能基准测试功能,本节还将包含有关超过平均执行时间的测试的信息。此信息旨在帮助您诊断测试或应用程序的潜在问题。有关启用性能基准测试的信息,请参阅命令行 。如果至少一个测试方法超过了平均执行时间,则整个测试类被标记为超过平均执行时间。 

在 DTP 中查看结果

如果您将 Selenic 配置为向 DTP 报告结果,则可以将测试小部件添加到 DTP 仪表板以查看数据。从命令行运行 Selenic 分析器支持向 DTP 报告数据。有关如何配置 Selenic 以向 DTP 报告结果的信息,请参阅报告结果至 DTP 。有关如何创建、配置和查看仪表板的信息,请参阅 Parasoft DTP 文档。  

任何测试失败(例如,断言失败、抛出异常等)都将在 DTP 中标记为失败。已修复的测试将被标记为未完成。

以下示例测试小部件总共显示了 11 个测试。

两个测试失败。在九个通过的测试中,一个测试被 Selenic 自动修复。单击小部件将打开 DTP 测试资源管理器视图,该视图显示有关测试的其他信息并提供用于确定测试修复任务优先级的界面。

 

Applitools 结果发送到 DTP

如果 Applitools 报告视觉差异,测试运行将在 DTP 中标记为未完成。如果测试失败,Applitools 执行将被中止,测试将在 DTP 中标记为失败。与 Applitools 故障相关的问题不会导入 IDE 的“推荐”视图中。 

关于定位器建议

Selenic 为每个定位器分配一个置信度因子、权重和稳定性。权重和稳定性基于之前的测试运行。置信度因子是根据权重和稳定性计算得出的,表示 Selenic 对应使用建议定位器的置信度。本节提供了解 Selenic定位器建议的背景信息。  

定位器建议类型

Selenic Analyzer可以推荐各种类型的定位器来修复或改进现有的定位器。 每种类型的定位器都根据元素的文本、名称、ID、位置、类名或其他条件匹配一个元素。一些建议类型, 例如表格定位器,它根据行和列中的相邻文本定位表格单元格也结合了标准Selenic 安装目录中的“locator_weights.properties”文件中描述了定位器建议类型的完整列表。此文件提供每种类型的描述,包括示例。

根据具体情况,每个定位器建议类型也可以有多种表示形式。例如,Selenic 可能会推荐一个根据其文本查找超链接的定位器。这种定位器类型在 Selenium 中有多种表示形式,包括链接文本、部分链接文本和 XPath。对于精确的文本匹配,建议使用链接文本定位器。对于精确的文本匹配,建议使用链接文本定位器。

定位器稳定性

稳定性是对一种定位器推荐在未来的预期工作情况的估计,考虑到它在以前的测试执行中的工作情况。为了利用测试执行历史,测试必须使用 Selenic 执行。

例如,如果 Selenium 测试有一个与超链接匹配的定位器,并且链接的全部或部分文本在每次运行中一直保持不变,那么 Selenic 将生成具有高稳定性数量的链接文本推荐。然而,如果超链接也在页面中从一个运行移动到另一个运行,那么基于位置的定位器推荐将具有非常低的稳定性报告。

定位器置信度和权重

每个建议都有一个根据定位器的稳定性和权重计算得出的置信度因子。权重用于降低某些定位器推荐的置信度,即使稳定性很高。例如,如果一个元素在页面上没有从一个运行移动到另一个运行,那么 Selenic 可能会推荐基于位置的定位器。基于位置的定位器将具有非常高的稳定性,但可能具有非常低的置信度,因为位置定位器往往比其他类型的定位器更脆弱。因此,基于位置的定位器具有较低的权重,从而降低了整体置信度因子。

配置定位器权重

每种定位器推荐的权重在"locator_weights.properties”文件中配置。该值应介于 0 和 1 之间。值 1 表示该类型的任何定位器建议将具有与稳定性数相同的置信度因子。值 0 用于防止特定类型的定位器被推荐。

来自 locator_weights.properties 文件的示例权重
# Locates an element by its text content.  Builds a "link text" or
# "partial link text" locator for a hyperlink, otherwise builds an "xpath"
# locator.
# examples:
#     link text: click me
#     partial link text: click
#     xpath: descendant::div[normalize-space(.)="The quick brown fox"]
text_locator.link_text=.98
text_locator.partial_link_text=.98
text_locator.xpath=.98


  • No labels