与Squish的第一次亲密接触

001-Cover

Linux下的UI自动化实践。

最近,博主接到一个新需求,需要在Linux平台上进行UI自动化测试。起初并不知道AUT(Application Under Test)是什么样的,但首先可以排除的是博主的常用工具Ranorex Studio(以下简称小红叉)没法用了,起初猜测是个Web系统,那就直接考虑使用Selenium,等AUT接手后,懵逼了,Qt客户端???还是Linux上的Qt,这咋搞?于是踏上了漫漫的调研之路(也就是拿着谷歌,搜索相关的解决方案)。无意中发现CSDN上的一条回复,感触颇深,原来我也只不过重复着别人五年前在做的事。

002-MirrorMe

一顿瞎操作下来,初步确定了三个工具:Squish(以下简称小青蛙)、SikuliX、xdotool,最终采用了小青蛙作为测试工具,下表对比了三个工具的特点。

工具对比

说明Squsih(小青蛙)SikuliXxdotool
项目地址HomePageGithubGithub
项目状态成熟的商业工具不活跃,最近一次提交是27天前的更新README不活跃,最后一次提交是15天前的pr merge
项目特点牛逼利用图像识别进行控件的定位坐标定位
适用平台全平台Win & Linux/Unix & MacLinux/Unix & Mac
使用语言Python、JavaScript etc.Python2、JavaScript、RubyShell
上手难易文档多到来不及看环境搭建麻烦,文档较少语言上手慢 ,文档少
工具价格根据选用的工具集来定价免费免费
评估结果采用,使用试用许可证不采用,项目不活跃,环境搭建麻烦,
Python2需要稍微花点时间看看
不采用,个人项目且不活跃,语言上手慢

小青蛙上手记录

下载

  • 下载试用页面,根据AUT,填写相关信息,博主的AUT是Qt客户端,即选择带有Qt工具集的小青蛙。

003-SelectProduct

安装

  • 使用FileZila把squish-6.6.1-qt59x-linux64.run传到Linux上,右键赋予权限,并勾选允许以程序执行文件,双击安装,安装过程中填写申请到的试用许可证即可,脚本语言博主勾选的是Python3。安装完成后会自动打开IDE,如果桌面没有快捷方式,可以到安装目录\bin下将squishide添加到桌面即可。

004-Install-01

005-Install-02

006-IDE-00

  • 打开IDE后,发现一股浓浓的Eclipse味道,查看关于后,的确验证了我的想法。

视图介绍

打开小青蛙后的主界面如下图,用过小红叉的同学应该对界面很是熟悉了,基本的Test Case、Test Suite、Repository、Spy、Recording几个主要的功能都有。具体视图下的功能,去看官方手册吧,或是等我之后的博文更新中介绍。

006-IDE-01

连接AUT

在初次安装的时候,向导会提示如何选择AUT,这边介绍如何手动配置。

  • 新建测试套件

016-NewTestSuit

  • 进入测试套件设置

017-EnterTestSuitSetting

  • 进入AUT Tab,配置AUT即可。

018-SelectAUT

录制测试脚本

  • 新建测试用例

019-NewTestCase

  • 执行录制

020-RecordTestCase

以上便是使用现成的录制器录制脚本,具体的API查看官方的文档即可,本文不再赘述。下文整理一些采坑记录。

小青蛙采坑记录

许可证缺失工具集问题

博主的AUT是Qt客户端中嵌了一个网页,算是一个混合应用。起初申请的试用许可证只含有Qt这一个的工具集,在识别Web控件时候,提示如下报错。然后我又去申请了一个只含有Web工具集的许可证,在录制脚本时,必须得打开浏览器。得,死胡同了。咋办呢?发个邮件给官方,要个含有Qt+Web工具集的许可证。心里默念,真鸡贼啊,这排列组合下来得卖多少钱啊!!!

021-LicenseError-01

试用许可证无法使用第三方库问题

博主的AUT是部署在国产操作系统上的,系统中默认Python版本是2.7,貌似也是不含有pip。想装个Python3,发现官方源也炸了。换源?不是我的系统,不想折腾。就想着源码安装个Python3吧。

  • 上传Python-3.7.0.tgz到机器上
  • 解压Python-3.7.0.tgz

tar -zxvf Python-3.7.0.tgz

  • 新建文件夹

mkdir /usr/local/python3

  • 复制解压后的文件到新建文件夹

cd /usr/local/software
mv Python-3.7.0 /usr/local/python3

  • 执行配置文件,编译,安装

cd /usr/local/python3/Python-3.7.0
./configure –prefix=/usr/local/python3
make && make install

  • 建立软链接

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip

Python3装完后,装个psutil

pip install psutil

在脚本中导入库,编写完脚本执行时,报以下问题。看这鸟语的提示,又是因为试用许可证的限制,导致无法直接在脚本中使用第三方库。咋办呢? 那就单独写个Py文件,测试脚本中调用一下算了。心里默念、小青蛙官方真鸡儿鸡贼啊!!!

021-LicenseError-02

Web页面切换iFrame动作问题

如果直接拿小青蛙自带的录制器生成脚本,脚本中含有的iFrame切换动作在实际执行时会报错,暂时未找到具体原因,博主直接将该部分脚本删除也可以正常执行。

ps: 猜测小青蛙的Web自动化框架可能是拿的Selenium改的,小声比比。

小青蛙自动关闭AUT问题

如果按照前述步骤,在小青蛙中直接配置了AUT,那么在执行测试前,脚本会自动启动AUT,执行完测试,小青蛙也会自动关闭AUT,如果不想让AUT自动关闭,需要再额外设置一下。根据官方手册–>Attaching to Running Applications中的说明,先手动敲命令行设置制定的端口启动AUT,再将AUT配置到小青蛙中即可。当然命令也可以写在脚本中,具体查看官方文档。

这边博主遇到个小问题,命令需要在AUT目录中敲才能正常打开,别的目录打开白屏

‘/root/QtAt/squish-for-qt-6.6.1/bin/startaut’ –port=5502 ./AUT

022-CliStartAUT

023-IDEConfigAUT-01

024-IDEConfigAUT-02.png

以上便是小青蛙的初步上手和采坑记录。

圈住圈玖酱 wechat
♉微信扫码关注公众号,有好玩的呦♉
☛看官,求打赏☚