我正在使用 Qf 测试软件测试组件是动态的并且没有 ID,我们尝试了 xpath 但 Html 树很复杂。你有什么想法如何在 Qf 测试中通过步骤解释来处理?
1 回答
如果您只有一个或几个这样的动态组件,最简单的方法是:
- 打开一个新的测试套件 (Ctrl+N)
- 将鼠标单击/检查事件记录到您的动态组件到这个新套件中。
- 刷新您的浏览器页面(或执行任何需要执行的操作以更改组件)。
- 打开第二个(新)测试套件(Ctrl+N)
- 将另一个鼠标单击/检查事件记录到您的动态组件到第二个新套件中。
你现在有两个套房。你的两个套房基本上都是这样的:
+ Testset: unknown
+ Testcase: unknown
+ Procedures
+ Extras
+ Recording ...
+ Mouse click
QF-Test component ID: someText
+ Window and components
+ Window
+ ... some nodes ...
+ Component
QF-Test ID: someText
请务必注意,鼠标单击的 QF-Test 组件 ID 与“窗口和组件”节点下方组件节点的 QF-Test ID 具有相同的 ID/字符串。这是因为“窗口和组件”节点代表某种数据库。每当鼠标单击/文本重播/检查/...节点被重播时,QF-Test 将搜索具有此 ID/字符串的组件节点(在“窗口和组件”节点下方)。然后 QF-Test 将尝试根据此组件节点和此组件节点的父节点中提供的识别信息在您的 GUI 中查找组件。手册中描述了有关此识别算法的有趣细节。最重要的章节是:
- https://www.qfs.de/en/qf-test-manual/lc/manual-en-bp_componentrecognition.html
- https://www.qfs.de/en/qf-test-manual/lc/manual-en-components.html#sec_windows
- https://www.qfs.de/en/qf-test-manual/lc/manual-en-tech_recognition.html#sec_recognition
因此,通过查看多个(两个)记录之间的差异,通常可以提出一个描述您想要的组件的组件层次结构。一般来说,最简单的方法是删除所有中间父节点。所以
+ Window and components
+ Window
+ ... some nodes ...
+ Component
QF-Test ID: someText
正变成
+ Window and components
+ Window
+ Component
QF-Test ID: someText
然后比较两个套件中这个组件节点和Window节点的所有Features、Extra Features等属性。删除两个套件中不同的那些,除了“QF-Test ID”属性。在这里为您的组件选择一个口语名称。现在您可以在鼠标点击等节点的“QF-Test组件属性”中使用选择的说话名称。
通常就是这样。但是,出现的组件描述现在可能会匹配应用程序中的太多组件以进行测试。在这种情况下,需要再次添加额外功能等,直到识别变得稳定。
如果您有多个这样的组件,QF-Test 的记录可以通过解析器脚本适应您的需要。使用解析器脚本可以修改记录,例如某些窗口/组件节点将不被记录,或者某些功能/额外功能将以不同方式记录等等。