演练:操作Qt应用中的List
背景
需要针对Qt的ListView组件开发的列表应用进行操作和自动化测试。ListView通常用于含有大量可选项的窗口,比如文件列表、清单等等。以下我们对QListView控件简称为List。
目标
本次自动化的目标是实现对List组件自动化的全面了解,使用CukeTest提供的方法,可以快速的完成自动化。而简单的了解Qt列表的实现方式、以及行为模式,有助于自动化其它表现出列表行为的控件(比如非标准的自绘制列表、下拉框中的选项等等)。
本次演练由浅入深的对List的自动化操作有个全面的认知。
直接对列表项ListItem的操作;
掌握列表的滚动操作;
掌握列表内容的检索与操作;
本次用于测试用的被测应用为Qt SDK中提供的Demo应用——FetchMore,它演示了一个简化的文件浏览工具,可以输入路径来检索路径下的文件/文件夹,界面如下:
为了便于管理和理解,以下将不同的操作归类为三个场景:
操作目标选项:单击目标项
选中目标项
滚动列表;使用滚动条按钮进行翻页
使用滚动条的方法进行滚动和翻页
使用列表方法进行滚动
搜索后选中目标 在搜索框中输入内容;
判断搜索结果中是否存在目标选项;
实际操作
由于Qt应用中,列表中的未显示的选项不会被直接识别到也无法被操作,也就是说,在模型管理器识别了应用中的选项,当它被滚动到不可见区域也会因为被隐藏而无法检测到。因此对于动态变化的选项作为识别对象是不理想的,CukeTest的建议与表格控件Table、树控件Tree一样,选择列表(List)这一父控件容器作为识别对象,通过容器上提供的方法操作和获取子控件。
建立项目
编辑剧本文件
新建项目后,按照行为驱动测试的最佳实践,首先编写剧本(*.feature文件),编写场景和步骤,然后生成代码模版,剧本文件可以切换到文本模式进行修改。
# language: zh-CN
功能: QtList自动化
针对Qt的ListView组件开发的列表窗口进行操作和自动化测试。
场景: 操作目标选项
假如单击目标项"."
假如选中目标项"."
场景: 滚动列表
假如使用列表方法进行滚动
当使用滚动条按钮进行翻页
当使用滚动条的方法进行滚动和翻页
场景: 搜索后选中目标
当在搜索框中输入路径"C:/Program Files"
那么判断搜索结果中是否存在目标项"WindowsPowerShell"
完成剧本文件和代码模版以后如下: