ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Squish--跨平台GUI自动化测试入门

Squish--跨平台GUI自动化测试入门

以下内容仅针对squish6.3,内置python2.7版本!!

一. 什么是Squish?

Squish是专业级GUI测试自动化工具,覆盖桌面端、移动端、Web及嵌入式应用程序。它支持多类UI框架,包括Qt、Java、Windows、Web(HTML/JS)、Android、iOS等。所有操作均在统一的IDE中完成。

Squish支持用户编写一次测试脚本即可跨平台运行,无需重写或切换工具。其强大的基于对象识别技术确保测试可靠执行,即使UI迭代更新亦不受影响。Squish还能轻松集成至CI/CD流水线中,是团队实现跨平台GUI测试统一化且避免工具链碎片化的理想解决方案。
注意:该工具闭源、付费。提供免费试用,但没有开源免费版本。

官方文档

官网:https://www.qt.io/zh-cn/quality-assurance/
中文教程:https://doc.qt.ac.cn/squish/squish-for-qt-tutorials.html

之前的博客中我提到过使用dogtail,它是 Python 写的开源工具,完全依赖 Linux 桌面环境的 Accessibility(a11y)基础设施AT-SPI。
应用要能被dogtail操作,必须通过AT-SPI无障碍总线把自身的UI暴露出来,形成一棵无障碍树(accessibility tree)。dogtail 做的事情,就是读取这棵树上的节点(窗口、按钮、菜单项),并通过 AT-SPI 定义的无障碍动作接口去触发控件行为。对于Qt应用,这依赖于qt-at-spi桥接插件,且需要应用启用无障碍支持。

而Squish能精确识别控件,靠的是一套 “注入—绑定—属性查找” 的机制。当它启动被测应用(AUT)时,squishserver 会向 AUT 进程注入一个小的 Hook 库。这个库让 AUT 内部正在运行的对象,对 Squish 变得“可访问”。AUT 和测试脚本始终运行在两个独立的进程中,通过 socket 通信。Squish 为它所支持的每一种 GUI 工具包(Qt、Java AWT/Swing、Web 等)都提供了绑定,这些绑定直接对应到该工具包自身的对象模型上。录制时,Squish 为每个对象在 Object Map 中记录一个“真实名称”(real name)——本质上是一组属性名–值对,例如 {type=‘QPushButton’ text=‘OK’ window=‘:MainWindow’}。回放时,Squish 就在 AUT 的内存中按这些属性值去搜索对应的对象。【以上内容AI获取,侵删】

二. 常用配置

以下介绍只针对squish6.3版本!!!

cd{安装包}/bin/&&./squishide# 启动IDE命令
1.创建测试套的默认语言

测试套默认语言配置修改,这样每次新创建测试套时就不用再切换了;
点击工具栏Edit-Preferences

2.测试用例运行结果目录,可自定义修改

3.创建AUT

点击工具栏Edit-Server Settings-Manage AUTs,这里可以add你要测试的应用程序,选择应用程序启动命令,可以加多个;

4.录制子进程

创建好的测试套右侧点击打开设置窗口;(测试套创建参见第三章)
Application是创建测试套时创建的应用,或者是“3.创建AUT”中那里Add也可以;创建AUT后,这里选择AUT,录制时就会自动启动AUT;
下面的hook要勾选,当你的主进程唤起另一个进程,到另一个进程中操作时,不勾选hook是无法录制代码的;

三. 基础用法

创建测试套、测试用例:
工具栏选择 File > New Test Suite,输入测试套名称、设置存放目录;

点击Next,选择语言,我一般习惯python;

点击Next,可以设置你的测试应用程序启动命令,在常用配置中配置后这里可以下拉选择启动程序;

点击Finish;左侧就会显示刚刚创建的测试套,点击图中图标可以创建testcase,点击测试套旁边的图标打开设置窗口,可以查看启动应用程序;

四. case录制

作为新手,建议从录制脚本开始,慢慢熟悉这个工具,如上图所示,点击case旁边的红色图标,开始录制脚本。
点击录制后,自动启动你设置好的应用程序,你在应用交互界面的操作都会自动记录到case脚本文件中;
录

返回列表