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