测试中步骤失败的一个原因在于更新应用程序的版本。您通过某个版本的应用程序记录测试。当您在应用程序的新版本(例如具有新按钮或新对象位置)上复用测试时,回放测试期间找不到这些对象。步骤失败的另一个原因在于相对于记录测试时,测试中的数据已更改(例如日期)。
对象属性是在测试记录期间捕获的,并以只读方式显示在移动和 Web UI 数据视图的“属性”表中。 要在回放期间查找受测试应用程序中的对象,测试工作台 将记录期间捕获的对象的属性与测试编辑器的“用户操作详细信息”区域中显示的属性的描述进行比较。对于 Android、iOS 或 Web UI 应用程序,这些描述不尽相同。
在已记录的测试中选择步骤时,测试编辑器将显示执行了操作的对象属性。对象属性将在标识字段中列出,后跟运算符字段和属性值的插入字段。
可通过使用上下文菜单在测试编辑器的用户操作详细信息区域中或在移动和 Web UI 数据视图中更改这些参数(属性、运算符、属性值)。 在“测试内容”列表中选择操作时,“移动和 Web UI 数据”视图将自动同步,以显示所选择步骤的屏幕捕获。属性可在“截屏”选项卡、“元素”选项卡或通过使用上下文菜单在“属性”表中进行修改。
运行测试时,必须自动检测测试中的图形对象,但在某些情况下,对其执行了操作的元素可能难以识别。在该情况下,您必须更新测试脚本,并提供更多准确信息以找到想要对其执行操作的对象。
请参考以下示例:您记录测试,一个步骤是“单击其内容为“August 30th, 2013”的“编辑”文本”。如果测试自动回放,那么当日期不再是“August 30, 2013”时测试将失败。您必须修改该步骤,并提供更准确的信息以找到想要对其执行操作的对象。这样,运行测试时可自动发现和使用该对象。测试工作台 提供了多种方法来识别和查找对象并提高测试脚本可靠性。
在 测试工作台 中,为 Android、iOS 和 web 应用程序提供了各种对象位置运算符来识别受测试应用程序中的对象。它们显示在测试编辑器的用户操作详细信息区域中的对象位置字段中。可在测试步骤中使用两个对象位置来设置位置条件并查找测试中的目标对象。有关详细信息,请参阅在测试脚本中设置对象位置条件。
要查看以不同方式来识别测试中的对象的演示视频教程,请访问如何为移动和桌面 web 应用程序创建功能强大的测试脚本。
记录测试时,对其执行了操作的对象将由其域属性来识别,该属性通常为文本属性。 有时候,文本属性不太容易识别。当在测试步骤中没有属性描述或没有标签来识别目标元素时,可能发生该情况。在这些情况下,测试生成器使用图像属性来识别测试步骤上的元素。
要修复可能的图像识别问题,测试工作台 使用图像关联在回放期间识别和管理对象。对其执行了操作的图像(引用图像)是在测试记录期间捕获的,它在回放时与受测试应用程序的图像(候选图像)进行比较。识别阈值用于接受引用图像与候选图像之间差异的可调整比率,并评估图像是否匹配。缺省识别阈值设置为 80,缺省容错比设置为 20。
在某些情况下,受测试应用程序可能包含定制对象或 测试工作台 找不到的任何对象。在其他情况下,所选择的图像不适合,测试将失败。 当回放期间出现识别问题时,可修改用于识别测试步骤中目标对象的图像,或者可更改已编辑测试中的阈值分数和容错比。
如果阈值设置为 0,将选择与引用图像最相似的候选图像,即使它不是同一图像也是如此。如果将阈值设置为 100,那么图像中最细微的差别也会阻碍图像识别。例如,如果具有不同宽度或高度的图像在回放时由平板设备重新调整了大小,那么当阈值设置为 100 时不会选择该图像,即使它是相同的图像也是如此。如果在没有相同屏幕比例的设备上测试失败,或者如果回放时应用程序中可用的图像与记录测试时可用的图像不同,可更改宽高比容错。
当您在测试编辑器中设置识别阈值以帮助您查找哪些图像可能是回放测试时用于识别目标对象的准确图像时,测试工作台 将显示图像匹配预览视图。最佳候选图像为绿色,分数超过阈值但不是最合适选择的图像为黄色,分数低于阈值的图像为红色。这些候选图像与引用图像不匹配。
可在测试执行完成时显示的测试报告中找到图像关联详细信息。
有关详细信息,请参阅使用图像作为主属性来修改步骤目标。。
某些应用程序使用“响应设计”,即,应用程序行为或图像显示适应所使用的目标设备。例如,你发现有越来越多的应用程序会根据屏幕大小或屏幕方向来更改其图形元素的格式,或根据所使用的操作系统的版本和其他此类参数来进行相应显示更改。
其他应用程序需要用户登录并提供其位置。其他应用程序则播放教程来解释首次安装和运行应用程序时如何使用应用程序。之后这些教程将不再显示。这些教程可导致测试失败。
要修复这些测试失败问题,可将执行条件设置为一组可变操作。这样的话,首次运行测试时将执行操作块,但第二次运行测试中的操作时这不会执行该操作块。这是“响应设计”条件的示例。有关详细信息,请参阅在测试中创建“响应设计”条件。该功能仅可用于 测试工作台 V8.7.1 中的 Android 应用程序。