演练:操作 Qt 应用中的 QListView
Qt 应用中的列表控件——QListView,这篇文章主要介绍了如何通过CukeTest全面自动化该控件。
背景
需要针对 Qt 的 QListView 组件开发的列表窗口进行操作和自动化测试。QListView 通常用于含有大量可选项的窗口,比如文件列表、清单等等。以下我们对 QListView 控件简称 List。
目标
为了实现对 List 组件自动化的全面了解,本次演练由浅入深的对 List 的自动化操作有个全面的认知。
- 完成对列表(List)的操作:滚动、滑动、检索内容;
- 完成对选项(ListItem)的操作:单击、双击,右键操作;
本次用于测试用的被测应用为 Qt SDK 中提供的 Demo 应用——FetchMore,它演示了一个简化的文件浏览工具,可以输入路径来检索路径下的文件/文件夹,界面如下:
为了便于管理和理解,以下将不同的操作归类为三个场景:
- 操作目标选项(无需滚动):
- 单击目标项
- 双击目标项
- 右键目标项并选择操作
- 滚动列表;
- 使用模拟按键进行滚动和翻页;
- 使用滚动条按钮进行翻页;
- 使用 drag&drop 进行拖拽/滑屏操作;
- 使用 vScroll 和 hScroll 进行滚动(Qt 暂不支持);
- 搜索后选中目标
- 在搜索框中输入内容;
- 判断搜索结果中是否存在目标选项;
实际操作
由于 Qt 应用中,列表中的未显示的选项不会被直接识别到,也就是说,使用模型管理器对应用中的选项进行识别时,仅能识别到当前页中的可见选项,原来识别到的选项一旦滚动到不可见区域就会因为被隐藏而无法检测到。因此对于动态变化的选项作为识别对象是不理想的。这里选择了与演练:操作 Qt 应用中的表格[1]中类似的方法,选择列表(List)作为识别对象,然后针对这个容器,通过获取子控件的方式取得子控件。
建立项目
编辑剧本文件
新建项目后,按照行为驱动测试的最佳实践ÿ