首页/新闻资讯/正文详情

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

发布时间:2026/11/3 10:43:14 来源:云帆数科 栏目:资讯中心
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-Preferences2.测试用例运行结果目录,可自定义修改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脚本文件中;录

相关推荐

西门子611U/S120伺服驱动器过载故障的排查与解决
西门子611U/S120伺服驱动器过载故障的排查与解决

在工业自动化现场,伺服驱动器过载是最常见的故障类型之一。作为西门子数控系统的核心动力单元,611U和S120驱动模块在长期高负荷运行中难免出现各类过载报警。本文将从实际维修案例出发,系统分析过载故障的成因与排查方法。 一、过载故障的典… · 2026/11/3 10:43:14

华为校招机考真题 AI方向 2026-10-14【基于CART分类树预测客户购房选择】
华为校招机考真题 AI方向 2026-10-14【基于CART分类树预测客户购房选择】

华为校招&实习机试在线OJ刷题系统 | 在线OJ注册使用教程 目录 题目 思路 Code 题目 题目内容: CART(Classification and Regression Trees)分类树通过二元切分递归地将数据划分为不纯度最小的子集。它通过基尼系数&… · 2026/11/3 10:43:14

转引与二次引用:标注层级的三条判据,一条引文该落到哪一层
转引与二次引用:标注层级的三条判据,一条引文该落到哪一层

引一条自己没读过的文献,注脚里署原作者,还是署那本转手引用的著作?开题、预答辩、期刊审稿意见里这个问题被反复追问,回答却常停在「注明转引即可」。下面把标注拆成三个层级,给出三条可逐条套用的判据,再… · 2026/11/3 10:42:13

MT62xx功能机源码开发实战:编译仿真、烧写校准与MMI移植
MT62xx功能机源码开发实战:编译仿真、烧写校准与MMI移植

简介:围绕MTK6225、6226、6223、6235、6253系列手机开发平台整理的光盘配套使用手册,面向准备进入手机与嵌入式行业的在校学生、初级硬件与驱动工程师,也适合想了解功能机时代MTK方案全貌的技术爱好者。文档先交代平台定位与行业背景&#xf… · 2026/11/3 21:46:49

GitHub Pages静态网站部署指南:从零到上线
GitHub Pages静态网站部署指南:从零到上线

1. 项目概述 作为一名从零开始学习后端开发的程序员,我深刻理解新手在部署第一个静态网页时的迷茫和困惑。GitHub Pages 作为 GitHub 提供的免费静态网站托管服务,是每个开发者都应该掌握的基础技能。它不仅能够快速展示你的前端作品,还能作为… · 2026/11/3 21:46:49

黑客技术自学路径与Web安全攻防实践
黑客技术自学路径与Web安全攻防实践

1. 黑客技术自学路径解析黑客技术本质上是一套计算机安全领域的专业技能体系,包含系统漏洞分析、网络攻防、加密解密等多个技术分支。自学黑客技术需要建立完整的知识框架,我根据多年安全领域经验总结出以下学习路径。1.1 基础技能构建计算机科学基础是黑… · 2026/11/3 21:46:49

Envoy核心配置架构与实战指南
Envoy核心配置架构与实战指南

1. Envoy核心配置架构全景解析作为云原生时代的通用数据平面,Envoy Proxy的核心配置体系由三大支柱构成:Listener(监听器)、Cluster(集群)和Route(路由)。这三者协同工作&#xff0c… · 2026/11/3 21:46:49

S7-Xplorer在ibaPDA中采集S7 PLC过程值:配置与避坑
S7-Xplorer在ibaPDA中采集S7 PLC过程值:配置与避坑

简介:iBA数据采集软件使用说明面向工业自动化现场的数据采集与故障分析人员,围绕ibaPDA与S7-Xplorer接口的配置与使用展开,适合需要将西门子PLC数据接入ibaPDA进行记录、诊断和趋势分析的中初级工程人员参考,也可作为项目调试前的… · 2026/11/3 21:46:49

AI时代人类创造力的不可替代性与竞争力重构
AI时代人类创造力的不可替代性与竞争力重构

1. 当AI开始"创造":人类竞争力的重新定位在Midjourney能生成媲美专业画师的插画、ChatGPT可以写出流畅文案的今天,一个尖锐的问题浮出水面:当AI连创造力都能模仿时,人类真正的不可替代性在哪里?去年某国际广… · 2026/11/3 21:45:49

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码